Быстрая печать этикеток (ZPL, EPL, TSPL, EZPL, GEPL, TSPL-EZ)

16.06.20

Задачи пользователя - Этикетки, ценники

Качественная и быстрая печать на внутреннем языке принтеров этикеток.

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

Наименование Файл Версия Размер
Расширение конфигурации для печати этикеток, (cfe)
.cfe 210,79Kb
49
.cfe 1.0.1 210,79Kb 49 Скачать
Архив с компонентой ме_LabelPrinterComponent
.zip 190,20Kb
36
.zip 1.0.1 190,20Kb 36 Скачать

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

Я уже публиковал ранее аналогичную компоненту выполненную по технологии COM. Ее главным минусом была необходимость установки .NET Framework. В ней была проблема при подключении на некоторых компьютерах, с которой я недавно столкнулся при реализации одного проекта.

В итоге была написана новая компонента на C++ по технологии Native API. Теперь ей не нужен .NET Framework и ручная регистрация в системе. Компонента позволяет печатать текст на любом принтере, установленном в системе. В новой версии был реализован только метод отправки строки на принтер. Отправкой файлов пользовались очень редко, поэтому пока решил его не реализовывать.

// Метод предназначен для отправки данных на принтер.
SendDataStringToPrinter(СистемноеИмяПринтера, ТекстДляПечати) 

В параметре "СистемноеИмяПринтера" передаем имя принтера как он называется в системе. Общий доступ к принтеру открывать не требуется. Если используется сетевой принтер, то указываем полный путь к принтеру. 

Пример использования

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

//Функция выполняет отправку команд на принтер этикеток через компоненту печати LabelPrinter
&НаКлиенте
Функция ОтправитьКомандыНаПринтерЭтикеток(ИмяПринтера, СписокКоманд) Экспорт
        
    КомпонентаПечати = "ОбщийМакет.мп_LabelPrinterComponent";
    Если Не ПодключитьВнешнююКомпоненту(КомпонентаПечати, "LabelPrinter") Тогда		
    	НачатьУстановкуВнешнейКомпоненты(, КомпонентаПечати);
    	Если Не ПодключитьВнешнююКомпоненту(КомпонентаПечати, "LabelPrinter") Тогда
    		ОбщегоНазначенияКлиент.СообщитьПользователю("Ошибка подключения внешней компоненты печати этикеток");
    		Возврат Ложь;
    	КонецЕсли;		
    КонецЕсли;

    Попытка
	    СерверПечати = Новый("AddIn.LabelPrinter.LabelPrinterExtension");
    Исключение
        ОбщегоНазначенияКлиент.СообщитьПользователю(ОписаниеОшибки());
        Возврат Ложь;
    КонецПопытки;
    
	Результат = СерверПечати.SendDataStringToPrinter(ИмяПринтера, СписокКоманд);	
	
	Возврат Результат;
	
КонецФункции

Универсальное расширение конфигурации

Для компоненты сделано расширение, которое можно загрузить в любую конфигурацию. Компонента загружена в общий макет "ме_LabelPrinterComponent". При первом вызове функции 1С сама установит компоненту на компьютере пользователя. Работа поддерживается как на толстом, так и на тонком клиенте.

В модуле "ме_ПечатьЭтикеток" добавлены две функции, одна используется для отправки на печать этикетки. Вторая позволяет получить список установленных в системе принтеров. Для получения списка принтеров используется COM-объект WScript.Network. При первом вызове этого метода потребуется разрешить подключение этой библиотеки. Чтобы скрыть это уведомление отключите безопасный режим для этого расширения. 

Для тестирования печати добавлена обработка. Она позволяет отправить на принтер любой текст, в том числе этикетку на внутреннем языке принтера. 

Расширение можно подключить к любой конфигурации на управляемых формах. Для обычных форм компонента также будет работать, только потребуется перенести общий модуль, макет и обработку в Вашу конфигурацию. 

Работа компоненты была протестирована на следующих платформах: 

  • 1С:Предприятие 8.3 (8.3.15.1700)
  • 1С:Предприятие 8.3 (8.3.16.1030)
  • 1С:Предприятие 8.3 (8.3.16.1148)

Протестировано на следующих конфигурациях: 

  • Управление торговлей, редакция 11 (11.4.8.92) 
  • Розница, редакция 2.3 (2.3.2.28)

 

Планы на развитие функционала: 

1. Добавить функцию получения списка принтеров

2. Добавить отправку на печать с получением ответа от принтера (Нужно для получения данных RFID. При наличии подходящего принтера)

 

Внимание: В текущей версии компоненты есть проблема при печати на сетевой принтер. Пока не исправил. 

 

