Народ, у кого есть опыт печати из 1С на принтер чеков?
Модель принтера - смотрим в сторону Posiflex 6900.
Лет шесть назад я интегрировал, печатал через драйвер Атола на этот принтер.
Сейчас в Атол позвонил, они какие-то мутные, ощущение, что этот драйвер забросили и не поддерживают.
Из последних решений - кто как делал?
---
insurgut,
Как ни странно в 2010 включить данный принтер чеков как обычный не получилось. (Может тогда драйверов не было).
Драйвера в комплекте и на сайте изготовителя были только эмуляция USB-COM для этого принтера.
Пришлось использовать ESС последовательности.
---
Kutuzov, какая конфигурация? для чего планируется использовать принтер? есть сейчас спец принтеры для енвд например - аналог обычных ФР, только без регистрации в налоговой, безо всяких премудростей цепляются к любым типовым.
---
AlexInqMetal, конфигурация - 1С Розница. Принтер - для печати предзаказа (кафе)
---
Kutuzov, с розницей пока не сталкивался, для печати пречеков ставил Sewoo LK-TE212 подключение по ethernet, подключал к Рарус-Ресторан все штатно.
---
Kutuzov, а в Рознице есть предчек? Какая версия Розницы? Или вы планируете дописывать? Если дописывать, то делайте просто табличный документ и отправляйте его на принтер. Если хотите использовать для печати чеков, то тогда посоветую шикарный эмулятор фискального принтере с выводом чека на произвольный windows или com принтер с возможностью указания логотипа, настройки текста шапки и подвали и т.д.
http://infostart.ru/public/21985/
---
Kutuzov, как таковых пречеков нет в Рознице, есть возможность отложить чек, переработать печать чеков из 1, с интеграцией например ШК на чеке, отложенный чек будет Вам пречеком. Конкретно такая тема была реализована во Фронтоле - Кафе. Но в принципе ничего сложного нет в интеграции в кафе 1С розницы, http://forum.infostart.ru/forum40/topic114757/ может это еще поможет.
---
Принтер чеков просто принтере переделайте обработку эмулятора ККМ стандартную чтобы чеки печатались сразу на притер да и все. Делал так для первой розници до сих пор работает вроде.
---
Настраивал печать чеков из 1С, как раз, на Posiflex. Драйвер пришлось искать отдельно, нашел как раз на сайте Атола. При небольшом шаманстве поставил, причем взлетело даже на win 8. Работает, не жаловались. Удобно что Posiflex фактически уменьшённый принтер, т.е. в 1С настраивается как обычный, легко можно настроить макет, который будет вылезать на печать.
---
Самое простое установить бесплатные драйвера, чтобы он работал в качестве мини-принтера (как выше говорилось в (6) ) со всеми вытекающими возможностями, как печать по сети.
---
insurgut,
Как ни странно в 2010 включить данный принтер чеков как обычный не получилось. (Может тогда драйверов не было).
Драйвера в комплекте и на сайте изготовителя были только эмуляция USB-COM для этого принтера.
Пришлось использовать ESС последовательности.
---
Сделал на Атоловских драйверах, с ключом, вроде все работает (Windows 7, 1С 8.2).
ESC-коды - это конечно хорошо, но ради одного принтера вникать не хочется)
Всем спасибо, много ценной информации.
(22) bzmax, поделитесь с народом опытом разработки - тисните статейку) Вам же плюс будет - скорее всего, кто-нибудь обратится за помощью по этой специфике.

При установке Атоловских драйверов возникла только одна проблемка - были снесены "старые" атоловские драйвера, в которых сканер штрихкода был еще бесплатным (в новых он уже платный). Пришлось поставить другой драйвер для ШК.

По поводу использования в качестве Windows-принтера - был отрицательный опыт в этой области. Эти windows-принтеры частенько подвисают. Что при большом потоке чеков очень затрудняет работу.
---
если просто установить принтер из программы ничего не печатает. Надо его где - то в самой программе установить
---
Рассматривать это принтер как обычный windows-принтер. Настроить макет и печатать.
---
Можно настроить макет, а можно и напрямую программить принтер - ESC коды найти не трудно
---
Сообщение было скрыто модератором.
---
Данный принтер хорошо работает на ESC командах.

Есть шаблоны для формирования ESC-текста непосредственно в коде 1С.
Для работы с данным принтером достаточно установить DLL для прямой передачи текста в COM-порт и использовать мои шаблоны.

