Печать на мобильных принтерах по bluetooth и сети (ZPL, TSPL, CPCL)
Интеграция - Периферийные устройства
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Программа разрабатывалась и тестировалась для печати этикеток на мобильный принтер Атол XP-323B (версия с bluetooth). Из мобильного приложения разработанного на 1С для ТСД Атол.Smart Lite c Android 7.
Для подключения по bluetooth с начало надо соединить ТСД с принтером затем выбрать его в приложении.
Для реализации печати в 1С нужно вставить код (для примера):
#Если МобильноеПриложениеКлиент Тогда
Приложение = Новый ЗапускПриложенияМобильногоУстройства();
КомандыДляПечати = "^XA" + Символы.ПС +
"^FO120,20" + Символы.ПС +
"T^A0N,25,25" + Символы.ПС +
"^FDThis is a ZPL test." + Символы.ПС +
"^FS" + Символы.ПС +
"^XZ" + Символы.ПС;
Приложение.ДополнительныеДанные.Добавить("data", КомандыДляПечати);
Приложение.Приложение = "ru.project.labelprint";
Приложение.ИмяКласса = "ru.project.labelprint.print";
Приложение.Запустить(Ложь);
#конецесли
Версия 1 (на новых версия android не работает max 7): При отправке на печать происходит подключение к принтеру, печать этикетки и отключение от принтера.
Версия 2: При отправке на печать происходит подключение к принтеру, печать этикетки. Когда из документа или обработки печатается много этикеток в короткий промежуток времени то принтер не отключается, связь поддерживается. Для отключения принтера нужно отправить в data пустую строку. Пример:
#Если МобильноеПриложениеКлиент Тогда
Приложение = Новый ЗапускПриложенияМобильногоУстройства();
Приложение.ДополнительныеДанные.Добавить("data", "");
Приложение.Приложение = "ru.project.labelprint";
Приложение.ИмяКласса = "ru.project.labelprint.print";
Приложение.Запустить(Ложь);
#конецесли
Версия 3: Все так же как и во второй версии но можно печатать на несколько принтеров с одного ТСД. Для реализации печати на несколько принтеров через программу проверяете печать на каждом принтере. Запоминаете адреса ip или bluetooth. В параметре указываете 'ip' или 'address' принтера на который хотите распечатать, если адрес не указывать то будет печатать на принтер по умолчанию который указан в настройках программы. Пример:
#Если МобильноеПриложениеКлиент Тогда
Приложение = Новый ЗапускПриложенияМобильногоУстройства();
//Для сетевого принтера
Приложение.ДополнительныеДанные.Добавить("ip", "10.1.1.1");
//Для принтера по bluetooth
Приложение.ДополнительныеДанные.Добавить("address", "XX:XX:XX:XX:XX:XX");
//Дальше как обычно отправляемые данные для печати
Приложение.ДополнительныеДанные.Добавить("data", "");
Приложение.Приложение = "ru.project.labelprint";
Приложение.ИмяКласса = "ru.project.labelprint.print";
Приложение.Запустить(Ложь);
#конецесли
Язык интерпретатора для каждого принтера не выбирается и используется один общий который указан в программе.
Тестировалось на ТСД Атол Smarl Lite Android 7; принтер Атол X-323B; Мобильная платформа 1С Предприятие 8.3.21.26.
Вступайте в нашу телеграмм-группу Инфостарт
Мобильный клиент печать ZPL ТСД bluetooth wifi TSPL CPCL принтер
См. также
Распознавание документов и образов Периферийные устройства Разработчик Автомобили, автосервисы Россия Платные (руб)
Программа считывает кадры с ip-камер (http - запрос к камере), видео, фото (источники кадров (нет ограничения на их количество) настраивается в конфигурационном файле), находит и распознает номера автомашин и сохраняет в базу db, с сохранением фото номера и автомашины, а также времени детекции.
20740 руб.
31.05.2023 7857 5 5
Периферийные устройства Разработчик Пользователь Абонемент ($m)
Представляю небольшую компоненту-мост, позволяющую печатать на мобильных принтерах по протоколу BT.
4 стартмани
09.10.2026 616 2 aximo 14
Периферийные устройства Разработчик 1С:Предприятие 8 Абонемент ($m)
Внешняя компонента для 1С:Предприятие, позволяющая узнать статус клавиш CapsLock, NumLock, ScrollLock и переключить их при необходимости.
1 стартмани
15.07.2026 759 0 Kuzja_R 0
Периферийные устройства Распознавание документов и образов Системный администратор Разработчик 1С 8.3 1С:Бухгалтерия 3.0 1С:Зарплата и Управление Персоналом 3.x Россия Абонемент ($m)
Расширение конфигурации, реализующее сканирование посредством scanimage на клиенте Linux без использования компоненты ImageScan. Если Ваш сканер виден и работает в SANE, но категорически не хочет видеться в 1С, то это расширение решает данную проблему. Проверено на БП 3.0.194.23 и ЗУП 3.1.37.49. В ДО, вроде, нет обработки «сканирование», так что переделать немного надо будет.
1 стартмани
27.04.2026 1345 1 Горыня 2
Периферийные устройства Пользователь Отраслевые Автомобили, автосервисы Абонемент ($m)
В результате простой интеграции на экране отображаются записи клиентов, статусы работ и ответственные мастера — вся информация обновляется автоматически прямо из 1С. Тестировалось на релизе 6.1.23.17
1 стартмани
30.03.2026 1435 1 krumenko 0
Периферийные устройства Управленческий учет Абонемент ($m)
Материал отражает личное мнение по оценке рисков использованию торгового оборудования, приобретенного на маркетплейсах.
2 стартмани
20.03.2026 2857 2 aximo 22
Периферийные устройства Разработчик Пользователь 1С 8.5 1С:Розница 3.0 Россия Абонемент ($m)
Очередной баян на эту тему. Конечно же, многие скажут, это лишнее, и никому не нужно, и стоит дорого! Но тем не менее это так или иначе повышает уровень продаж как акционных продуктов, так и обычных. И в этом, конечно же, огромную роль играет психология покупателей. Когда они вживую видят все на экране, это типа продавец открыт и ничего не скрывает, продажи становятся более эффективными.
6 стартмани
10.03.2026 1661 1 kras_71 2
Мобильная разработка Периферийные устройства Разработчик 1С:Предприятие 8 Россия Бесплатно (free)
Подключение Bluetooth сканера в режиме SPP с помощью внешней компоненты "1С:Устройства ввод (NativeApi)" на Android.
25.08.2025 4191 64 maikl007 2
При попытке установить приложение на ТСД (Smarl.Lite Android 7.0) выдает ошибку "Похоже пакет поврежден"
Для исключения повреждения файла при загрузке, загружал на разных устройствах...
Размер файла после загрузки всегда 3 459 640 байт
POSCenter - RPP 200
и HM E300
Они оба добавлены как блютус устройства но в приложении нет в списке принтеров
Подскажите куда копать?
Андроид 11, и на 9 пробовал тоже
"^XA" + Символы.ПС +
"^FO20,20" + Символы.ПС +
"T^AB0N,25,25" + Символы.ПС +
"^FDВодка импортная"+ Символы.ПС +
"^FS" + Символы.ПС +
"^XZ" + Символы.ПС;
Вместо Водка импортная выходят непонятные символы
Я при печати на языке ZPL сейчас выставляю кодовую страницу, но все равно русский шрифт не печатает.
#Если МобильныйКлиент Тогда
Приложение = Новый ЗапускПриложенияМобильногоУстройства();
штрихкод=ШтрихкодПолучитьНаСервере(Номенклатура,Характеристика);
КомандыДляПечати = "^XA" + Символы.ПС +
"^BY5,5,350" + Символы.ПС +
"^FO140,80^BCR^FD" +штрихкод+"^FS"+Символы.ПС +
"^XZ" + Символы.ПС;
Приложение.ДополнительныеДанные.Добавить("data", КомандыДляПечати);
Приложение.Приложение = "ru.project.labelprint";
Приложение.ИмяКласса = "ru.project.labelprint.print";
Приложение.Запустить(Ложь);
#конецесли
ПоказатьЧто может быть не так?
Всего скорее у вас с настройками принтера что то.
Загружали через утилиту TSC шрифт Arial (см скрин).
В коде прописано название шрифта:
КомандыДляПечати = "^XA" + Символы.ПС +
"^FB530,4,5,C,0" + Символы.ПС +
"^FO5,100^A@N,14,16,E:FONT001.FNT^FDДанныеЭтикетки^FS" + Символы.ПС +
"^XZ" + Символы.ПС;
Вместо русских букв выходит абракадабра. Добавление ^CI28 и ^CI33 не помогло.
Кто-нибудь сталкивался? В чем может быть подвох?
(52)
Вернулись на первый вариант. Распечатали тестовый текст из обработки с тсд, выходит две этикетки. Если печатаем тот же текст из утилиты с компьютера - выходит одна этикетка.
Пытаюсь печатать на принтер zebra p4t на языке cpcl
выполняю такой код в 1с приложении:
КомандыДляПечати = "! 0 200 200 210 1" + Символы.ПС +
"TEXT 4 0 30 40 Hello World" + Символы.ПС +
"PRINT" + Символы.ПС;
#Если МобильноеПриложениеКлиент Тогда
Приложение = Новый ЗапускПриложенияМобильногоУстройства();
Приложение.ДополнительныеДанные.Добавить("data", КомандыДляПечати);
Приложение.Приложение = "ru.project.labelprint";
Приложение.ИмяКласса = "ru.project.labelprint.print";
Сообщить("Выполнено, результат " + Приложение.Запустить(Истина));
#КонецЕсли
ПоказатьВыходит пустая этикетка,
из labelprint тестовая печать проходит успешно,(версии на которых пробовал v2 и v3)
Подскажите в чем может быть проблема?
Прям из 1С не пробовал печатать CPCL так как не было необходимости, но в теории должно работать.
А вообще для вашего принтера не проще использовать ZPL это для него родной язык. Думаю с ZPL не возникнет проблем 100%.
PS. Если прям так принципиально, то могу проверить работу печати из 1С CPCL. Но чуть позже когда будет возможность добраться до оборудования.
на CPCL из приложение выводит на этикетку информацию,
а на ZPL пустую этикетку выдает, поэтому и стал в сторону CPCL смотреть
1. ТСД Mertech Movefast S40, андроид 13
2. принтер bluetooth Mertech Alpha HM-T3 PRO
Для проверки печати есть интерфейс для тестовой печати. Если из программы выходят на печать этикетки то все нормально и работает, можно пробовать настраивать из 1С.
И по оборудованию я не подскажу подойдет программа вам или нет (будет работать или нет на конкретном терминале), у меня нет возможности проверять на все типах оборудования. Ставил даже на телефон, все работало.
Вам всего скорее надо спецификации на свое оборудование изучать. Например ваш принтер на сколько я понял (нашел на сайте производителя) понимает только CPCL и ZPL, замем тогда пробовать посылать на него TSPL ?
Скачайте 2 версию программы она 100% рабочая как по блютус так и по ип.
Используем программу версии 2 с этим же принтером на другом ТСД другой фирмы, где android 11 - всё прекрасно работает по bluetooth (нет возможности работать по wifi) с отправкой ZPL из мобильной 1С.
А вот на android 13 что-то стало мешать работе приложения, может быть какие-то новые правила безопасности в самом android. Даже в интерфейсе для тестовой печати. Со смартфона с android 14 приложение тоже не работает и закрывается при попытке тестовой печати из интерфейса приложения.
Есть ли возможность пересобрать и выпустить отдельное приложение для старших версий android?
Скачивал версию N1. В чем может быть проблема?
Пробовал на трех устройствах с Android 12, 13 и 14 - везде одинаковое поведение программы.
Возможно, проблема в свежих версиях Android - выше также писали об этом, программа просто вылетает (сообщение (62)). К сожалению, нет возможности проверить на Android 11 и ниже. Но на 12, 13 и 14 версии, на разных телефонах поведение одинаковое.
Нет ли версии приложения для старших версий Android?
Подскажите, кто-то сталкивался с отправкой растрового изображения на печать через BITMAP? В каком формате необходимо передавать данные в параметре "bitmap data"? Второй день бьюсь, не могу даже повторить пример из руководства по TSPL к принтеру. Печатает, но совершенно не то, что требуется.
Вроде бы дал полные права приложению.
Андроид 12
Можете подсказать куда копать?
А у кого-нибудь наблюдается проблема на версии 3,
с тем, что если печатается 2 разных этикетки сразу одна за другой.
То иногда либо 1я либо 2я игнорируется.
Причём Приложение.Запустить(Истина) и Приложение.Запустить(), в обоих вариантах возвращают успешное выполнение.
Пока что пришлось сделать вот так, по каждой из этикеток.
ЗапускПриложения=Приложение.Запустить(Истина);
ЗапускПриложения=Приложение.Запустить(Истина);
ДатаВыхода = ТекущаяДата() + 3;
Пока ТекущаяДата() < ДатаВыхода Цикл
КонецЦикла;
КонецЕсли;
ЗапускПриложения=Приложение.Запустить(Истина);И печатается этим кодом 1 этикетка))
У меня это воспроизводится на 3х разных принтерах (TSC alpha 30RW, Zebra ZQ610 и Urovo K329)
На ТСД Urovo DT40 на 9м андроиде
Версию платформы правда пока только 1 пробовал - 8.3.16.142
В 3-ей версии из за возможности использования нескольких принтеров он отключается после печати каждой этикетки и заново его подключает при новом задании.
Если сразу знаете что у вас одновременно 2-е этикетки то почему их не отправлять на печать одним файлом, или вы посылаете на печать две одинаковых этикетки ?
Если вы хотите печатать и отправлять на печать этикетки на языке TSPL то и в программе нужно выбрать соответствующий язык. Если вы выбрали в программе ZPL а посылаете в программу TSPL, это так не работает.
Так как тестовая печать идет сразу и без ошибок из программы, следовательно программа не причем. Вам нужно разбираться с кодом в 1С отправляемой этикетки на печать.
Я тестировал печать ZPL и TSPL, ни каких проблем не возникает с печатью. Атол X-323B поддерживает оба языка.
Можете написать в личку код своей этикетки и код из 1С, посмотрю, по возможности помогу.
Так что программа тут не причем.
версия 3, на android 14 не работает, в списке принтеров пусто. (писал в ЛС еще перед НГ, 25/12/2024, ответа так и не дождался)
Проверьте пожалуйста, вы точно перезалили в публикацию правильную сборку? Выше по теме вы кому то уже отправляли в ЛС ссылки с подобной проблемой.
Пользуюсь 3й версией вашего apk.
Пытаюсь перейти на печать zpl по wifi. (по блютусу всё хорошо работает)
Подключил мобильный принтер по wifi. Ему присвоился адрес 192.168.0.135
Выполняю вот такой код (пробовал и без порта, с портом 9100 и портом 6101)
Приложение = Новый ЗапускПриложенияМобильногоУстройства();
Приложение.ДополнительныеДанные.Добавить("data", ТекстДляПечати);
Приложение.Приложение = "ru.project.labelprint";
Приложение.ИмяКласса = "ru.project.labelprint.print";
Приложение.ДополнительныеДанные.Добавить("ip", "192.168.0.135:9100");
ЗапускПечати = Приложение.Запустить(Истина);
Реакции никакой.
Пытался так же зайти в приложение label print.
Переключить вкладку с интерфейсом соединения с блютус на tcp/ip и напечатать тестовый текст.
В поле IP адрес вбивал
192.168.0.135
192.168.0.135:9100
192.168.0.135:6101
Тоже нет реакции.
При этом если в мобильном приложении 1С добавить принтер
Указать в нём ip адрес 192.168.0.135.
И распечатать не ZPL, а табличный документ, то он печатает.
Если вдруг у кого появятся какие-нибудь предположения, что ещё можно попробовать, чтобы печатать ZPL по Wifi.
Я буду признателен)
Так а все таки как решить проблему с печатью через вайфай?
Интересует ворсия V3. В ней есть возможность перевыбрать нужный принтер и нужна именно печать через вайфай.
версия 3 приложения не печатает, выдаёт "ошибка при печати". И нет возможности смены принтера как в версии 2.
V3 версия проверена. Ошибка ушла. Сотрдники работаеют.
Благодарю за оперативность.
ТСД Urovo CT48, Android 12. Пробовал печатать с 2ух разных принтеров: 1. Bixolon spp r300, 2) Urovo k319.
Через мобильный драйвер 1с они печатают.
&НаКлиенте
Процедура ТестПринт2(Команда)
#Если МобильноеПриложениеКлиент Тогда
Приложение = Новый ЗапускПриложенияМобильногоУстройства();
//Для сетевого принтера
//Приложение.ДополнительныеДанные.Добавить("ip", "10.1.1.1");
//Для принтера по bluetooth
Приложение.ДополнительныеДанные.Добавить("address", "00:19:01:35:C4:88");
//Дальше как обычно отправляемые данные для печати
КомандыДляПечати = "^XA" + Символы.ПС +
"^FO120,20" + Символы.ПС +
"T^A0N,25,25" + Символы.ПС +
"^FDThis is a ZPL test." + Символы.ПС +
"^FS" + Символы.ПС +
"^XZ" + Символы.ПС;
Приложение.ДополнительныеДанные.Добавить("data", КомандыДляПечати);
Приложение.Приложение = "ru.project.labelprint";
Приложение.ИмяКласса = "ru.project.labelprint.print";
Приложение.Запустить(Ложь);
#конецесли
КонецПроцедуры
ПоказатьИ что, я же написал настраивайте этикетку и принтер, причем тут мой код этикетки ? Моя этикетка вылезает для того что бы проверить есть связь с принтером или нету и работает или нет. Этикетка вылезла значит все работает. Не понимаю что вы от меня хотите, программа работает. Разрабатывайте свою этикетку и принтер под нее настраивайте и работайте. Из 1с то же должно все работать.
ZPL больше предоставляет возможностей по печати и оформлению этикеток, я то же сначала делал этикетки на TSPL, но из за отсутствия многих возможностей (которые реализованы частично только в TSPL2) которые не все принтера поддерживают. Одно из главных это авто форматирование блока в котором ZPL сам распределяет и переносит текст по строкам, в TSPL такого нет только в TSPL2 на сколько помню реализовали. Ну и еще какие то были проблемы, точно не помню.
1. Качаете шрифт от сюда, я его уже выложил специально для вас
2. Программу качаете от сюда, то же выложил , с помощью ее заливаете шрифт в принтер прям как называется, который скачаете.
3. Пример кода который у меня печатает на русском языке.
^XA
^CI28
^PR10
^SD15
^A@R,40,40,E:FONT001.TTF
^FO520,150
^FB500,1,2,C,0
^FDТекст на русском языке !!!^FS
^PQ1
^XZ
Кто вам сказал такую чушь !!!
У меня три разные модели принтеров и все печатают на ZPL по русски TSC Alpha-3RW(B), Godex MX30, Атол XP-323B. Ни где нет проблем. И не от модели принтера зависит а от правильной его настройки.
Конкретно по CPCL не подскажу, не использовал его а по ZPL можете прочитать тему там в ответах есть где все по шагам расписано.
Есть несколько ТСД Android 10 и Android 13
На Android 10 все отлично работает, сейчас купили тесколько ТСД на Android 13 и на нем не работает
использую обработку labelprint v3
Очень нужна помощь или ответ.
Печатаю подключение к принтере через Блютуз
Один и тот же принтер, но на Android 10 работает, а на Android 13 не работает
Изначально на Android 13 не видел список устройств потом дал полные права приложение и принтер начал отображаться в списке, но не печатает
Поставили на планшет с 16-м андроидом.
Подключили принтер GP 2120TF по блютус.
При попытке тестовой печати не происходит вообще ничего
Через поиск я не нашел что бы ваша модель принтера поддерживала языки программирования, это просто обычный виндовый принтер. Следовательно он и не будет ни чего печатать.
И пока реализовал другой путь,
Кратко:
Печать через сервер с Виндой, на котором стоит IIS
Я опубликовал 1с базу Most_tsd и hs_сервис который ловит запрос из ТСД вида , где последнее это номер этикетки
В серверной Most_tsd формируется команда для PowerShell и посылает файл ZPL на сетевой принтер:порт в невидимом режиме.
Работает мгновенно, в ТСД нажали кнопку, принтер выплюнул этикетку
^XA
^CI28
^PW685
^LL472
^LH0,0
^LS0
^LT0
^FO25,35^BQN,2,7
^FDLA,ii50200298694^FS
^FO510,35^BQN,2,7
^FDLA,ii50200298694^FS
^FO195,100^A0N,65,130
^FDOZON^FS
^FO40,310^A0N,70,100
^FDii5020029^FS
^FO445,295^GB215,80,80^FS
^FO455,310^FR^A0N,70,100
^FD8694^FS
^PQ1
^XZ
Рейтинг: 33
Вы можете заказать платную консультацию или разработку у автора. Будет создан приватный заказ на «Бирже заказов» для автора.
№ 1669190
Создание 10.06.22 11:00
Обновление 30.10.25 22:12
Просмотры 14905
Загрузки 117
Рейтинг
14
Комментарии 177
Код открыт Да
Рубрики Периферийные устройства
Кому Разработчик
Тип файла Приложение (apk)
Платформа 1С:Предприятие 8
Конфигурация Универсальные
Операционная система Android
Страна Россия
Отрасль Не имеет значения
Налоги Не имеет значения
Вид учета Не имеет значения
Доступ к файлу Абонемент ($m)