Печать на принтер чеков для УТ 3.0 (для Украины) при помощи доработки эмулятора ФР (также должно подойти для УТ 11)

Печать - Печатные формы документов

И вот перешла торговля на новый интерфейс (не Такси, а просто на управляемые формы). Многие торговые организации хотят работать не с фискальными регистратором, а с обычным POS-принтером или принтером чеков (в простонародье - кухонником). Но не все так гладко, как раньше. Простым добавлением внешней обработки уже не решить вопрос. Надо дорабатывать. За основу был взят типовой драйвер "1С: Драйвер фискального регистратора (эмулятор)"

И вот перешла торговля на новый интерфейс (не Такси, а просто на управляемые формы). Многие торговые организации хотят работать не с фискальными регистратором, а с обычным POS-принтером или принтером чеков (в простонародье - кухонником). Но не все так гладко, как раньше. Простым добавлением внешней обработки уже не решить вопрос. Надо дорабатывать. За основу был взят типовой драйвер "1С: Драйвер фискального регистратора (эмулятор)"

Как многие знают, принтер чеков отображается в системе, как обычный принтер и не требует никаких специальных команд. В типовой конфигурации эмулятор сформированные строки чека просто выводит на экран.  Нам необходимо всю эту информацию вставить в макет и уже его печатать на принтер. За основу были взяты обработки для предыдущих версий торговли на обычных формах. 

Для воплощения задуманного Нам необходимо:

Доработать:

  • - ОбщийМодуль.ПодключаемоеОборудование1СФискальныйРегистраторЭмулятор
  • - ОбщаяФорма.ФормаНастройки1СФискальныйРегистраторЭмулятор
  • - Документ.ЧекККМ
  • - Документ.ЧекККМВозврат

Создать:

  • - ОбщийМодуль.ПодключаемоеОборудование1СФискальныйРегистраторЭмуляторСервер
  • - Обработка.ФискальныйРегистраторКассираПринтер

 Начну с новых объектов. Обработка нам нужна как хранение макета чека. В будущем я еще планирую в нее добавить печать копии чека на этот же принтер чеков(для ФР такое категорически противопоказанно, а нам-то ничего не мешает нарушить это правило Wink ). Я думаю, что с этим пунктом проблем не будет. Вот перечень реализуемых параметров:

  • - Организация
  • - Номер чека в текущей смене
  • - Номер смены или дата чека
  • - Наименование + Характеристика
  • - Количество
  • - Цена
  • - Скидка/Наценка
  • - Сумма
  • - Итого
  • - Оплачено
  • - Сдача
  • - В завистимости от типа чека - разные шапки и конец

Сам макет (корявенький и плывет, но для наглядности сойдет; лучше скачать макет из архива):

 

                                 
Пробел  
                                 
Шапка *Организация*
*Чек* *Смена*
Наименование
Кол-во Цена Скидка Сумма
                                 
ШапкаНаВозврат *Организация*
Чек на возврат
*Чек* *Смена*
Наименование
Кол-во Цена Скидка Сумма
                                 
Товары *Наименование*
 *Количество*  *Цена* *Скидка*   *Сумма*
                                 
Итого Итого:  *Сумма*
Оплачено:  *ОплаченоСумма*
Сдача:  *СдачаСумма*
                                 
КонецЧека Спасибо за покупку!
                                 
КонецЧекаНаВозврат Ждем Вас снова!

 

Не забываем выставить права для кассира на работу с этим объектом

 Далее - Общий модуль.  ПодключаемоеОборудование1СФискальныйРегистраторЭмулятор - клиентский модуль. В Нашем случе - необходимо выполнять ряд процедур и функций, которые не доступны НаКлиенте. По-этому создаем новый общий модуль  ПодключаемоеОборудование1СФискальныйРегистраторЭмуляторСервер, ставим ему параметры как на рисунке ниже

 Настройки общего модуля

 

 

Обратите внимание на пункт "Вызов сервера". Теперь можно отправить на сервер выполнение процедур и функций, не доступных на клиенте. На самом деле там будут только заполняться макет и получать некоторую информацию для чека. Вот текст модуля:

 
 ОбщийМодуль.ПодключаемоеОборудование1СФискальныйРегистраторЭмуляторСервер