Т.е. формируется шаблон команд в 1С (с необходимым форматом чека) и передается как текст в СОМ-порт (к которому подключен принтер чеков).

П.С. Подобный механизм был реализован в розничной сети магазинов. Там владелец ИП, поэтому достаточно было создать печать чеков без фискализации. Реализовано как раз на принтерах данной модели.
---
Решили проблему?
---
Печатать на POSIFLEX можно несколькими способами
1) установить дрова как виндовый принтер (ну это шляпа, я считаю по многим параметрам)
2) установить всякие разные АТОЛОВСКие, Штриховские и т.п. дрова (если они у вас есть, имеется ввиду готовая внешняя компонента)
3) Использовать родные дрова от POSIFLEX "flex.dll", "OPOSPOSPrinter.ocx" и написать внешнюю компоненту 1С самому (например на Delphi)
4) Забить на дрова и работать с портом через ESC-последовательности (Например при помощи библиотеки "MSCOMM32.OCX", Объект = "MSCOMMLib.MSComm.1")

Попробую написать статейку на этот счет, заодно выложу свои наработки....
---
MrFlanker,

Полностью согласен.
Вариант 4 уже несколько лет верой и правдой работает в нескольких сетевых магазинах.
---
Еще можно поискать в новых конфигурация драйвера печати в общих макетах. Они там в виде двоичных данных. Была похожая ситуация: конфигурация была написана на 8.1 и просто перенесли процедуру печати из последнего релиза решения на управляемых формах платформы 8.2 вместе с двоичными данными драйвера из макета.
Может, если повезет, будет какой универсальных драйвер печати.
---
kostyaomsk,
Запустить эти драйвера - запустишь. И больше чем уверен, что они будут с этим принтером чеков работать.
Но будет демо режим. Т.к. Атоловские драйвера, даже встроенные в 1С просто так работают только с атоловским оборудованием.
Для всего стороннего оборудования нужен ключ.
---
Еще вот что прочитал про этот принтер:
АТОЛ: Драйверы Торгового Оборудования v.6 от 05.11.2013
Компания АТОЛ сообщает партнерам и пользователям о выходе новой версии программного продукта Драйверы торгового оборудования v.6 от 05.11.2013. Новая версия программного продукта уже доступна для обновления и установки. Обновление ПО «Драйверы Торгового Оборудования v.6 от 05.11.2013» содержит улучшения и исправления ошибок, включая следующие:
...
Драйвер принтеров чеков
- Добавлена поддержка принтеров "Posiflex Aura 80mm: PP 6900/8800/9000" и "Posiflex Aura 55mm: PP 9000"
...

Вот ссылка на источник: http://dialog-universal.ru/news/atol-drivers-of-commercial-equipment-v-6-from-05-11-2013/
Если не врут конечно, то драйвера свежие.
---
Понятно про демо режим. И темы как обойти тут не приветствуются. Хотя, если принтер не новый и распространенный (не эта модель, к сожалению) можно найти все что угодно через какие-то сторонние средства. Тут уже вопрос или системного администрирования или вопрос программирования железа.
---
А автору топика это все еще интересно? :-)
---
В общем технология с принтерами чеков получается такая: ищите где хотите, где-то в каком-то решении работает. Потом надо как-угодно, используя танцы с бубнами, т.е. сисадминство все это дело запустить.
---
kostyaomsk,
Так и есть, готовых универсальных решений нет.
Но т.к. большинство принтеров чеков поддерживают ESC последовательности - имеет смысл это как то унифицировать.
По предложению Кутузова. Решил достать из архива свои шаблоны с формированием ESC последовательностей для принтеров чеков.
И написать статью по использованию универсального механизма на ESC командах.
---
bzmax, пишите про эти самые ESC последовательности, раз такая морока с принтерами начинается.
P.S. Может, все-таки, перед покупкой уточнять про вопросы с драйверами по возможности?
---
```1c
    // Открывает порт, инициализирует принтер, возвращает ссылку на СОМОбъект MSCOMMLib для работы спортом
    Функция POSIFLEX_OpenPort() Экспорт
    // Отркывает переданный CommPort
    //
    // Использует библиотеку MSCOMM32.OCX для работы напрямую с портом
    // Инициализирует принтер

    CommPort = глСервер.POSIFLEX_GetPort(); // Считываем константу (ваш номер порта - Тип Число 1..255)

    Попытка
    Порт = новый COMОбъект("MSCOMMLib.MSComm.1");
    Исключение
    Сообщить("Не удается подключить библиотеку mscomm32.ocx");
    Сообщить("Библиотека должна быть зарегестрирована и лицензирована");
    КонецПопытки;

    Если Порт.PortOpen = 1 Тогда Порт.PortOpen = 0; КонецЕсли; //Закроем порт, если он уже открыт

    Попытка
    Порт.CommPort = CommPort; // Номер порта
    Порт.Settings = "19200,N,8,1"; // Параметры порта
    Порт.PortOpen = 1; // Открываем порт
    Исключение
    Сообщить("Не удается открыть порт COM"+CommPort+":");
    возврат Неопределено;
    КонецПопытки;

    // Выбор устройства 1B 3D 01, Инициализация 1B 40, плюс фигня какая-то 1D 61 0F (такую строку посылвает на порт родной драйвер)
    Порт.Output=Char(27)+Char(61)+Char(1) + Char(27)+Char(64) + Char(29)+Char(97)+Char(15);

    // 1B 74 05, 1B 52 00 - Set Russian character code table
    Порт.Output=Char(27)+Char(116)+Char(5) + Char(27)+Char(82)+Char(0);

    Возврат Порт;
    КонецФункции
```
---
Для удобства некоторые управляющие коды в структурку.