Маркировка Принтер этикеток ZEBRA GODEX TSC ARGOX Этикетки Печать ZPL EPL TSPL EZPL GEPL TSPL-EZ

См. также

Ценники и этикетки со штрих-кодом для 1С 8.х любой конфигурации

Этикетки, ценники Платформа 1С v8.3 Конфигурации 1cv8 Розничная и сетевая торговля (FMCG) Рестораны, кафе и фаст-фуд Беларусь Украина Россия Управленческий учет Платные (руб)

Простая в использовании обработка для формирования и печати ценников и этикеток со штрих-кодом, с дополнительной ценой, для 1С8.х любой конфигурации. Большое разнообразие шаблонов печатных форм. Управляемая форма (Такси) + Обычный режим.

4380 руб.

11.11.2020    45662    49    44    

58

Печать ценников. (Розница 2.3, УНФ 1.6, две цены + серийные номера) + УНФ 3.0

Этикетки, ценники Платформа 1С v8.3 Управляемые формы 1С:Розница 2 1С:Управление нашей фирмой 1.6 Платные (руб)

Встроенная в конфигурации Розница 2.3 и УНФ 1.6 подсистема печати ценников по мне слишком неповоротлива и с усилиями поддается тонкой настройке, решил с нуля написать свою универсальную печать ценников для этих конфигураций.

2000 руб.

04.11.2019    27135    108    86    

46

Быстрая печать этикетки при сканировании и подборе товара в Рознице 2.3. Расширение

Этикетки, ценники Платформа 1С v8.3 1С:Розница 2 Россия Платные (руб)

Печать этикетки по заданным параметрам, при считывании штрихкода или подборе товара в номенклатуре, документе поступления товаров и услуг, перемещения товаров, оприходования товаров в Рознице 2.3.

2400 руб.

23.03.2022    8602    4    4    

6

Формирование этикеток штрихкодов коробов для поставки на Вайлдберриз

Этикетки, ценники Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 Оптовая торговля, дистрибуция, логистика Управленческий учет Платные (руб)

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

1200 руб.

10.09.2021    19288    11    6    

12

Печать этикеток в УТ 10.3 из документов "Поступление товаров и услуг", "Поступление товаров и услуг в НТТ", "Оприходование товаров"

Розничная торговля Этикетки, ценники Платформа 1С v8.3 1С:Управление торговлей 10 Россия Платные (руб)

Функциональная печать этикеток в УТ 10.3: 1) По товарам из документов "Поступление товаров и услуг", "Поступление товаров и услуг в НТТ", "Оприходование товаров" 2) По остаткам товаров на указанном складе

1290 руб.

07.03.2014    31954    10    8    

13

Печать из Андроид

Этикетки, ценники Мобильная платформа Бесплатно (free)

Печать этикеток на принтер WiFi без драйвера.

20.01.2023    1396    aldar    0    

7

Ценники (этикетки) для термопринтера

Этикетки, ценники Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 Россия Управленческий учет Абонемент ($m)

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

2 стартмани

03.01.2023    2550    11    AndreyPonom    7    

9
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. iliabvf 08.02.20 16:22 Сейчас в теме
Это конечно все прекрасно, но тоже самое можно осуществить отправкой файла ZPL на порт принтера 9100 с помощью встроенных в 1С функций HTTP, но ответа вы не дождетесь.

Вот если бы ваша компонента возвращала ответ от принтера...

Из статьи не понятно если можно работать с сетевым принтером.
И если уж быть совсем наглым, могли бы опубликовать исходники на C++, или хотябы частично рассказать, удачи.
2. Johny_v 140 08.02.20 20:47 Сейчас в теме
(1)
но тоже самое можно осуществить отправкой файла ZPL на порт принтера 9100 с помощью встроенных в 1С функций HTTP

Можно еще пару способов использовать, программист сам решает какой способ выбрать. Я просто поделился своим решением с другими участниками и не претендую на "Премию за открытие в области печати этикеток из 1С".
Вот если бы ваша компонента возвращала ответ от принтера...

В планах есть это реализовать, осталось найти подходящий сетевой принтер.
Из статьи не понятно если можно работать с сетевым принтером.

Можно
могли бы опубликовать исходники на C++