Ну, а теперь - самое интересное. Что же Нам необходимо доработать? Начнем с настроек фискального регистратора. По сути, необходимо добавить на форму "ФормаНастройки1СФискальныйРегистраторЭмулятор" еще два реквизита и, затем, сохранять эти значения (чтоб они затем передавались в  "ПодключаемоеОборудование1СФискальныйРегистраторЭмулятор"):

  • - ПринтерДляПечати (тип:строка)
  • - ВыборПринтера (тип:булево)
Примечание: Далее я буду писать только функции/процедуры с добавленным/измененным кодом. 
Измененный или добавленный код находится в блоке. Типовой код, который не нужен, но и не мешает, оставил. 
Но Вы можете почистить от него модули.

В модуле формы добавляем строки:

  • - В процедуре "ПриСозданииНаСервере"
 
 ОбщаяФорма.ФормаНастройки1СФискальныйРегистраторЭмулятор
  •  - В процедуре "ЗаписатьИЗакрытьВыполнить"
 
 ОбщаяФорма.ФормаНастройки1СФискальныйРегистраторЭмулятор


Переходим к чекам. Необходимость доработки сводится к тому, что в случае с работой в режиме ФР, фискальный регистратор берет данные организации, номера чека, номера смены из своей памяти. В нашем случае - эту информацию необходимо черпать из БД. Следующая необходимость связана с тем, что в типовой на чек выводится только наименование номенклатуры. В моем случае была необходимость выводить характеристику. Для документа "ЧекККМ" редактируем модуль формы "ФормаДокументаМастер", а в документе "ЧекККМВозврат" - "ФормаДокумента". Изменения в обоих документах чека идентичны. По-этому привожу код только одного из них.

В функции "ПробитьЧекВыполнить"

 
 Документ.ЧекККМ.ФормаДокументаМастер / Документ.ЧекККМВозврат.ФормаДокумента

 Подготовку сделали. Осталось изменить основной модуль " ПодключаемоеОборудование1СФискальныйРегистраторЭмулятор".

- Функция "ПодключитьУстройство". Вот здесь добавляем Наши новые параметры настройки принтера (имя и признак печати)

 
 ОбщийМодуль.ПодключаемоеОборудование1СФискальныйРегистраторЭмулятор

- Функция "ПечатьЧека". Здесь вставляем в параметры подключения значения кассы ККМ, кассовой смены и организации. Так же отключим вывод на экран сформированного чека.

 
 ОбщийМодуль.ПодключаемоеОборудование1СФискальныйРегистраторЭмулятор

- Функция "ОткрытьЧек".

 
 ОбщийМодуль.ПодключаемоеОборудование1СФискальныйРегистраторЭмулятор

-  Функция "НапечататьФискальнуюСтроку". Печатаем только фискальные строки. Функцию "НапечататьНефискальнуюСтроку" не трогаем.

 
 ОбщийМодуль.ПодключаемоеОборудование1СФискальныйРегистраторЭмулятор

 -  Функция "ЗакрытьЧек".

 
 ОбщийМодуль.ПодключаемоеОборудование1СФискальныйРегистраторЭмулятор

 Вот и все! Теперь добвляем оборудование "Фискальный регистратор" и в поле "Обработчик драйвера" выбираем "1С: Фискальный регистратор (эмулятор)". А после настраиваем (указываем имя принтера для печати или ставим галочку "Выбор принтера".

 Настройка фискального регистратора

 

P.S.: Данный прием не актуален для Розницы 2.0. Там данное решение доступно "из коробки". Как - смотрим комментарии.

UPD 1: Если используется терминал, то печатную форму ровно как и функцию закрытия чека желательно доработать для того чтобы на печать выводить оплаты наличными и картой

UPD 2: Выявилась проблема при печати текстовых блоков. Например, когда происходит попытка распечатать слип-чек, то вылетает ошибка отсутствия в передаваемых параметрах кассы ККМ. Фиксится не сложно, но в моем случае такой необходимости нет.

UPD 3: Данный прием теряет свою актуальность для новых версий конфигурации.

Скачать файлы

Наименование Файл Версия Размер
Архив с текстами модулей и макетом
.rar 43,72Kb
21.03.18
160
.rar 43,72Kb 160 Скачать

См. также

Комментарии
1. Sergey Smirnov (smirnoffs) 05.09.13 13:28 Сейчас в теме
Для Украины очень актуально! Недавно сам купил пару принтеров чеков Bixolon, но завести их на УТ3.0 так и не получилось, все заточено под фискальники. Буду пробовать с вашим примером.
2. semario (semario) 10 09.09.13 09:34 Сейчас в теме
пример под управляемые формы еще не встречал, а здесь нашел) полезная штука! помогло при разработке своего "рмк".
3. arjuna (arjuna) 14.09.13 15:54 Сейчас в теме
4. Тарас Будько (BudkoT) 02.12.13 23:58 Сейчас в теме
Вопрос: а зачем юзать чеки ККМ, открытия кассовых смен и т.п. - если НЕ ИСПОЛЬЗУЕТСЯ КАССОВЫЙ АППАРАТ?
Т.е.:
1. Кассовый аппарат не юзают.
2. Используют не совсем простой механизм розничной торговли (по крайней мере сложнее чем просто документ реализации).
3. Требуется доработка типовой конфигурации, изменение типовых объектов.

