И вот перешла торговля на новый интерфейс (не Такси, а просто на управляемые формы). Многие торговые организации хотят работать не с фискальными регистратором, а с обычным POS-принтером или принтером чеков (в простонародье — кухонником). Но не все так гладко, как раньше. Простым добавлением внешней обработки уже не решить вопрос. Надо дорабатывать. За основу был взят типовой драйвер "1С: Драйвер фискального регистратора (эмулятор)"
Как многие знают, принтер чеков отображается в системе, как обычный принтер и не требует никаких специальных команд. В типовой конфигурации эмулятор сформированные строки чека просто выводит на экран. Нам необходимо всю эту информацию вставить в макет и уже его печатать на принтер. За основу были взяты обработки для предыдущих версий торговли на обычных формах.
Для воплощения задуманного Нам необходимо:
Доработать:
- — ОбщийМодуль.ПодключаемоеОборудование1СФискальныйРегистраторЭмулятор
- — ОбщаяФорма.ФормаНастройки1СФискальныйРегистраторЭмулятор
- — Документ.ЧекККМ
- — Документ.ЧекККМВозврат
Создать:
- — ОбщийМодуль.ПодключаемоеОборудование1СФискальныйРегистраторЭмуляторСервер
- — Обработка.ФискальныйРегистраторКассираПринтер
Начну с новых объектов. Обработка нам нужна как хранение макета чека. В будущем я еще планирую в нее добавить печать копии чека на этот же принтер чеков(для ФР такое категорически противопоказанно, а нам-то ничего не мешает нарушить это правило ). Я думаю, что с этим пунктом проблем не будет. Вот перечень реализуемых параметров:
- — Организация
- — Номер чека в текущей смене
- — Номер смены или дата чека
- — Наименование + Характеристика
- — Количество
- — Цена
- — Скидка/Наценка
- — Сумма
- — Итого
- — Оплачено
- — Сдача
- — В завистимости от типа чека — разные шапки и конец
Сам макет (корявенький и плывет, но для наглядности сойдет; лучше скачать макет из архива):
Пробел | ||||||||||||||||
Шапка | *Организация* | |||||||||||||||
*Чек* | *Смена* | |||||||||||||||
Наименование | ||||||||||||||||
Кол-во | Цена | Скидка | Сумма | |||||||||||||
ШапкаНаВозврат | *Организация* | |||||||||||||||
Чек на возврат | ||||||||||||||||
*Чек* | *Смена* | |||||||||||||||
Наименование | ||||||||||||||||
Кол-во | Цена | Скидка | Сумма | |||||||||||||
Товары | *Наименование* | |||||||||||||||
*Количество* | *Цена* | *Скидка* | *Сумма* | |||||||||||||
Итого | Итого: | *Сумма* | ||||||||||||||
Оплачено: | *ОплаченоСумма* | |||||||||||||||
Сдача: | *СдачаСумма* | |||||||||||||||
КонецЧека | Спасибо за покупку! | |||||||||||||||
КонецЧекаНаВозврат | Ждем Вас снова! |
Не забываем выставить права для кассира на работу с этим объектом
Далее — Общий модуль. ПодключаемоеОборудование1СФискальныйРегистраторЭмулятор — клиентский модуль. В Нашем случе — необходимо выполнять ряд процедур и функций, которые не доступны НаКлиенте. По-этому создаем новый общий модуль ПодключаемоеОборудование1СФискальныйРегистраторЭмуляторСервер, ставим ему параметры как на рисунке ниже
Обратите внимание на пункт "Вызов сервера". Теперь можно отправить на сервер выполнение процедур и функций, не доступных на клиенте. На самом деле там будут только заполняться макет и получать некоторую информацию для чека. Вот текст модуля:
ОбщийМодуль.ПодключаемоеОборудование1СФискальныйРегистраторЭмуляторСервер
Ну, а теперь — самое интересное. Что же Нам необходимо доработать? Начнем с настроек фискального регистратора. По сути, необходимо добавить на форму "ФормаНастройки1СФискальныйРегистраторЭмулятор" еще два реквизита и, затем, сохранять эти значения (чтоб они затем передавались в "ПодключаемоеОборудование1СФискальныйРегистраторЭмулятор"):
- — ПринтерДляПечати (тип:строка)
- — ВыборПринтера (тип:булево)
Примечание: Далее я буду писать только функции/процедуры с добавленным/измененным кодом.
Измененный или добавленный код находится в блоке. Типовой код, который не нужен, но и не мешает, оставил.
Но Вы можете почистить от него модули.
В модуле формы добавляем строки:
- — В процедуре "ПриСозданииНаСервере"
ОбщаяФорма.ФормаНастройки1СФискальныйРегистраторЭмулятор
- — В процедуре "ЗаписатьИЗакрытьВыполнить"
ОбщаяФорма.ФормаНастройки1СФискальныйРегистраторЭмулятор
Переходим к чекам. Необходимость доработки сводится к тому, что в случае с работой в режиме ФР, фискальный регистратор берет данные организации, номера чека, номера смены из своей памяти. В нашем случае — эту информацию необходимо черпать из БД. Следующая необходимость связана с тем, что в типовой на чек выводится только наименование номенклатуры. В моем случае была необходимость выводить характеристику. Для документа "ЧекККМ" редактируем модуль формы "ФормаДокументаМастер", а в документе "ЧекККМВозврат" — "ФормаДокумента". Изменения в обоих документах чека идентичны. По-этому привожу код только одного из них.
В функции "ПробитьЧекВыполнить"
Документ.ЧекККМ.ФормаДокументаМастер / Документ.ЧекККМВозврат.ФормаДокумента
Подготовку сделали. Осталось изменить основной модуль " ПодключаемоеОборудование1СФискальныйРегистраторЭмулятор".
— Функция "ПодключитьУстройство". Вот здесь добавляем Наши новые параметры настройки принтера (имя и признак печати)
ОбщийМодуль.ПодключаемоеОборудование1СФискальныйРегистраторЭмулятор
— Функция "ПечатьЧека". Здесь вставляем в параметры подключения значения кассы ККМ, кассовой смены и организации. Так же отключим вывод на экран сформированного чека.
ОбщийМодуль.ПодключаемоеОборудование1СФискальныйРегистраторЭмулятор
— Функция "ОткрытьЧек".
ОбщийМодуль.ПодключаемоеОборудование1СФискальныйРегистраторЭмулятор
— Функция "НапечататьФискальнуюСтроку". Печатаем только фискальные строки. Функцию "НапечататьНефискальнуюСтроку" не трогаем.
ОбщийМодуль.ПодключаемоеОборудование1СФискальныйРегистраторЭмулятор
— Функция "ЗакрытьЧек".
ОбщийМодуль.ПодключаемоеОборудование1СФискальныйРегистраторЭмулятор
Вот и все! Теперь добвляем оборудование "Фискальный регистратор" и в поле "Обработчик драйвера" выбираем "1С: Фискальный регистратор (эмулятор)". А после настраиваем (указываем имя принтера для печати или ставим галочку "Выбор принтера".
P.S.: Данный прием не актуален для Розницы 2.0. Там данное решение доступно "из коробки". Как — смотрим комментарии.
UPD 1: Если используется терминал, то печатную форму ровно как и функцию закрытия чека желательно доработать для того чтобы на печать выводить оплаты наличными и картой
UPD 2: Выявилась проблема при печати текстовых блоков. Например, когда происходит попытка распечатать слип-чек, то вылетает ошибка отсутствия в передаваемых параметрах кассы ККМ. Фиксится не сложно, но в моем случае такой необходимости нет.
UPD 3: Данный прием теряет свою актуальность для новых версий конфигурации.
Для Украины очень актуально! Недавно сам купил пару принтеров чеков Bixolon, но завести их на УТ3.0 так и не получилось, все заточено под фискальники. Буду пробовать с вашим примером.
пример под управляемые формы еще не встречал, а здесь нашел) полезная штука! помогло при разработке своего «рмк».
этто точно пригодится.
Вопрос: а зачем юзать чеки ККМ, открытия кассовых смен и т.п. — если НЕ ИСПОЛЬЗУЕТСЯ КАССОВЫЙ АППАРАТ?
Т.е.:
1. Кассовый аппарат не юзают.
2. Используют не совсем простой механизм розничной торговли (по крайней мере сложнее чем просто документ реализации).
3. Требуется доработка типовой конфигурации, изменение типовых объектов.
Почему не сделать внешнюю ПФ на документ реализации и не париться?
(4) BudkoT, отвечу:
1. Ну и что? Да, кассовый аппарат, как фискальный регистратор не юзают, но при это используют чековый принтер для печати тех же чеков (хоть и не фискальных).
2. Чем сложнее? Если речь идет об открытии и закрытии кассовой смены, то это вообще не сложно. В противовес — контроль ежедневной выручки, упрощенная форма документа и т.п. и еще много мелких плюшек. Основным моментом, обычно, служит автоматическая печать чека при проведении.
3. Тут пусть решает каждый сам. Мне, например было проще доработать этот механизм, чем дорабатывать документ реализации, получая тот же функционал.
Дык механизм розничной торговли специально заточен под фискальные нужды: механизмы запрета изменений и т.п.
Если наряду с оптовой торговлей ведется такая, что требует печати вот таких чеков (подчеркиваю, не жесткого фискального контроля с выгрузками и возможными проверками, сертификациями кассовых аппаратов…), а просто печати произвольной ПФ при продаже, то зачем пользователей учить разным процессам, регламентируя по-разному проведение операций? (если по сути пользователи делают одну и ту же операцию, просто «заканчивая» ее печатью разных документов). И не скажи, создание ВНЕШНЕЙ ПФ и изменение конфигурации — это различные порядки доработок (пусть не по сложности, а по степени вмешательства в типовую конфигурацию). И если это не разовая работа (сделали и забыли — пусть клиент сам потом что хочет делает), то нужно сразу думать и о будущем обновлении и т.п.
(6) BudkoT, думаю, Вы согласитесь, что, помимо работы с фискальным регистратором, документ «ЧекККМ» и все,что с ним связоно, имеют довольно много других отличий с документом «Реализация товаров и услуг». Так вот здесь и кроется ключ к ответу: почему именно он. Когда речь стоит о том, чтобы просто добавить возможность печатать в некотором виде реализацию на принтер чеков, то я полностью согласен в том, что лучше добавить внешнюю форму и не мучатся. Но, при этом, во многих случаях получается так, что использовать документ «ЧекККМ» удобнее по многим критериям (вот именно те отличия между документами и играют роль). На чашу весов падают:
— на одну сторону: внешняя печатная форма + некоторые доработки документа «Реализация товаров и услуг» и др., которые добавят в него те самые «плюшки», которые уже есть в документе «ЧекККМ».
— на другую сторону: доработать модуль фискального регистратора и пользоваться документом «ЧекККМ»
Здесь решает Заказчик после того, как была озвучена стоимость одного и второго варианта.
этого фискального регистратора в рознице 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
очень надо. оплату гарантируем ))).
Спасибо за статью очень помогло. Единственное я не стал изменять объекты эмулятора, а сделал все новыми объектами(общие модуля, форма настройки, перечисления), для удобства обновления и макет чека запихнул в общие макеты. С УТ 3 до этого не сталкивался, поэтому было удивление от того, что нужно столько изменений вносить для подключения нового оборудования.
(5) не могли бы вы мне написать на smirnov@karkar.com.ua, с удовольствием бы вам заплатил за подключение принтеров чеков к УТ3.0.
Работает отлично, спасибо большое за толковый функционал.
Добрый день.
Подскажите пожалуйста, как в функции «ПробитьЧекВыполнить» добавить Артикул номенклатуры, Шрихкод номенклатуры и шрихкод номера документы чека? Может кто подскажет…
Спасибо.
(12) dgch, А Вы код читали? Там же для этого есть место.
Вместо «»»» вставляете СтрокаТЧ.Артикул и СтрокаТЧ.ШтрихКод.
Для вставки ШК документа можете добавить 21-й параметр. Вот только как его получать — не знаю (я не знаю Вашей конфигурации)
Дальше, в функции «ОткрытьЧек» надо добавить строку для печати штрих-кода документа (например)
К сожалению, конфигурации по рукой нет и ответить правильно и точно не могу. Но разобраться не сложно.
Подскажите…
Ктонить сталкивался с «Розница для Казахстана 2.0»?
Там многое отсутствует (или во что то переименованно):
Не могу найти:
— ОбщийМодуль.ПодключаемоеОборудование1СФискальныйРегистраторЭмулятор
— ОбщаяФорма.ФормаНастройки1СФискальныйРегистраторЭмулятор
— Документ.ЧекККМ
— Документ.ЧекККМВозврат
Возможно их назвали по другому.
Я пуско-наладчик и внедренец 1С, не программист, соответственно мне не все моменты понятны
(14) urktar, Я не видел Вашей конфигурации, но могу предположить, что общие модули и формы могли быть переименованы. Тем не менее, ЧекККМ обязан присутствовать в списке.
Хотя, я и про модули не уверен. Дело в том, что это некий стандарт написания типовых кофигураций на управляемых формах от 1С.
Можете выложить список объектов конфигурации (Конфигурация — Отчет по конфигурации)? Очень интересно.
(15)
Вот отчет по конфигурации
(16) urktar,
— ОбщийМодуль.ПодключаемоеОборудование1СФискальныйРегистраторЭмулятор
— ОбщаяФорма.ФормаНастройки1СФискальныйРегистраторЭмулятор
— Документ.ЧекККМ
— Документ.ЧекККМВозврат
1. Попробуй ОбщиеМодули.ПодключаемоеОборудованиеУниверсальныйДрайверКлиент
2. Попробуй ОбщиеФормы.ФормаНастройкиУниверсальныйДрайвер
3. Документ ЧекККМ у тебя есть.
4. Вместо него используется тот же документ ЧекККМ. Для разделения используется ВидОперации.
Судя по этому, без программиста не разобраться. Я не думаю, что структура модулей одинаковая, а различия только в названии.
благодарю (17) за адекватный и качественный ответ.
Чтожжж есть у меня на примете программист, придется его подключать.
Коллеги, добрый день.
Если речь идет о рознице 2.0 …., вот тот здесь вы велосипед изобретаете
1. Настраивается в оборудовании 1С Эмулятор (Фискальный регистратор)
2. В настройках кассы ставите ЕНВД
3. Товарный Чек для принтера документов
(19) kaiman_fedor_yandex, для Розницы 2.0 это действительно велосипед. Но сабж писался под УТ 3.0 для Украины. А там, к сожалению, такого фокуса нет.
Для Розницы
Исправлены ошибки:
00001082: Нарушения стандарта наименования модулей. Модуль МенеджерОборудованияПереопределяемый переименован МенеджерОборудованияКлиентСерверПереопределяемый;
(14) urktar,
Привет. Ну как решил проблему?
Готов купить такую обработку для Казахстана
Кто пользовался данным методом, подскажите, отрезка бумаги работать будет? Не у видел по коду этого момента.
(23) FreeArcher, есть принципиальная разница между фискальным регистратором и принтером чеков. Фискальный регистратор это устройство, принимающее определенные команды для регистрации торговых операций. У него есть отдельная команда на обрезку чека (или автоматическая обрезка после закрытия чека). А вот принтер чеков это просто принтер, которому на вход подается уже сформированный печатный макет. Никаких специфических команд принтеру не требуется. Если принтер поддерживает обрезку, то в его настройках устанавливается режим обрезки. Скорее всего, обрезка происходит после печати очередной страницы. Т.к. лента длинная, то окончание страницы это или конец всего документа или разрыв страницы. Т.е. после команды «ТабДок.Напечатать()» будет произведена печать макета и его автоматическая обрезка.
(24) Спасибо, что отозвался.
Но как то не так получается. Для конкретики, принтер чеков Sam4s Ellix 50DB (Com/USB/Ethernet). В Рознице 2.0, он прекрасно подключается и работает через макет чека, как и фискальный регистратор с обрезкой бумаги.
В УТ 11, так подключить его нельзя, в РМК просто нет возможности выбрать принтеры чеков. Сейчас я на него печатаю, через макет и ТабличныйДокумент. Обрезка не работает, и с разрывом страницы тоже.
Я не могу понять, в какую сторону мне копать, чтобы научить принтер отрезать бумагу. Переписывать РМК, или может какие то драйвера другие надо (опыта с оборудованием мало у меня). Если знаешь, то направь в нужное русло, может смогу и сам разобраться.
Если сам сможешь легко настроить может и проще будет воспользоваться услугами.
(25) FreeArcher, УТ 11 это российская конфигурация. УТ 3.0 (для которой писался сабж) — украинская. Если в УТ 11 есть какие-то нюансы, то я не в курсе. Что касаемо принтера, то он поддерживает несколько разных типов драйверов, попробуйте почитать на эту тему. Разные драйвера ведут себя по-разному (что не удивительно т.к. там заложены разные принципы работы и драйвер с принтером общаются разным набором команд).
karapuzzzz Здравствуйте! Есть ли возможность за одельную плату помочь в настройке данного процеса на рознице для Украины?
Сам не прогромирую в 1С — но потребность в печати на вин принтер есть. Спосибо. support@kolos.in.ua
Добрый день! Есть вопрос к автору данной обработки. В архиве полная версия обработки? Внес представленный механизм в УТ 3.0 для Украины, печатает шапку и конец чека, а также часть секции итого (оплачено, сдача). Тестировал на чек.принтере UNS.TP 51.02U
P.S. Разобрался. Всё работает.)) Подправил чуть МенеджерОборудованияПереопределяемый,ПодключаемоеОборудование1СФискальныйРегистраторЭмулятор, Документ ЧекККМ.ФормаДокументаМастер, Документ ЧекККМ Возврат.ФормаДокумента, ФискальныйРегистраторКассираПринтер.
Автору благодарочка, за предоставленный код.
На 3.1 кто-то перекладывал? там функции в основном модуле ПодключаемоеОборудованиеУниверсальныйДрайверКлиент совсем другие по тексту
(29) Я делал под 3.1.2.4 Да, там все по другому немного реализовано, но по логике можно разобраться.
Приветствую гуру. Хочу ввести печать чеков на вин-принтере Xprinter XP-360b. Единственная вразумительная статья эта. Но 90% кода не относится к конфигурации Розница 2.2.5.21. Мож у кого есть наработки в данном направлении?
??? а что стоит подключить принтер и сделать то что описано в #19, это работает и в рознице 2.2
Ко пришлось доработать, так как змеилась конфигурация. Но се работает спасибо.
Не получается прикрутить к УТ 3.1.5.1 🙁
в УТ 3.1.3.4 должно работать?
а z-отчет или X-отчет будут печататься?
Инвините, но не нашел в Рознице 2.0 для Украины такой настройки «Формировать нефискальные чеки» 🙁
Эхх если бы на УТ 3.1 прикрутить.
(17) у вас УТ 3.1 ?
У меня вот 3.1 и тоже не нахожу этих модулей ?
У вас вышло ? буду признателен за советы
Судя по теме — на 3.1 или некто не смог или кто смог сюда больше не заглядывает.
Для всех, кто пытается прикрутить к 3.1. Не вижу причины считать, что это возможно используя предоставленный здесь механизм. Вполне возможно, что такие танцы с бубном уже и не нужны и как в случае с Розницей достаточно использовать уже встроенный механизм. Сам я с 3.1 не сталкивался т.к. единственный мой клиент на УТ продолжает работать на версии 3.0
(41) Вы имеете в виду в Рознице «товарный чек для принтера документа»? не получается использовать этот режим для автоматической печати на принтер. Необходимо подтверждение печати в окне предпросмотра. Как сделать автоматическую печать? нигде в Рознице 2.0 не нашел как задать параметр для печати без предпросмотра. Похоже ни один документ не использует этот режим
(42) Нет, При печати чека через меню «Печать» происходит печать товарного чека, который является копией чека. Например, если клиент потерял свой чек. В этом случае мы имеем дело с обычным макетом документа и печатной формой. В случае с фискальным регистратором используется другой механизм. Для этого надо добавлять к рабочему мету торговое оборудование типа «Фискальный регистратор» и как драйвер выбирать «Эмулятор фискального регистратора».
(43) пытался реализовать идею, в которой после отработки по фискальному эмулятору вызывалась бы печать на принтер по умолчанию (чековый принтер) шаблона чеков (товарный чек для принтера документов). Все получилось, открывается окно предпросмотра шаблона, а вот обойти предпросмотр для автопечати не получилось.
(44) Конфигурация написана на БСП (библиотека стандартных подсистем). Надо смотреть её описание и настройки. Там должна быть возможность пускать на печать без предпросмотра.