Мог бы, но пока решил этого не делать. И Вам удачи!
3. iliabvf 09.02.20 11:28 Сейчас в теме
(2) Так я и думал
4. KAV2 154 02.03.20 16:36 Сейчас в теме
Есть ли поддержка Android?
5. Johny_v 140 02.03.20 17:54 Сейчас в теме
(4)Нет. Пока только Windows. Для linux и android компоненту не собирал. Может сделаю, как появится свободное время.
6. egv62 15.09.20 17:47 Сейчас в теме
Добрый вечер! Скачал компоненту. Код этикетки - "^XA^LRY^FO25,160^GB0,200,600^FS^LRN^XZ". Принтер в терминале пробрасывается с клиента. Подключен по USB. В задании печати я вижу что что-то попадает и пропадает, но печати не происходит. Поможете разобраться?
14. user1703190 21.11.21 18:40 Сейчас в теме
(6)Здравствуйте! У меня такая же проблема, но с сетевым принтером. Подскажите Вам удалось решить проблему?
22. user1050439 6 16.11.23 22:27 Сейчас в теме
(6) У меня такое же происходит когда пытаюсь печатать WIndows-ным файлом RawPrint.exe (можно найти на сайте Microsoft). Мне кажется нужно попытаться изменить настройки самого установленного принтера USB (хотя для моего TSC TE200 это пока не сработало, ищу возможность более глубокой настройки его, испробовал не все идущие с ним утилиты еще). Как варианты:
1. В самом драйвере отключить печать в очередь печати и установить "печать напрямую"
2. В самом драйвере в дополнительных настройках указать "разрешить пропуск текста" и указать префикс и постфикс для вашего текстового файла с кодом ZPL или какой там у вас.
3. Прикрутить на !тот же! порт "Generic / Text only" драйвер и установить у него печать напрямую -- выводить уже через него.
7. korefano 20 06.10.20 08:40 Сейчас в теме
Добрый день
Возникла проблема с русским языком.
Отправляю:
CT~~CD,~CC^~CT~
^XA
~TA000
~JSN
^LT0
^MNW
^PMN
^CI27
^XZ
^XA
^MMT
^PW709
^LL709
^LS0
^FT79,165^A*N,82,83,TT0003M_^FH\^CI28^FDЭтикетка №2^FS^CI27
^BY2,2,53^FT192,313^BEN,,Y,N
^FH\^FD4650100640147^FS
^PQ1,0,1,Y
^XZ


Русский текст не выводится. Если отправить по ftp, все печатает. В чем причина?
8. korefano 20 06.10.20 11:19 Сейчас в теме
(7)
Русский текст не выводится. Если отправить по ftp, все печатает. В чем причина?


Проблема в при отправки в кодировке

Надо ^CI33 вместо ^CI28
Sombreone; Johny_v; +2 Ответить
9. Johny_v 140 06.10.20 21:57 Сейчас в теме
(7) Это решается загрузкой шрифтов в принтер или указанием другого шрифта.
10. korefano 20 07.10.20 06:39 Сейчас в теме
(9)
Это решается загрузкой шрифтов в принтер или указанием другого шрифта.

Шрифт загружен и указан.
Вот строчка, где указывается шрифт
^FT79,165^A*N,82,83,TT0003M_^FH\^CI28^FDЭтикетка №2^FS^CI27


Это проблема передачи. По ftp этой проблемы нет
Но решение с ^CI33 работает отлично. С кодом 33 также без ошибок передается и по ftp
11. booblich 19.10.20 10:16 Сейчас в теме
Добрый день! Как на сегодняшний день обстоят дела с работой с сетевым принтером и получением ответа от принтера?
Как происходит первоначальное формирование макета этикетки, есть ли в расширении какой-то редактор макета?
12. Johny_v 140 20.10.20 08:00 Сейчас в теме
(11) Добрый день! Никак, у меня нет подходящего принтера.
Для быстрого формирования в этой публикации тоже нет готового редактора. У меня была разработка для обычных форм, но на УФ так и не переделал ее.
13. user1548869 19.02.21 13:45 Сейчас в теме
Добрый день. Хотелось бы задать несколько вопросов о возможности интеграции 1С 8.3. желательно в личку.
15. pavelmael 10 18.01.22 15:35 Сейчас в теме
День добрый.

Не удалось найти RFID принтер? или забросили идею?
16. Johny_v 140 18.01.22 23:42 Сейчас в теме
(15) Нет. К таким не было доступа.
17. user1738869 04.02.22 15:01 Сейчас в теме
Евгений, добрый день, как с вами можно связаться?
18. Chronic 26.11.22 18:11 Сейчас в теме
Добрый день, Евгений
Могли бы вы выложить исходники? Не обязательно бесплатно.
19. korefano 20 25.01.23 10:52 Сейчас в теме
Добрый день. В чем лучше получить код этикетки для притеров TSC?
20. ka3a4ok 29.03.23 09:55 Сейчас в теме
День добрый! разрядность компоненты какая? на сервере x64 будет работать?
21. user1050439 6 16.11.23 22:15 Сейчас в теме
Чтобы выводилось на TSC TE200, который у вас на скрине в списке, вы как настроили драйвер TSC, разрешили транзитную печать с пропуском текста {{<Код ZPL>}} и установили печать напрямую?
Оставьте свое сообщение