К статье
Практический материал

Торговля и Склад · 10 мин

Как 1С формирует штрихкод: механика, форматы и настройка

Как 1С формирует штрихкод: форматы EAN-13, Code128, автоматическая генерация, печать этикеток, проверка сканером и типичные ошибки в настройке.

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

В типовых конфигурациях (Управление торговлей, Розница, ERP, Комплексная автоматизация) за работу со штрихкодами отвечает подсистема «Штрихкодирование» из Библиотеки стандартных подсистем. Она хранит штрихкоды в регистре сведений, генерирует новые коды по маске и формирует изображение для печати этикеток и ценников.

Какие форматы штрихкодов поддерживает 1С

Основной формат для розничной торговли — EAN-13: тринадцатизначный код, где последняя цифра контрольная и рассчитывается по алгоритму модуля 10. Для внутреннего учёта 1С обычно генерирует коды с префиксом 200–299 — этот диапазон зарезервирован стандартом GS1 для использования внутри предприятия, поэтому такие коды не конфликтуют с кодами производителей.

Помимо EAN-13, типовые конфигурации поддерживают EAN-8 (для малогабаритных товаров), Code39 и Code128 (логистика, внутренние документы, серийные номера), а также двумерные форматы QR и DataMatrix — последний критичен для работы с маркированными товарами по системе «Честный знак». Выбор формата задаётся в настройках штрихкодирования и при создании шаблона этикетки.

Где 1С хранит штрихкоды и как устроена связь с товаром

Штрихкод не является реквизитом самой номенклатуры — он хранится в отдельном регистре сведений «Штрихкоды номенклатуры» (в некоторых конфигурациях — «Штрихкоды упаковок и товаров»). Такая структура позволяет привязать к одному товару несколько кодов: например, отдельные коды для штучной единицы, упаковки и короба, либо код производителя плюс внутренний код.

Запись регистра содержит сам штрихкод (строка), ссылку на номенклатуру, характеристику, упаковку и тип штрихкода. Когда кассир сканирует товар на РМК, программа ищет считанное значение именно в этом регистре и по найденной записи подбирает товар в чек. Если записи нет — появляется сообщение «Штрихкод не найден».

Важное следствие: один и тот же штрихкод нельзя привязать к двум разным товарам — программа контролирует уникальность значения в регистре. Это защищает от ситуации, когда сканирование одного кода подставляет не тот товар.

Как 1С автоматически генерирует новый штрихкод

Автоматическая генерация работает по маске: в настройках штрихкодирования задаётся префикс внутреннего диапазона (например, 200) и длина порядкового номера. Когда пользователь в карточке товара нажимает «Сгенерировать штрихкод» или создаёт коды пакетно из списка номенклатуры, система берёт следующий свободный номер в диапазоне, добавляет префикс и вычисляет контрольную цифру.

Условный алгоритм выглядит так: префикс (3 цифры) + порядковый номер (9 цифр) = 12 цифр, тринадцатая — контрольная, рассчитывается функцией контрольного символа EAN. В типовых механизмах расчёт выполняет встроенная функция подсистемы штрихкодирования, поэтому вручную считать ничего не нужно.

bsl
// Упрощённый пример расчёта контрольной цифры EAN-13
Сумма = 0;
Для Поз = 1 По 12 Цикл
    Цифра = Число(Сред(Код, Поз, 1));
    Сумма = Сумма + Цифра * ?(Поз % 2 = 0, 3, 1);
КонецЦикла;
КонтрольнаяЦифра = (10 - Сумма % 10) % 10;

Если товар приходит от поставщика уже с заводским штрихкодом, генерировать ничего не нужно: код сканируется сканером прямо в поле штрихкода карточки товара или вводится с клавиатуры, и 1С проверяет корректность контрольной цифры и уникальность.

Как 1С превращает цифры в изображение при печати

Цифровое значение — только половина задачи. Чтобы этикетка читалась сканером, при формировании печатной формы 1С вызывает компоненту формирования штрихкодов (в современных версиях платформы это встроенная компонента «1С:Печать штрихкодов»). Компонента получает строку кода, тип штрихкода, ширину и высоту полос и возвращает картинку, которая вставляется в макет этикетки.

Ключевые параметры при выводе: тип штрихкода (должен соответствовать длине данных — EAN-13 не примет 8 цифр), ширина минимального штриха (слишком узкие полосы не читаются дешёвыми сканерами), отображение контрольной цифры и наличие подписи под кодом. Если компонента не установлена или повреждена, вместо штрихкода на этикетке выводится пустое место или текст ошибки.

Типичные ошибки
01
Печать этикеток на обычном офисном принтере с малым масштабом — полосы сливаются, сканер не читает код
02
Присвоение товару произвольных 13 цифр без расчёта контрольной — код отклоняется сканером и 1С
03
Использование для внутренних кодов префикса страны (460–469) вместо 200–299 — риск коллизии с кодами производителей
04
Один штрихкод на разные характеристики товара без учёта характеристик в регистре — на кассе подставляется не тот вариант

Пошаговая настройка: от включения до этикетки

В типовой конфигурации вся цепочка настраивается без программирования. Ниже — общий порядок для УТ 11 / Розницы; названия пунктов могут немного отличаться между версиями.

