Как организовать штрихкодирование длины товара в 1С по аналогии с весовым?

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

При работе с мерным товаром, таким как кабель, текстиль или линолеум, часто возникает задача автоматизации учета остатков и отгрузок с помощью штрихкодирования. В типовых конфигурациях 1С (ERP, УТ 11, УНФ) хорошо проработан механизм для весового товара, но «из коробки» не всегда понятно, как применить этот же подход к длине. Рассмотрим подробно, как реализовать штрихкодирование длины, какие стандарты выбрать и как настроить систему для удобной работы складского персонала.

Вариант 1: Использование структуры EAN-13 (аналогия с весовым товаром)

Самый простой и быстрый способ — адаптировать стандарт EAN-13, который используется для весовых товаров в рознице. Разберем структуру такого кода. Обычно он состоит из 13 цифр:

  1. Префикс (2 цифры) — обычно «21» или «29» (внутренние коды предприятия).
  2. Код товара (5 цифр) — внутренний код номенклатуры в базе 1С.
  3. Значение длины (5 цифр) — собственно метраж.
  4. Контрольный символ (1 цифра) — рассчитывается по алгоритму EAN.

Например, если код кабеля в системе 00456, а длина на барабане составляет 120.5 метров, штрихкод может выглядеть так: 210045601205X, где X — контрольная сумма. Рассмотрим, как это настроить в 1С. В настройках параметров учета необходимо указать префикс весового товара. Несмотря на то, что товар мерный, система воспримет его корректно, если в карточке номенклатуры базовой единицей измерения будет выбран метр.

Важное ограничение: Формат EAN-13 ограничен 5 знаками под значение. Это значит, что максимальная длина, которую можно закодировать — 999,99 (если два знака под дробную часть) или 99999 (если только целые числа). Для крупных кабельных барабанов, где длина может исчисляться километрами, этот формат может не подойти.

Вариант 2: Профессиональный стандарт GS1-128

Для складского учета, особенно в производстве и оптовой торговле, рекомендуется использовать стандарт GS1-128 (ранее называвшийся UCC/EAN-128). Проанализируем его преимущества: он позволяет кодировать практически неограниченное количество данных в одной полоске штрихкода благодаря «Идентификаторам применения» (AI).

Для учета длины в метрах используются следующие идентификаторы:

В системе 1С при сканировании такого кода специализированное ПО на ТСД (например, 1С:Мобильная касса или решения от партнеров) «парсит» (разбирает) строку. Выясним причину удобства: за одно сканирование кладовщик получает и артикул товара, и конкретный номер барабана (серию), и его точную длину.

Пример структуры кода GS1-128 для кабеля:

(01)04601234567890(3342)000550(21)BARABAN_01

Здесь 3342 означает длину в метрах с 2 знаками после запятой, а 000550 — это 5.50 метров.

Вариант 3: Использование Code-128 и произвольных разделителей

Если нет жесткого требования соответствовать международным стандартам GS1, можно пойти по пути упрощения. Формат Code-128 позволяет кодировать любые символы (буквы и цифры). Проанализируем ситуацию: мы можем создать свой шаблон штрихкода, который будет содержать IDНоменклатуры + Разделитель + Длина.

Пример функции для генерации строки штрихкода в 1С:


Функция СформироватьШтрихкодДлины(КодТовара, Длина) Экспорт
    // КодТовара - строка, например "0000123"
    // Длина - число, например 150.5
    
    СтрокаДлины = Формат(Длина * 100, "ЧГ=0"); // Переводим в сантиметры для избавления от точки
    СтрокаДлины = Лев(Прав("000000" + СтрокаДлины, 6), 6); // Дополняем нулями до 6 знаков
    
    Возврат "L" + КодТовара + СтрокаДлины; // Префикс L для идентификации длины
КонецФункции

При сканировании такого штрихкода в обработке ВнешнееСобытие необходимо будет написать несложный алгоритм разбора, который определит префикс L, выделит код товара и преобразует последние 6 цифр обратно в метры.

Организация процесса: «Этикетка-донор»

Один из главных вопросов форума: как обновлять этикетку на остаток? Рассмотрим по шагам процесс работы складского работника:

  1. На барабане висит первичная этикетка с общим метражом (например, 500 м).
  2. Приходит заказ на 50 метров.
  3. Кладовщик сматывает 50 метров.
  4. С помощью мобильного принтера этикеток и ТСД печатаются две этикетки:

Это исключает записи «от руки» и ошибки при последующих инвентаризациях. Если ТСД работает в режиме онлайн, данные об остатке на конкретном барабане (серии) мгновенно обновляются в базе 1С.

Использование QR-кодов

В последнее время QR-коды вытесняют линейные штрихкоды. Разберем, почему это выгодно в случае с кабелем. В QR-код можно зашить текстовую строку или структуру JSON, содержащую:

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

Техническая реализация в 1С (УТ 11 / ERP)

Для реализации подбора мерного товара по штрихкоду, необходимо в коде модуля МенеджерОборудованияВызовСервера или в расширении для обработки сканирования предусмотреть перехват весовых префиксов. Разберем пример логики:


// В процедуре обработки сканирования
Если Лев(Штрихкод, 2) = "21" Тогда // Наш префикс для длины
    КодНоменклатуры = Сред(Штрихкод, 3, 5);
    ЗначениеДлины = Число(Сред(Штрихкод, 8, 5)) / 100;
    
    // Поиск товара по коду
    ТоварСсылка = Справочники.Номенклатура.НайтиПоКоду(КодНоменклатуры);
    
    Если Не ТоварСсылка.Пустая() Тогда
        // Добавление в документ с заполнением количества
        СтруктураДействия = Новый Структура("Номенклатура, Количество", ТоварСсылка, ЗначениеДлины);
        // Далее вызываем типовой механизм добавления в корзину/табличную часть
    КонецЕсли;
КонецЕсли;

Подведем итог: Штрихкодирование длины товара — это не только техническая настройка префиксов в 1С, но и организационный процесс. Наиболее надежным методом для современных складов является использование GS1-128 в паре с учетом по сериям, где каждая серия — это отдельный барабан или бухта. Это позволяет не только хранить длину в штрихкоде, но и отслеживать историю каждого отреза.

← На главную