```1c
    // Функция возвращает структуру с управляющими кодами для принтера чеков POSIFLEX, коды отправляются на COM порт.
    Функция POSIFLEX_Commands() Экспорт
    Команды = новый Структура;

    Команды.Вставить("ESC", Chr(27)); // Escape (ESC)
    Команды.Вставить("LF", Chr(10)); // Line feed (LF)

    Команды.Вставить("Init", Chr(27) + Chr(64) ); // Инициализация принтера
    Команды.Вставить("CharSetRus", Chr(27) + Chr(116) + Chr(5) ); // Установить ANSI кодировку CP1251
    Команды.Вставить("Cut", Chr(27) + Chr(105)); // Отрезать, Есть еше несколько других способов (1D 56 n) и другие

    Команды.Вставить("Font", Chr(27) + Chr(33)); // Установить шрифт, следущий символ номер шрифта
    Команды.Вставить("Font1", Chr(27) + Chr(33)+ Chr(0) ); // FONT 1
    Команды.Вставить("Font1U", Chr(27) + Chr(33)+ Chr(128)); // FONT 1 Underline
    Команды.Вставить("Font1B", Chr(27) + Chr(33)+ Chr(8) ); // FONT 1 Bold
    Команды.Вставить("Font1BU",Chr(27) + Chr(33)+ Chr(136) ); // FONT 1 Bold Underline

    Команды.Вставить("Font2", Chr(27) + Chr(33)+ Chr(16)); // FONT 2
    Команды.Вставить("Font2U", Chr(27) + Chr(33)+ Chr(144)); // FONT 2 Underline
    Команды.Вставить("Font2B", Chr(27) + Chr(33)+ Chr(24)); // FONT 2 Bold
    Команды.Вставить("Font2BU",Chr(27) + Chr(33)+ Chr(152)); // FONT 2 Bold Underline

    Команды.Вставить("Font3", Chr(27) + Chr(33)+ Chr(32)); // FONT 3
    Команды.Вставить("Font3U", Chr(27) + Chr(33)+ Chr(160)); // FONT 3 Underline
    Команды.Вставить("Font3B", Chr(27) + Chr(33)+ Chr(40)); // FONT 3 Bold
    Команды.Вставить("Font3BU",Chr(27) + Chr(33)+ Chr(168)); // FONT 3 Bold Underline

    Команды.Вставить("Font4", Chr(27) + Chr(33)+ Chr(48)); // FONT 4
    Команды.Вставить("Font4U", Chr(27) + Chr(33)+ Chr(176)); // FONT 4 Underline
    Команды.Вставить("Font4B", Chr(27) + Chr(33)+ Chr(56)); // FONT 4 Bold
    Команды.Вставить("Font4BU",Chr(27) + Chr(33)+ Chr(184)); // FONT 4 Bold Underline

    // Русские аналоги
    Команды.Вставить("Протянуть", Char(10) );
    Команды.Вставить("Отрезать", Char(27) + Char(105));

    возврат Команды;
    КонецФункции
```
---
Так по моему с любым торговым оборудованием - каждый раз предыдущий опыт установки другого ТО не имеет никакого значения, вникаешь каждый раз заново :)
---
Найти в инете последние бесплатные атолловские драйвера не проблема.
---
Где найти? Искать еще надо.
---
Где найти? Как это ни удивительно - в Гугле или Яндексе. Надо только представлять, что ищешь. А получить это представление можно хотя бы на этом форуме: http://forum.infostart.ru/forum9/topic112367/ или http://forum.infostart.ru/forum42/topic113025/
---
А автор темы клялся что нигде нет и Сейчас в Атол позвонил, они какие-то мутные, ощущение, что этот драйвер забросили и не поддерживают.
---
Мне сам автор не кажется идеалом "прозрачности".
---
В 1С 8-й там проблемка с кодировкой нарисовалась, поэтому пришлось определить еще пару функций

