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

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

44
И вот перешла торговля на новый интерфейс (не Такси, а просто на управляемые формы). Многие торговые организации хотят работать не с фискальными регистратором, а с обычным 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: Данный прием теряет свою актуальность для новых версий конфигурации.

44

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

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

См. также

Комментарии
Сортировка: Древо
1. smirnoffs 05.09.13 13:28 Сейчас в теме
Для Украины очень актуально! Недавно сам купил пару принтеров чеков Bixolon, но завести их на УТ3.0 так и не получилось, все заточено под фискальники. Буду пробовать с вашим примером.
2. semario 10 09.09.13 09:34 Сейчас в теме
пример под управляемые формы еще не встречал, а здесь нашел) полезная штука! помогло при разработке своего "рмк".
3. 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. 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. 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 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. urktar 06.02.15 07:55 Сейчас в теме
Подскажите...

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

Возможно их назвали по другому.
Я пуско-наладчик и внедренец 1С, не программист, соответственно мне не все моменты понятны
15. karapuzzzz 60 06.02.15 10:53 Сейчас в теме
(14) urktar, Я не видел Вашей конфигурации, но могу предположить, что общие модули и формы могли быть переименованы. Тем не менее, ЧекККМ обязан присутствовать в списке.
Хотя, я и про модули не уверен. Дело в том, что это некий стандарт написания типовых кофигураций на управляемых формах от 1С.
Можете выложить список объектов конфигурации (Конфигурация - Отчет по конфигурации)? Очень интересно.
16. 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. urktar 06.02.15 13:43 Сейчас в теме
благодарю (17) за адекватный и качественный ответ.
Чтожжж есть у меня на примете программист, придется его подключать.
39. 7OH 31 13.09.18 23:37 Сейчас в теме
(17) у вас УТ 3.1 ?
У меня вот 3.1 и тоже не нахожу этих модулей ?
У вас вышло ? буду признателен за советы
22. PYCTAM 12.08.15 21:09 Сейчас в теме
(14) urktar,
Привет. Ну как решил проблему?
Готов купить такую обработку для Казахстана
19. 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. serglipovy 20.03.18 18:52 Сейчас в теме
Инвините, но не нашел в Рознице 2.0 для Украины такой настройки "Формировать нефискальные чеки" :(
21. VintikComUa 75 18.07.15 13:22 Сейчас в теме
Для Розницы
Исправлены ошибки:

00001082: Нарушения стандарта наименования модулей. Модуль МенеджерОборудованияПереопределяемый переименован МенеджерОборудованияКлиентСерверПереопределяемый;
23. FreeArcher 59 28.01.16 05:25 Сейчас в теме
Кто пользовался данным методом, подскажите, отрезка бумаги работать будет? Не у видел по коду этого момента.
24. karapuzzzz 60 01.02.16 18:22 Сейчас в теме
(23) FreeArcher, есть принципиальная разница между фискальным регистратором и принтером чеков. Фискальный регистратор это устройство, принимающее определенные команды для регистрации торговых операций. У него есть отдельная команда на обрезку чека (или автоматическая обрезка после закрытия чека). А вот принтер чеков это просто принтер, которому на вход подается уже сформированный печатный макет. Никаких специфических команд принтеру не требуется. Если принтер поддерживает обрезку, то в его настройках устанавливается режим обрезки. Скорее всего, обрезка происходит после печати очередной страницы. Т.к. лента длинная, то окончание страницы это или конец всего документа или разрыв страницы. Т.е. после команды "ТабДок.Напечатать()" будет произведена печать макета и его автоматическая обрезка.
25. FreeArcher 59 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. sgristiuk 30.03.16 13:55 Сейчас в теме
karapuzzzz Здравствуйте! Есть ли возможность за одельную плату помочь в настройке данного процеса на рознице для Украины?
Сам не прогромирую в 1С - но потребность в печати на вин принтер есть. Спосибо. support@kolos.in.ua
28. 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. Posipaka 10.01.17 01:38 Сейчас в теме
(29) Я делал под 3.1.2.4 Да, там все по другому немного реализовано, но по логике можно разобраться.
31. user656374_ayup27 21.01.17 08:42 Сейчас в теме
Приветствую гуру. Хочу ввести печать чеков на вин-принтере Xprinter XP-360b. Единственная вразумительная статья эта. Но 90% кода не относится к конфигурации Розница 2.2.5.21. Мож у кого есть наработки в данном направлении?
32. kaiman_fedor_yandex 45 23.01.17 22:17 Сейчас в теме
??? а что стоит подключить принтер и сделать то что описано в #19, это работает и в рознице 2.2



33. gely 30.04.17 22:10 Сейчас в теме
Ко пришлось доработать, так как змеилась конфигурация. Но се работает спасибо.
34. user763001 03.06.17 15:22 Сейчас в теме
Не получается прикрутить к УТ 3.1.5.1 :(
35. shtepin 3 15.08.17 14:07 Сейчас в теме
в УТ 3.1.3.4 должно работать?
36. ketr 90 16.08.17 16:17 Сейчас в теме
а z-отчет или X-отчет будут печататься?
38. izyum 26.04.18 13:14 Сейчас в теме
Эхх если бы на УТ 3.1 прикрутить.
40. 7OH 31 13.09.18 23:41 Сейчас в теме
Судя по теме - на 3.1 или некто не смог или кто смог сюда больше не заглядывает.
41. karapuzzzz 60 14.09.18 10:05 Сейчас в теме
Для всех, кто пытается прикрутить к 3.1. Не вижу причины считать, что это возможно используя предоставленный здесь механизм. Вполне возможно, что такие танцы с бубном уже и не нужны и как в случае с Розницей достаточно использовать уже встроенный механизм. Сам я с 3.1 не сталкивался т.к. единственный мой клиент на УТ продолжает работать на версии 3.0
Оставьте свое сообщение