Как настроить работу со штрихкодами GS1-128 (EAN-128) в 1С:Управление торговлей 11?

Программист 1С v8.3 (Управляемые формы) 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

Работа с расширенными форматами штрихкодов, такими как GS1-128 (ранее известный как EAN-128), является важным этапом автоматизации склада. В отличие от привычного EAN-13, который содержит только код товара (GTIN), формат GS1-128 позволяет зашифровать в одной полоске данных сразу несколько параметров: код товара, номер партии, дату производства и срок годности. Рассмотрим подробно, как заставить 1С:Управление торговлей (УТ 11) правильно понимать эти данные и автоматически распределять их по нужным полям документов.

Понимание структуры GS1-128 и идентификаторов применения (AI)

Прежде чем приступать к настройке программного обеспечения, проанализируем структуру самого кода. GS1-128 — это не просто набор цифр, а составная строка, разделенная идентификаторами применения (Application Identifiers, AI). Это двузначные или четырехзначные префиксы, заключенные (визуально на этикетке) в скобки, которые говорят системе, какие данные идут следом.

Наиболее часто используемые AI в торговле и производстве:

  1. (01) — GTIN товара (всегда 14 цифр).
  2. (17) — Срок годности в формате ГГММДД.
  3. (10) — Номер партии (переменная длина).
  4. (21) — Серийный номер единицы продукции.

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

Шаг 1: Настройка серийного учета в 1С

Для того чтобы система знала, куда записывать данные о сроке годности или партии, извлеченные из штрихкода, необходимо активировать функционал серий. Без включенных серий 1С просто некуда будет «складывать» расширенную информацию.

Разберем последовательность действий:

  1. Перейдем в раздел НСИ и администрирование — Номенклатура — Разрезы учета и убедимся, что флаг Серии товаров установлен.
  2. В справочнике Виды номенклатуры выберем нужный вид товара и настроим политику учета серий.
  3. Важный момент: Для того чтобы данные из штрихкода подставлялись автоматически, в политике учета серий должна быть выбрана возможность указания серии при приемке и отгрузке (например, «Учет себестоимости по сериям» или «Управление остатками серий»).
  4. В настройках серии укажем, что серия идентифицирует Срок годности и Номер партии (в зависимости от того, что зашито в ваш EAN-128).

Шаг 2: Настройка торгового оборудования (Сканера)

Одной из самых частых причин «необработки» штрихкода является неверный режим работы сканера (сообщение 4 и 15). Штрихкод GS1-128 использует невидимый служебный символ FNC1 в качестве разделителя между полями переменной длины (например, после номера партии, если за ним следует срок годности).

Если сканер работает в режиме эмуляции клавиатуры (HID), он часто игнорирует спецсимволы, и 1С получает «кашу» из цифр. Проанализируем рекомендации по настройке:

Шаг 3: Механизм разбора штрихкода в УТ 11

В современных релизах УТ 11 (начиная с 11.4) встроен мощный механизм разбора маркировки, который изначально создавался для системы «Честный ЗНАК» (DataMatrix), но он также прекрасно работает с GS1-128, так как стандарты формирования кодов идентичны.

Когда вы сканируете код в документе «Приобретение товаров и услуг», система выполняет следующий алгоритм:

  1. Ищет в базе номенклатуру по GTIN (AI 01). Помните, что GTIN в коде обычно 14-значный (с ведущим нулем), поэтому в карточке номенклатуры штрихкод должен быть прописан корректно.
  2. Если товар найден и для него включен учет по сериям, система «разрезает» остаток строки.
  3. Значение после префикса (17) преобразуется в дату и подставляется в поле Срок годности.
  4. Значение после префикса (10) записывается в Номер серии.

Шаг 4: Если стандартный механизм не справляется (Программная доработка)

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

Проанализируем пример кода, который можно использовать в расширении для парсинга строки GS1-128 вручную. Рассмотрим упрощенную функцию разбора:


Функция РазобратьGS1_128(Знач Штрихкод) Экспорт
    Результат = Новый Структура("GTIN, СрокГодности, Партия", "", Неопределено, "");
    
    // Поиск GTIN (обычно начинается с 01)
    Если Лев(Штрихкод, 2) = "01" Тогда
        Результат.GTIN = Сред(Штрихкод, 3, 14);
        ОстатокСтроки = Сред(Штрихкод, 17);
        
        // Поиск срока годности (префикс 17)
        Поз17 = Найти(ОстатокСтроки, "17");
        Если Поз17 > 0 Тогда
            СтрокаДаты = Сред(ОстатокСтроки, Поз17 + 2, 6); // Формат ГГММДД
            Год = 2000 + Число(Лев(СтрокаДаты, 2));
            Месяц = Число(Сред(СтрокаДаты, 3, 2));
            День = Число(Прав(СтрокаДаты, 2));
            Результат.СрокГодности = Дата(Год, Месяц, День);
        КонецЕсли;
        
        // Поиск партии (префикс 10)
        Поз10 = Найти(ОстатокСтроки, "10");
        Если Поз10 > 0 Тогда
            Результат.Партия = Сред(ОстатокСтроки, Поз10 + 2);
        КонецЕсли;
    КонецЕсли;
    
    Возврат Результат;
КонецФункции

Этот код демонстрирует логику выделения подстрок. В реальной системе 1С рекомендуется использовать методы программного интерфейса БПО, такие как МенеджерОборудованияКлиент.РазобратьШтрихкод(), которые уже учитывают особенности различных форматов.

Использование шаблонов штрихкодов

Если ваша компания использует внутренние (не GS1) составные штрихкоды, в УТ 11 предусмотрен справочник Шаблоны штрихкодов. Здесь мы можем создать новый шаблон, указать его тип и с помощью визуального конструктора задать:

Это позволяет настроить работу с составными кодами без единой строчки кода, используя только типовой функционал Управление торговлей.

Выводы и рекомендации

Для успешной реализации работы с EAN-128 в 1С выполним следующие действия:

  1. Проверим версию программы: В современных редакциях (11.4+) поддержка GS1-128 встроена на глубоком уровне.
  2. Настроим серии: Без включенного учета серий данные о сроках годности из штрихкода игнорируются.
  3. Сконфигурируем оборудование: Сканер должен передавать спецсимволы-разделители (режим COM-порта).
  4. Сопоставим GTIN: Убедимся, что штрихкоды в карточках товаров соответствуют тем, что зашиты в составной код (обычно начинаются с 0).

Таким образом, задача из «сложной доработки» превращается в правильную последовательную настройку типовых механизмов системы. Использование GS1-128 значительно ускоряет приемку товаров, так как кладовщику достаточно одного сканирования вместо трех (товар, дата, партия).

← На главную