Порядок действий
  1. 1
    Включите использование штрихкодирования: НСИ и администрирование → Настройка НСИ и разделов → Номенклатура → Штрихкодирование
  2. 2
    Задайте префикс внутреннего диапазона (рекомендуется 200–299) и длину порядкового номера
  3. 3
    Откройте карточку товара, перейдите к штрихкодам и нажмите «Сгенерировать» — или отсканируйте заводской код сканером
  4. 4
    Проверьте, что код появился в регистре и не конфликтует с другими товарами
  5. 5
    Настройте шаблон этикетки в «Печать этикеток и ценников», укажите тип штрихкода и размер
  6. 6
    Распечатайте пробную этикетку и отсканируйте её сканером в РМК — товар должен подставиться в чек

Для пакетной генерации удобнее использовать обработку «Печать этикеток и ценников» или групповое изменение реквизитов: отбираете список товаров без штрихкодов и создаёте коды сразу для всей выборки. Это существенно быстрее, чем обходить карточки по одной.

Проверка результата и диагностика проблем

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

Контрольные точки

Как проверить результат

Считывание сканером
Норма

Код читается с первого раза на расстоянии 5–15 см

Тревожный признак

Сканер пищит, но ничего не передаёт, или читает с 3–5 попытки

Поиск товара в 1С
Норма

После сканирования подставляется именно тот товар и та упаковка

Тревожный признак

Сообщение «Штрихкод не найден» или подставляется другой товар

Контрольная цифра
Норма

1С принимает код без предупреждения о некорректности

Тревожный признак

Программа сообщает о неверном контрольном символе

Печать этикетки
Норма

Полосы чёткие, белые промежутки не залиты краской

Тревожный признак

Полосы размыты, сливаются, видны разрывы

Если сканер не передаёт данные вообще, сначала проверьте само подключение: сканер в режиме эмуляции клавиатуры должен «печатать» код в любой текстовый редактор. Если код выводится в блокнот, но не находится в 1С — проблема в регистре: код не записан, записан с лишними символами или привязан к другому товару.

Внутренние коды, весовой товар и маркировка

Для весовых товаров 1С использует штрихкоды с префиксом весового товара (обычно 21–29 внутри внутреннего диапазона): часть цифр кодирует товар, часть — вес, который подставляют торговые весы с печатью этикеток. Настройка префикса выполняется в параметрах обмена с оборудованием, и кассовое ПО должно понимать ту же структуру кода.

Маркированные товары — отдельный случай: код DataMatrix с этикетки «Честного знака» не генерируется 1С, а считывается и сохраняется в специальных регистрах. Внутренний штрихкод номенклатуры при этом продолжает существовать параллельно и используется для учёта.

Сравнение вариантов

Заводской штрихкод производителя

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

Внутренний EAN-13 с префиксом 200–299

Стандарт для собственного ассортимента, развесного и нефасованного товара. Гарантирует уникальность внутри базы, но не читается внешними системами

Code128 для внутренних документов

Подходит для штрихкодирования заказов, упаковочных листов и ячеек склада. Позволяет кодировать буквы, но не принимается розничными сетями для товаров

Часто задаваемые вопросы

Можно ли в 1С придумать штрихкод самому, просто вписав цифры?

Можно, но цифры должны образовывать корректный код: для EAN-13 последняя цифра обязана быть правильной контрольной, иначе программа отклонит код, а сканер не будет его распознавать. Надёжнее использовать автоматическую генерацию — 1С сама рассчитает контрольный символ.

Почему сканер читает код, но 1С пишет «Штрихкод не найден»?

Значит, считанного значения нет в регистре штрихкодов: код не был записан в карточку товара, записан с опечаткой, либо сканер передаёт лишние служебные символы. Отсканируйте код в блокнот и сравните строку посимвольно со значением в регистре.

Что делать, если у двух товаров оказался одинаковый штрихкод?

Типовая 1С не даст записать дубликат, но коллизия возможна при загрузке данных из внешних источников. Решение: оставить код за одним товаром, а для второго сгенерировать внутренний код из диапазона 200–299 и перепечатать его этикетки на складе.

Нужно ли устанавливать что-то дополнительно для печати штрихкодов?

Для вывода изображения на этикетку требуется компонента печати штрихкодов. В актуальных версиях платформы и типовых конфигураций она входит в поставку и подключается автоматически; если этикетка выходит пустой — проверьте, не заблокирована ли компонента антивирусом или настройками защиты.

Чем внутренний штрихкод отличается от кода маркировки «Честный знак»?

Внутренний штрихкод (EAN-13) создаёт сама организация и использует для учёта и продажи. Код DataMatrix маркировки выпускает государственная система, он уникален для каждой единицы товара и обязателен для отдельных товарных групп. В 1С эти коды хранятся и обрабатываются разными механизмами.

Сколько штрихкодов можно назначить одному товару?

Количество не ограничено: регистр позволяет привязать к товару код производителя, внутренний код и отдельные коды для каждой упаковки и характеристики. На кассе любой из них приведёт к одному и тому же товару с соответствующей единицей измерения.

Итог

Что важно запомнить

1С формирует штрихкод в два этапа: генерирует цифровое значение с контрольной цифрой и хранит его в регистре сведений, а изображение строит компонентой печати при выводе этикетки. Для внутренних кодов используйте префикс 200–299, проверяйте читаемость сканером на реальном рабочем месте и не меняйте коды товаров с историей продаж без резервной копии.