При переходе на автоматизированный складской учет или начале работы с крупными торговыми сетями часто возникает задача кодирования транспортной упаковки (коробок, паллет). Стандартом для таких целей является штрихкод ITF-14. Если у вас уже есть база штрихкодов для штучного товара в формате EAN-13, мы можем использовать их как основу для генерации кодов упаковок. Рассмотрим детально процесс конвертации, алгоритмы расчета и особенности реализации в системе 1С.
Для начала проанализируем, из чего состоит код ITF-14. В отличие от 13-значного кода розничного товара, логистический код содержит 14 разрядов:
Разберем, какую цифру следует ставить в начало кода. Согласно стандартам GS1, выбор зависит от специфики товара:
1. Если есть коробка на 20 штук того же товара — индикатор 2.Поскольку контрольная цифра в EAN-13 (13-й знак) не совпадает с контрольной цифрой ITF-14 (14-й знак), нам необходимо реализовать алгоритм пересчета. Рассмотрим пошагово, как это сделать программно в 1С:
Рассмотрим пример реализации функции на языке 1С для расчета контрольного символа произвольной строки цифр:
Функция РассчитатьКонтрольныйСимволITF14(Знач Штрихкод13) Экспорт
Сумма = 0;
Для Индекс = 1 По 13 Цикл
Цифра = Число(Сред(Штрихкод13, 14 - Индекс, 1));
Если Индекс % 2 = 1 Тогда
Сумма = Сумма + Цифра * 3;
Иначе
Сумма = Сумма + Цифра * 1;
КонецЕсли;
КонецЦикла;
КонтрольныйРазряд = (10 - (Сумма % 10)) % 10;
Возврат Строка(КонтрольныйРазряд);
КонецФункции
Проанализируем ситуацию, когда поставщик прислал штрихкоды на штуки, но не предоставил коды на коробки, хотя они нанесены на упаковку физически. Чтобы не вносить данные вручную, мы можем доработать механизм сканирования. Рассмотрим логику работы такой обработки:
Посмотрим, как может выглядеть фрагмент кода для выделения базового кода из ITF-14:
// Извлекаем базу EAN-13 из ITF-14
ТекстITF14 = "99009861552486"; // Пример из обсуждения
БазаEAN = Сред(ТекстITF14, 2, 12);
// Далее ищем в базе штрихкод, который начинается на БазаEAN
Выясним причины, по которым нельзя просто «налепить» любой сгенерированный код. Проанализируем технические ограничения:
Bearer Bars). Она защищает от ошибок считывания, когда сканер проходит по коду не полностью.GS1 или Юнискан, пока вы официально не зарегистрируете эту иерархию упаковок.Таким образом, мы рассмотрели механизм преобразования кодов. При автоматизации в 1С наиболее надежным способом будет сочетание алгоритмической генерации и гибкой настройки поиска при первом сканировании новой упаковки. Это позволит избежать ручного ввода и минимизировать ошибки, связанные с человеческим фактором.