При организации производственного учета, особенно с использованием серий и сроков годности, часто возникает задача по маркировке продукции. Одним из наиболее функциональных форматов штрихкодирования является EAN-128 (современное название — GS1-128), который позволяет закодировать сразу несколько параметров в одном штрихкоде. Рассмотрим, как реализовать генерацию таких кодов в конфигурации «1С:Управление нашей фирмой» (УНФ) 3.0 и можно ли обойтись стандартными средствами программы.
Основная проблема заключается в том, что для маркировки требуется не просто штрихкод товара, а составной код, включающий, например, код товара (GTIN), номер серии и дату производства. Давайте разберемся, готова ли типовая УНФ к такой задаче.
Стандарт GS1-128 — это не просто штрихкод, а целый язык для кодирования данных. Его ключевая особенность — использование идентификаторов применения (Application Identifiers - AI). Это специальные префиксы (двух-, трех- или четырехзначные числа в скобках), которые сообщают сканеру, какая именно информация следует за ними. Это позволяет в одной строке "упаковать" множество различных данных.
Проанализируем пример, который обсуждался на форуме: необходимо закодировать EAN-13 товара, его серию и дату выпуска — для этой задачи есть обработка для штрихкодирования серий и даты производства. В формате GS1-128 это будет выглядеть следующим образом:
(02) — идентификатор, обозначающий код товара (GTIN). За ним следует 14-значный код. Если у вас EAN-13, он дополняется нулем спереди.(21) — идентификатор серийного номера. За ним следует буквенно-цифровой код серии.(11) — идентификатор даты производства. За ним следует дата в формате ГГММДД.В итоге строка данных для штрихкода может выглядеть так: (02)04601234567890(21)SN54321(11)231225. При сканировании такого кода система, поддерживающая стандарт GS1-128, автоматически "поймет", где здесь код товара, где серия, а где дата, и сможет правильно распределить эти данные по соответствующим полям в документе.
Теперь выясним, что из этого можно сделать в типовой УНФ без привлечения программистов. Стандартный функционал программы для работы со штрихкодами достаточно широк, но имеет свои ограничения.
Ключевое ограничение: как показал опыт пользователей, стандартный функционал не содержит встроенного генератора для "сборки" сложного штрихкода GS1-128 из нескольких разных полей базы данных. Вы можете вывести на этикетку штрихкод номенклатуры (EAN-13) (вывод штрихкода на этикетку маркированного товара), а рядом текстом написать номер серии и дату. Но объединить эти три разных поля в один-единственный штрихкод формата GS1-128 штатными средствами, к сожалению, не получится — есть инструмент редактирования макетов печатных форм без программирования.
Таким образом, приходим к однозначному выводу: чтобы 1С:УНФ 3.0 могла самостоятельно формировать и печатать на этикетках составные штрихкоды GS1-128, требуется доработка конфигурации — для этого подойдёт автоматизация печати штрихкода GTIN на этикетках. Необходимо создать программный механизм (тот самый "генератор"), который будет по заданным правилам собирать данные из разных мест системы и формировать из них единую строку для кодирования.
Рассмотрим по шагам, как может выглядеть техническое задание для программиста по реализации такой доработки.
Чтобы задача была выполнена корректно, ее нужно разбить на несколько логических этапов.
Шаг 1. Определение структуры штрихкода
В первую очередь, необходимо четко определить, какая информация и в каком порядке должна содержаться в штрихкоде. Совместно со специалистом нужно составить "формулу" будущего кода. Например:
(02) для GTIN, (21) для серии, (11) для даты.ШтрихкодыНоменклатуры).Производство, на основании которого печатается этикетка.Шаг 2. Создание алгоритма формирования строки
На этом этапе программист пишет код, который реализует логику сборки. Обычно это делается с помощью внешней обработки или через расширение конфигурации, чтобы не изменять основную конфигурацию и не усложнять будущие обновления.
Алгоритм должен выполнять следующие действия:
Производство.Производство."02" + гтин + "21" + номерСерии + "11" + датаПроизводства. Важно помнить, что скобки в идентификаторах (02), (21) нужны для удобочитаемости, но в самой кодируемой строке могут отсутствовать. Вместо них для разделения данных переменной длины используется специальный символ-разделитель FNC1, что должен учесть компонент 1С, формирующий изображение штрихкода.Шаг 3. Интеграция в механизм печати этикеток
После того как функция генерации строки готова, ее нужно встроить в процесс печати.
В итоге, когда пользователь нажимает кнопку "Печать этикеток" из документа Производство, система автоматически выполняет все эти шаги и выводит на принтер этикетку с правильным, сложным штрихкодом, готовым к использованию на складе.
Итог: 1С:УНФ 3.0 является гибкой системой, которая "готова" к работе со стандартом GS1-128 на уровне чтения и обработки данных. Однако для автоматизации создания таких кодов на собственном производстве необходимо расширение базовых возможностей системы с помощью доработок. Это стандартная практика, позволяющая адаптировать программу под уникальные бизнес-процессы компании.