При работе с маркировкой товаров через систему Честный Знак пользователи 1С частенько сталкиваются с неприятной ситуацией: документ Заказ на эмиссию кодов маркировки успешно отработан, коды получены, но при попытке отправить их на печать принтер выдает лишь одну этикетку вместо всей партии. Попытки повторной печати часто не дают результата, так как система считает коды уже напечатанными. В этой статье мы подробно разберем, почему так происходит, и проанализируем все возможные способы решения этой проблемы в конфигурации 1С:Розница 2.3.
В типовых решениях 1С, включая Розницу 2.3, механизм печати кодов маркировки (КМ) работает по строгому алгоритму. Как только команда «Печать» отправлена в спулер принтера, система фиксирует статус кодов как «Напечатан». Если в процессе передачи данных произошел сбой (например, на уровне драйвера или из-за ошибки в очереди печати), первая этикетка может выйти, а остальные — нет. При этом 1С уже пометила всю выборку как обработанную.
Рассмотрим, как это исправить. Если вы столкнулись с такой ситуацией, в первую очередь воспользуемся механизмом восстановления:
Заказ на эмиссию).Одной из наиболее частых причин «одиночной печати» является некорректная настройка шаблона или данных номенклатуры. Проанализируем ситуацию: если система не понимает, какую именно упаковку она печатает, она может ограничиться одним экземпляром DataMatrix.
Выясним, на что нужно обратить внимание в карточке номенклатуры:
GTIN, привязанный к позиции, корректен и соответствует заказанным кодам.Теперь посмотрим на сам шаблон этикетки. В 1С:Розница 2.3 для работы с маркировкой используется тип шаблона «Этикетка (обувь, одежда, табак...)». Важно убедиться, что:
Иногда корень проблемы кроется в программных ошибках конкретных сборок. В версиях 1С:Розница 2.3.20.28 и подобных наблюдались баги при взаимодействии с платформой 8.3.24/8.3.25. Ошибка заключалась в некорректной передаче временных таблиц с кодами маркировки в модуль печати.
Разберем способы устранения:
Проблема может быть не в 1С, а в том, как драйвер принтера (Zebra, TSC, Godex, Xprinter) обрабатывает пакет данных. Если драйвер настроен на «ожидание конца страницы» или имеет ограниченный буфер памяти, он может обрывать печать после первого же сформированного изображения.
Выполним следующие шаги по настройке драйвера в ОС Windows:
DataMatrix.Если вы программист и хотите программно проверить, какие данные уходят на печать, обратите внимание на коллекцию, которая передается в процедуру печати. В типовом коде это выглядит примерно так:
// Примерный фрагмент анализа коллекции кодов
Для Каждого СтрокаИзСписка Из МассивКодовМаркировки Цикл
// Если здесь происходит прерывание или ошибка в шаблоне,
// печать остановится на первой итерации.
ТабличныйДокумент.Вывести(ОбластьМакета);
ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
КонецЦикла;
Если в процессе формирования ТабличныйДокумент возникает ошибка обращения к свойствам номенклатуры (например, из-за отсутствующего типа упаковки), цикл может прерваться. Именно поэтому крайне важно заполнение Вида упаковки в карточке товара, о чем упоминалось выше.
Подведем итог. Если у вас печатается только одна марка из Заказа на эмиссию:
Следуя этим шагам, мы сможем добиться стабильной массовой печати марок и избежать ручного ввода количества для каждой этикетки, что значительно сэкономит время при приемке и маркировке больших партий товара.