Почему не сделать внешнюю ПФ на документ реализации и не париться?
igorkosmos; +1 Ответить
5. Кирилл Бондаренко (karapuzzzz) 60 03.12.13 01:39 Сейчас в теме
(4) BudkoT, отвечу:
1. Ну и что? Да, кассовый аппарат, как фискальный регистратор не юзают, но при это используют чековый принтер для печати тех же чеков (хоть и не фискальных).
2. Чем сложнее? Если речь идет об открытии и закрытии кассовой смены, то это вообще не сложно. В противовес - контроль ежедневной выручки, упрощенная форма документа и т.п. и еще много мелких плюшек. Основным моментом, обычно, служит автоматическая печать чека при проведении.
3. Тут пусть решает каждый сам. Мне, например было проще доработать этот механизм, чем дорабатывать документ реализации, получая тот же функционал.
10. Sergey Smirnov (smirnoffs) 28.08.14 17:53 Сейчас в теме
(5) не могли бы вы мне написать на smirnov@karkar.com.ua, с удовольствием бы вам заплатил за подключение принтеров чеков к УТ3.0.
6. Тарас Будько (BudkoT) 03.12.13 12:16 Сейчас в теме
Дык механизм розничной торговли специально заточен под фискальные нужды: механизмы запрета изменений и т.п.
Если наряду с оптовой торговлей ведется такая, что требует печати вот таких чеков (подчеркиваю, не жесткого фискального контроля с выгрузками и возможными проверками, сертификациями кассовых аппаратов...), а просто печати произвольной ПФ при продаже, то зачем пользователей учить разным процессам, регламентируя по-разному проведение операций? (если по сути пользователи делают одну и ту же операцию, просто "заканчивая" ее печатью разных документов). И не скажи, создание ВНЕШНЕЙ ПФ и изменение конфигурации - это различные порядки доработок (пусть не по сложности, а по степени вмешательства в типовую конфигурацию). И если это не разовая работа (сделали и забыли - пусть клиент сам потом что хочет делает), то нужно сразу думать и о будущем обновлении и т.п.
7. Кирилл Бондаренко (karapuzzzz) 60 04.12.13 02:22 Сейчас в теме
(6) BudkoT, думаю, Вы согласитесь, что, помимо работы с фискальным регистратором, документ "ЧекККМ" и все,что с ним связоно, имеют довольно много других отличий с документом "Реализация товаров и услуг". Так вот здесь и кроется ключ к ответу: почему именно он. Когда речь стоит о том, чтобы просто добавить возможность печатать в некотором виде реализацию на принтер чеков, то я полностью согласен в том, что лучше добавить внешнюю форму и не мучатся. Но, при этом, во многих случаях получается так, что использовать документ "ЧекККМ" удобнее по многим критериям (вот именно те отличия между документами и играют роль). На чашу весов падают:
- на одну сторону: внешняя печатная форма + некоторые доработки документа "Реализация товаров и услуг" и др., которые добавят в него те самые "плюшки", которые уже есть в документе "ЧекККМ".
- на другую сторону: доработать модуль фискального регистратора и пользоваться документом "ЧекККМ"
Здесь решает Заказчик после того, как была озвучена стоимость одного и второго варианта.
8. vadim ttv ttv (vahate) 02.03.14 16:23 Сейчас в теме
этого фискального регистратора в рознице 2.0 нет. Datecs FP-T260. драйвером от атолл не поддерживается. руководство программиста - http://www.artsoft.ua/download/ArtSoftFP3141OLEDoc.rar .демка - http://www.artsoft.ua/download/ArtSoftFP3141OLE.rar - это работает с розницей 1.0. розница 1.0 для украины и для россии идентичны! розница 2.0 интересует как раз российская. интресовались драйвером от атол - он поддерживает некоторые украинские модели ФР но этот в список не входит. поэтому остановились на драйвере указанном выше. там обработка небольшая - как бы ее перенести в 2.0? ссылка на обработку - http://us.ua/1360391/
файл - ArtSoft_DatecsFP3141T_v6.epf
очень надо. оплату гарантируем ))).
9. Денис (DenisKin) 20 09.08.14 18:16 Сейчас в теме
Спасибо за статью очень помогло. Единственное я не стал изменять объекты эмулятора, а сделал все новыми объектами(общие модуля, форма настройки, перечисления), для удобства обновления и макет чека запихнул в общие макеты. С УТ 3 до этого не сталкивался, поэтому было удивление от того, что нужно столько изменений вносить для подключения нового оборудования.
11. Stasiko (Stasiko) 28.09.14 19:48 Сейчас в теме
Работает отлично, спасибо большое за толковый функционал.
12. Димано Чемпион (dgch) 22.01.15 20:31 Сейчас в теме
Добрый день.

