При работе с мерным товаром, таким как кабель, текстиль или линолеум, часто возникает задача автоматизации учета остатков и отгрузок с помощью штрихкодирования. В типовых конфигурациях 1С (ERP, УТ 11, УНФ) хорошо проработан механизм для весового товара, но «из коробки» не всегда понятно, как применить этот же подход к длине. Рассмотрим подробно, как реализовать штрихкодирование длины, какие стандарты выбрать и как настроить систему для удобной работы складского персонала.
Самый простой и быстрый способ — адаптировать стандарт EAN-13, который используется для весовых товаров в рознице. Разберем структуру такого кода. Обычно он состоит из 13 цифр:
Например, если код кабеля в системе 00456, а длина на барабане составляет 120.5 метров, штрихкод может выглядеть так: 210045601205X, где X — контрольная сумма. Рассмотрим, как это настроить в 1С. В настройках параметров учета необходимо указать префикс весового товара. Несмотря на то, что товар мерный, система воспримет его корректно, если в карточке номенклатуры базовой единицей измерения будет выбран метр.
Важное ограничение: Формат EAN-13 ограничен 5 знаками под значение. Это значит, что максимальная длина, которую можно закодировать — 999,99 (если два знака под дробную часть) или 99999 (если только целые числа). Для крупных кабельных барабанов, где длина может исчисляться километрами, этот формат может не подойти.
Для складского учета, особенно в производстве и оптовой торговле, рекомендуется использовать стандарт GS1-128 (ранее называвшийся UCC/EAN-128). Проанализируем его преимущества: он позволяет кодировать практически неограниченное количество данных в одной полоске штрихкода благодаря «Идентификаторам применения» (AI).
Для учета длины в метрах используются следующие идентификаторы:
(334x) — длина в метрах.(335x) — длина в метрах с высокой точностью.(30) — количество единиц (если нужно указать количество отрезов).(10) — номер партии (актуально для кабельных заводов).(21) — серийный номер (например, номер барабана).В системе 1С при сканировании такого кода специализированное ПО на ТСД (например, 1С:Мобильная касса или решения от партнеров) «парсит» (разбирает) строку. Выясним причину удобства: за одно сканирование кладовщик получает и артикул товара, и конкретный номер барабана (серию), и его точную длину.
Пример структуры кода GS1-128 для кабеля:
(01)04601234567890(3342)000550(21)BARABAN_01
Здесь 3342 означает длину в метрах с 2 знаками после запятой, а 000550 — это 5.50 метров.
Если нет жесткого требования соответствовать международным стандартам GS1, можно пойти по пути упрощения. Формат Code-128 позволяет кодировать любые символы (буквы и цифры). Проанализируем ситуацию: мы можем создать свой шаблон штрихкода, который будет содержать IDНоменклатуры + Разделитель + Длина.
Пример функции для генерации строки штрихкода в 1С:
Функция СформироватьШтрихкодДлины(КодТовара, Длина) Экспорт
// КодТовара - строка, например "0000123"
// Длина - число, например 150.5
СтрокаДлины = Формат(Длина * 100, "ЧГ=0"); // Переводим в сантиметры для избавления от точки
СтрокаДлины = Лев(Прав("000000" + СтрокаДлины, 6), 6); // Дополняем нулями до 6 знаков
Возврат "L" + КодТовара + СтрокаДлины; // Префикс L для идентификации длины
КонецФункции
При сканировании такого штрихкода в обработке ВнешнееСобытие необходимо будет написать несложный алгоритм разбора, который определит префикс L, выделит код товара и преобразует последние 6 цифр обратно в метры.
Один из главных вопросов форума: как обновлять этикетку на остаток? Рассмотрим по шагам процесс работы складского работника:
Это исключает записи «от руки» и ошибки при последующих инвентаризациях. Если ТСД работает в режиме онлайн, данные об остатке на конкретном барабане (серии) мгновенно обновляются в базе 1С.
В последнее время QR-коды вытесняют линейные штрихкоды. Разберем, почему это выгодно в случае с кабелем. В QR-код можно зашить текстовую строку или структуру JSON, содержащую:
Преимущество QR-кода в том, что его может считать даже обычный смартфон водителя или клиента, что повышает прозрачность цепочки поставок.
Для реализации подбора мерного товара по штрихкоду, необходимо в коде модуля МенеджерОборудованияВызовСервера или в расширении для обработки сканирования предусмотреть перехват весовых префиксов. Разберем пример логики:
// В процедуре обработки сканирования
Если Лев(Штрихкод, 2) = "21" Тогда // Наш префикс для длины
КодНоменклатуры = Сред(Штрихкод, 3, 5);
ЗначениеДлины = Число(Сред(Штрихкод, 8, 5)) / 100;
// Поиск товара по коду
ТоварСсылка = Справочники.Номенклатура.НайтиПоКоду(КодНоменклатуры);
Если Не ТоварСсылка.Пустая() Тогда
// Добавление в документ с заполнением количества
СтруктураДействия = Новый Структура("Номенклатура, Количество", ТоварСсылка, ЗначениеДлины);
// Далее вызываем типовой механизм добавления в корзину/табличную часть
КонецЕсли;
КонецЕсли;
Подведем итог: Штрихкодирование длины товара — это не только техническая настройка префиксов в 1С, но и организационный процесс. Наиболее надежным методом для современных складов является использование GS1-128 в паре с учетом по сериям, где каждая серия — это отдельный барабан или бухта. Это позволяет не только хранить длину в штрихкоде, но и отслеживать историю каждого отреза.