Рассмотрим распространенную ситуацию: при попытке напечатать этикетку для товара из карточки номенклатуры система выводит сообщение «У товара штрихкод не задан или имеет не верный формат». При этом пользователь видит, что штрихкод заполнен — например, значением 1111111111111, а в качестве типа выбран международный стандарт EAN13.
Выясним причину такого поведения 1С. Тип штрихкода EAN13 является строгим стандартом, состоящим из 13 цифр, где последняя (13-я) цифра — это контрольный разряд, вычисляемый по специальному математическому алгоритму (Modulo 10) на основе первых 12 цифр. Компонента печати штрихкодов в 1С при формировании графического изображения автоматически проверяет соответствие 13-й цифры этому алгоритму. Если последовательность цифр сгенерирована произвольно (как в случае с тринадцатью единицами), проверка контрольной суммы завершается ошибкой, и программа блокирует печать этикетки.
Проанализируем структуру кода формата EAN13:
Например, для последовательности из 12 единиц правильным контрольным символом является цифра 8. Таким образом, корректный код для такой последовательности выглядит как 1111111111118. Комбинация 1111111111111 математически невалидна, поэтому компонента печати считает такой штрихкод ошибочным.
Разберем по шагам, как корректно создавать и использовать штрихкоды в программе, чтобы избежать подобных ошибок при печати.
Способ 1. Автоматическая генерация внутреннего штрихкода
В типовых конфигурациях 1С (таких как «Управление торговлей», «ERP Управление предприятием», «Розница», «Управление нашей фирмой») предусмотрен встроенный механизм создания внутренних штрихкодов. При нажатии на стандартную кнопку «Сформировать штрихкод» программа подставляет правильный внутренний префикс и сама вычисляет контрольный символ EAN-13.
Способ 2. Использование зарезервированного диапазона префиксов
По международным стандартам GS1 для локального учета внутри организации зарезервированы префиксы, начинающиеся на 20–29 (а также 200–299). Для внутренних нужд предприятия рекомендуется использовать штрихкоды из этих диапазонов, чтобы не пересекаться с кодами товаров других производителей.
Способ 3. Использование альтернативных типов штрихкодирования
Если вам необходимо закодировать произвольную строку цифр или букв (например, артикул или серийный номер), рассмотрите смену типа штрихкода в карточке номенклатуры:
Таким образом, для успешной печати этикеток в 1С следует использовать либо встроенный генератор штрихкодов, либо указывать валидные коды стандартов EAN, либо выбирать подходящий тип кодирования под ваши задачи.