Подскажите пожалуйста, как в функции "ПробитьЧекВыполнить" добавить Артикул номенклатуры, Шрихкод номенклатуры и шрихкод номера документы чека? Может кто подскажет...

Спасибо.
13. Кирилл Бондаренко (karapuzzzz) 60 23.01.15 15:47 Сейчас в теме
(12) dgch, А Вы код читали? Там же для этого есть место.
СтрокаТаблицыТоваров.Добавить("");                          //  2 - Штрихкод
СтрокаТаблицыТоваров.Добавить("");                          //  3 - Артикул

Вместо """" вставляете СтрокаТЧ.Артикул и СтрокаТЧ.ШтрихКод.
Для вставки ШК документа можете добавить 21-й параметр. Вот только как его получать - не знаю (я не знаю Вашей конфигурации)

Дальше, в функции "ОткрытьЧек" надо добавить строку для печати штрих-кода документа (например)
Значения.Вставить("ШтрихКодДокумента", ПараметрыПодключения.ШтрихКодДокумента);


К сожалению, конфигурации по рукой нет и ответить правильно и точно не могу. Но разобраться не сложно.
14. Georgy Stalmakov (urktar) 06.02.15 07:55 Сейчас в теме
Подскажите...

Ктонить сталкивался с "Розница для Казахстана 2.0"?
Там многое отсутствует (или во что то переименованно):
Не могу найти:
- ОбщийМодуль.ПодключаемоеОборудование1СФискальныйРегистраторЭмулятор
- ОбщаяФорма.ФормаНастройки1СФискальныйРегистраторЭмулятор
- Документ.ЧекККМ
- Документ.ЧекККМВозврат

Возможно их назвали по другому.
Я пуско-наладчик и внедренец 1С, не программист, соответственно мне не все моменты понятны
15. Кирилл Бондаренко (karapuzzzz) 60 06.02.15 10:53 Сейчас в теме
(14) urktar, Я не видел Вашей конфигурации, но могу предположить, что общие модули и формы могли быть переименованы. Тем не менее, ЧекККМ обязан присутствовать в списке.
Хотя, я и про модули не уверен. Дело в том, что это некий стандарт написания типовых кофигураций на управляемых формах от 1С.
Можете выложить список объектов конфигурации (Конфигурация - Отчет по конфигурации)? Очень интересно.
16. Georgy Stalmakov (urktar) 06.02.15 11:14 Сейчас в теме
(15)
Вот отчет по конфигурации
Прикрепленные файлы:
ОтчетПоКонфигурации.txt
17. Кирилл Бондаренко (karapuzzzz) 60 06.02.15 13:08 Сейчас в теме
(16) urktar,
Не могу найти:
- ОбщийМодуль.ПодключаемоеОборудование1СФискальныйРегистраторЭмулятор
- ОбщаяФорма.ФормаНастройки1СФискальныйРегистраторЭмулятор
- Документ.ЧекККМ
- Документ.ЧекККМВозврат


1. Попробуй ОбщиеМодули.ПодключаемоеОборудованиеУниверсальныйДрайверКлиент
2. Попробуй ОбщиеФормы.ФормаНастройкиУниверсальныйДрайвер
3. Документ ЧекККМ у тебя есть.
4. Вместо него используется тот же документ ЧекККМ. Для разделения используется ВидОперации.

Судя по этому, без программиста не разобраться. Я не думаю, что структура модулей одинаковая, а различия только в названии.
18. Georgy Stalmakov (urktar) 06.02.15 13:43 Сейчас в теме
благодарю (17) за адекватный и качественный ответ.
Чтожжж есть у меня на примете программист, придется его подключать.
22. Rustam Aitzhanov (PYCTAM) 12.08.15 21:09 Сейчас в теме
(14) urktar,
Привет. Ну как решил проблему?
Готов купить такую обработку для Казахстана
19. fedor Bychkov (kaiman_fedor_yandex) 45 02.04.15 18:05 Сейчас в теме
Коллеги, добрый день.
Если речь идет о рознице 2.0 ...., вот тот здесь вы велосипед изобретаете
1. Настраивается в оборудовании 1С Эмулятор (Фискальный регистратор)
2. В настройках кассы ставите ЕНВД
3. Товарный Чек для принтера документов
Прикрепленные файлы:
20. Кирилл Бондаренко (karapuzzzz) 60 06.04.15 12:28 Сейчас в теме
(19) kaiman_fedor_yandex, для Розницы 2.0 это действительно велосипед. Но сабж писался под УТ 3.0 для Украины. А там, к сожалению, такого фокуса нет.
37. Serg Lipovy (serglipovy) 20.03.18 18:52 Сейчас в теме
Инвините, но не нашел в Рознице 2.0 для Украины такой настройки "Формировать нефискальные чеки" :(
21. Vitaliy Oleksik (VintikComUa) 75 18.07.15 13:22 Сейчас в теме
Для Розницы
Исправлены ошибки:

00001082: Нарушения стандарта наименования модулей. Модуль МенеджерОборудованияПереопределяемый переименован МенеджерОборудованияКлиентСерверПереопределяемый;
23. Алексей Беспалов (FreeArcher) 53 28.01.16 05:25 Сейчас в теме
Кто пользовался данным методом, подскажите, отрезка бумаги работать будет? Не у видел по коду этого момента.
24. Кирилл Бондаренко (karapuzzzz) 60 01.02.16 18:22 Сейчас в теме
(23) FreeArcher, есть принципиальная разница между фискальным регистратором и принтером чеков. Фискальный регистратор это устройство, принимающее определенные команды для регистрации торговых операций. У него есть отдельная команда на обрезку чека (или автоматическая обрезка после закрытия чека). А вот принтер чеков это просто принтер, которому на вход подается уже сформированный печатный макет. Никаких специфических команд принтеру не требуется. Если принтер поддерживает обрезку, то в его настройках устанавливается режим обрезки. Скорее всего, обрезка происходит после печати очередной страницы. Т.к. лента длинная, то окончание страницы это или конец всего документа или разрыв страницы. Т.е. после команды "ТабДок.Напечатать()" будет произведена печать макета и его автоматическая обрезка.
25. Алексей Беспалов (FreeArcher) 53 04.02.16 13:15 Сейчас в теме
(24) Спасибо, что отозвался.
Но как то не так получается. Для конкретики, принтер чеков Sam4s Ellix 50DB (Com/USB/Ethernet). В Рознице 2.0, он прекрасно подключается и работает через макет чека, как и фискальный регистратор с обрезкой бумаги.
В УТ 11, так подключить его нельзя, в РМК просто нет возможности выбрать принтеры чеков. Сейчас я на него печатаю, через макет и ТабличныйДокумент. Обрезка не работает, и с разрывом страницы тоже.

Я не могу понять, в какую сторону мне копать, чтобы научить принтер отрезать бумагу. Переписывать РМК, или может какие то драйвера другие надо (опыта с оборудованием мало у меня). Если знаешь, то направь в нужное русло, может смогу и сам разобраться.

Если сам сможешь легко настроить может и проще будет воспользоваться услугами.
26. Кирилл Бондаренко (karapuzzzz) 60 04.02.16 18:52 Сейчас в теме
(25) FreeArcher, УТ 11 это российская конфигурация. УТ 3.0 (для которой писался сабж) - украинская. Если в УТ 11 есть какие-то нюансы, то я не в курсе. Что касаемо принтера, то он поддерживает несколько разных типов драйверов, попробуйте почитать на эту тему. Разные драйвера ведут себя по-разному (что не удивительно т.к. там заложены разные принципы работы и драйвер с принтером общаются разным набором команд).
27. Vitalii Gristiuc (sgristiuk) 30.03.16 13:55 Сейчас в теме
karapuzzzz Здравствуйте! Есть ли возможность за одельную плату помочь в настройке данного процеса на рознице для Украины?
Сам не прогромирую в 1С - но потребность в печати на вин принтер есть. Спосибо. support@kolos.in.ua
28. oleg (Olegsiol) 23.09.16 10:10 Сейчас в теме
Добрый день! Есть вопрос к автору данной обработки. В архиве полная версия обработки? Внес представленный механизм в УТ 3.0 для Украины, печатает шапку и конец чека, а также часть секции итого (оплачено, сдача). Тестировал на чек.принтере UNS.TP 51.02U
P.S. Разобрался. Всё работает.)) Подправил чуть МенеджерОборудованияПереопределяемый,ПодключаемоеОборудование1СФискальныйРегистраторЭмулятор, Документ ЧекККМ.ФормаДокументаМастер, Документ ЧекККМ Возврат.ФормаДокумента, ФискальныйРегистраторКассираПринтер.
Автору благодарочка, за предоставленный код.
29. Виталий Иванов (vitaliyonpu) 13.12.16 15:37 Сейчас в теме
На 3.1 кто-то перекладывал? там функции в основном модуле ПодключаемоеОборудованиеУниверсальныйДрайверКлиент совсем другие по тексту
30. Egor Sasin (Posipaka) 10.01.17 01:38 Сейчас в теме
(29) Я делал под 3.1.2.4 Да, там все по другому немного реализовано, но по логике можно разобраться.
31. Ant (user656374_ayup27) 21.01.17 08:42 Сейчас в теме
Приветствую гуру. Хочу ввести печать чеков на вин-принтере Xprinter XP-360b. Единственная вразумительная статья эта. Но 90% кода не относится к конфигурации Розница 2.2.5.21. Мож у кого есть наработки в данном направлении?
32. fedor Bychkov (kaiman_fedor_yandex) 45 23.01.17 22:17 Сейчас в теме
??? а что стоит подключить принтер и сделать то что описано в #19, это работает и в рознице 2.2



33. Vova Nag (gely) 30.04.17 22:10 Сейчас в теме
Ко пришлось доработать, так как змеилась конфигурация. Но се работает спасибо.
34. Александр Гарас (user763001) 03.06.17 15:22 Сейчас в теме
Не получается прикрутить к УТ 3.1.5.1 :(
35. Николай Николаевич Стадник (shtepin) 5 15.08.17 14:07 Сейчас в теме
в УТ 3.1.3.4 должно работать?
36. Игорь Иванов (ketr) 87 16.08.17 16:17 Сейчас в теме
а z-отчет или X-отчет будут печататься?
38. Николай (izyum) 26.04.18 13:14 Сейчас в теме
Эхх если бы на УТ 3.1 прикрутить.
Оставьте свое сообщение