При работе со складскими операциями в 1С:Управление торговлей 11 часто возникает задача корректной обработки сложных штрихкодов формата GS1-128 (EAN-128). Эти коды содержат в себе не только артикул товара, но и дополнительные данные: номер партии, дату окончания срока годности и вес упаковки. Если при использовании терминалов сбора данных (ТСД) с ПО Клеверенс Mobile SMARTS вы сталкиваетесь с тем, что система видит только основной штрихкод товара, а дополнительные атрибуты «обрезаются» или суммируются, — эта инструкция для вас. Рассмотрим пошагово, как настроить разбор такого кода и передачу данных в 1С.
Прежде чем приступать к программным настройкам, проанализируем структуру кода GS1-128. В нем используются идентификаторы применения (Application Identifiers — AI), которые указывают, какая информация следует далее. Например, код может выглядеть так: (01)09009861271346(10)00037133(15)190923(3103)001000.
Основная проблема заключается в том, что стандартная обработка «Загрузка данных с ТСД» в 1С:УТ 11.3 не обучена «из коробки» разделять эту строку на составляющие, а сама платформа Mobile SMARTS требует предварительной настройки шаблонов разбора.
Для начала нам необходимо научить мобильное приложение на ТСД распознавать структуру кода. Рассмотрим, как это сделать через панель управления Клеверенс на персональном компьютере:
AI.Важно помнить о символе-разделителе FNC1. Если идентификатор имеет переменную длину (как номер партии), после него должен идти специальный невидимый символ FNC1. Если ваш сканер на ТСД его не передает, данные «склеятся». Рекомендуем зайти в настройки сканирующего модуля Android (DataWedge или аналоги) и включить эмуляцию FNC1 (например, заменить его на символ «|» или «~»), чтобы шаблон разбора мог корректно найти конец блока данных.
Проанализируем ситуацию: даже если ТСД считал код, типовая интеграция передает в 1С только поле Штрихкод. Чтобы получить срок годности и вес, необходимо добавить соответствующие поля в структуру документа Mobile SMARTS.
Выясним причину, почему данные могут не доходить до 1С. В конфигураторе Mobile SMARTS для объекта Строка (в документе, например, «Приход на склад») нужно создать дополнительные поля:
Custom_Series (Строка)Custom_ExpiryDate (Дата)Custom_Weight (Число)После создания полей необходимо в алгоритме обработки сканирования прописать присвоение значений из разобранного штрихкода в эти поля. Без этого шага 1С будет получать только обрезанную строку EAN-13, как это описывалось в сообщениях пользователей на форуме.
Часто возникает проблема: если вы сканируете один и тот же товар, но с разными сроками годности, Mobile SMARTS по умолчанию может «схлопнуть» их в одну строку, просто суммировав количество. Рассмотрим, как этого избежать.
Посмотрим на настройку Идентификатор уникальности строки в конфигурации мобильного приложения. По умолчанию уникальность определяется только по ID товара. Чтобы система разделяла позиции, нам нужно изменить этот ключ:
Идентификатор уникальности = ИдентификаторТовара + ДатаСрокаГодности + НомерПартии
Теперь при сканировании упаковок с разными датами на ТСД будут создаваться отдельные строки, которые корректно перенесутся в 1С.
Когда данные подготовлены на стороне ТСД, их нужно принять в 1С. Рассмотрим пример модификации процедуры загрузки. Вам потребуется доработать расширение или внешнюю обработку «Загрузка данных с ТСД Wi-Fi Проф».
Найдем процедуру ЗагрузитьСТСД и проанализируем, как заполняются строки документа. Нам нужно обратиться к нашим созданным полям Mobile SMARTS:
// Пример получения данных из дополнительных полей Клеверенса
Для Каждого СтрокаИзТСД Из ТаблицаДанныхТСД Цикл
НоваяСтрока = ТаблицаТоваров1С.Добавить();
НоваяСтрока.Номенклатура = ПоискНоменклатурыПоШК(СтрокаИзТСД.Barcode);
// Получаем кастомные поля, которые мы добавили в Mobile SMARTS
Если СтрокаИзТСД.Свойства.Содержит("Custom_ExpiryDate") Тогда
НоваяСтрока.СрокГодности = СтрокаИзТСД.Свойства.Custom_ExpiryDate;
КонецЕсли;
Если СтрокаИзТСД.Свойства.Содержит("Custom_Weight") Тогда
// Обрабатываем вес, если он пришел как число
НоваяСтрока.КоличествоУпаковок = СтрокаИзТСД.Свойства.Custom_Weight;
КонецЕсли;
КонецЦикла;
Обратите внимание, что в 1С:УТ 11.3 работа с сериями и сроками годности должна быть предварительно настроена в Политике учета серий для конкретного склада и вида номенклатуры. Если серии не включены, данные просто некуда будет записывать.
Если у вас есть возможность обновиться до версии 11.4 или 11.5, обязательно сделайте это. В новых редакциях появился полноценный справочник Настройки разбора строк штрихкодов. Рассмотрим его преимущества:
Резюмируем: Для успешной обработки сложных кодов в УТ 11.3 необходимо пройти путь от настройки драйвера ТСД (символ FNC1) до создания шаблонов разбора в Mobile SMARTS и добавления проброса кастомных полей в обработку загрузки 1С. Это требует навыков разработки в обеих системах, но позволяет полностью автоматизировать приемку весового и подконтрольного товара.