```1c
    // Для получения кода в кодировке ANSI (1С использует UNICOD)
    Функция Asc(value)
    value = Лев(value,1);
    Если value = "" Тогда return 34; КонецЕсли;

    sc = Новый COMОбъект("MSScriptControl.ScriptControl");
    sc.language="VBscript";
    Возврат sc.eval("Asc(""+value+"")");
    КонецФункции

    // Для получения символа по коду ANSI (1С использует UNICOD)
    Функция Chr(Code)
    sc = Новый COMОбъект("MSScriptControl.ScriptControl");
    sc.language="VBscript";
    Возврат sc.eval("Chr(""+Code+"")");
    КонецФункции
```
---
Ну и собственно как теперь работать с принтером

```1c
    Процедура POSIFLEX_Test() Экспорт
    // Тест печати на принтере

    Коды=POSIFLEX_Commands();
    Порт=POSIFLEX_OpenPort();

    Если Порт = Неопределено Тогда возврат; КонецЕсли;

    Порт.Output=Коды.Font4BU+"Тест устройства";
    Порт.Output=Коды.LF;
    Порт.Output=Коды.Font1+Коды.LF;

    Порт.Output=Коды.Font1+"Font 1.........................[42 symbol]"+Коды.LF;
    Порт.Output=Коды.Font2+"Font 2.........................[42 symbol]"+Коды.LF;
    Порт.Output=Коды.Font3+"Font 3....[21 symbol]"+Коды.LF;
    Порт.Output=Коды.Font4+"Font 4....[21 symbol]"+Коды.LF;

    Порт.Output=Коды.LF;
    Порт.Output=Коды.LF;
    Порт.Output=Коды.Cut;

    /// Закрываем порт
    Порт.PortOpen = 0;

    КонецПроцедуры
```
---
А вообще я как и обещал написал статью http://infostart.ru/public/297037/
---
Всем привет! Апну тему.
Есть вопрос по PP-6900, как заставить его делать отрезку в конце документа. принтер сетевой Ethernet, драйвера родные с сайта позифлекс. Установлен как виндовый, Posiflex PP6900 Partial Cut v3.01. На данный момент ситуация такая, что режет ленту через 25 примерно см, в 1с размер бумаги custom, 80х1000, в виндовс размер бумаги 3,14х3200 дюймов, источник бумаги рецепт.
Спасибо!
---
pvl_mksv,
3200 дюймов!!! Длина рецепта!!! Это простите что за формат такой? Это же примерно 90 метров бумаги!

Это откуда в виндовс такой стандарт формата бумаги?
---
bzmax,
ну, в рулоне 80мм метров 50-70, так что вариант имеет право на жизнь, но ответ-то не по сути )
ЗЫ А у вас в сетевых супермарткетах разве нет акции навроде "самый длинный чек", у нас вот рекорд в местной сети 3,47 м, это, конечно, не 3200 in, но ...
---
pvl_mksv,
вобщем, есть вопрос косвенно относящийся к теме: а могут ли настройки принтера, такие как, размер бумаги определяться настройками домена, например?
---
Не надо сарказма - если принтер рулонный - в винду драйвер может отчитаться о такой длине, чтобы софт не разбивал на страницы.
---
militskis,
Провода то же в метрах измеряются, но это не значит что провод может быть любой длины(!).
Как ни крути разумные пределы настроек все таки должны присутствовать.
---
Что касается обычных макетов в 1С 8, то их свойства по-хорошему задаются в коде перед печатью (формат книжный-альбомный, масштаб, поля). Код - любая внешняя печатная форма на основе встроенных макетов.
Вопрос дальше уже админский. Мы задаем свои настройки, дальше уже вотчина операционный системы. Даже если не задаем, то все равно можно посмотреть на экране что мы получаем перед печатью и при необходимости подогнать в стандартном окне настроек печати винды.