Торговля и Склад · 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. В типовых механизмах расчёт выполняет встроенная функция подсистемы штрихкодирования, поэтому вручную считать ничего не нужно.
// Упрощённый пример расчёта контрольной цифры EAN-13
Сумма = 0;
Для Поз = 1 По 12 Цикл
Цифра = Число(Сред(Код, Поз, 1));
Сумма = Сумма + Цифра * ?(Поз % 2 = 0, 3, 1);
КонецЦикла;
КонтрольнаяЦифра = (10 - Сумма % 10) % 10;Если товар приходит от поставщика уже с заводским штрихкодом, генерировать ничего не нужно: код сканируется сканером прямо в поле штрихкода карточки товара или вводится с клавиатуры, и 1С проверяет корректность контрольной цифры и уникальность.
Как 1С превращает цифры в изображение при печати
Цифровое значение — только половина задачи. Чтобы этикетка читалась сканером, при формировании печатной формы 1С вызывает компоненту формирования штрихкодов (в современных версиях платформы это встроенная компонента «1С:Печать штрихкодов»). Компонента получает строку кода, тип штрихкода, ширину и высоту полос и возвращает картинку, которая вставляется в макет этикетки.
Ключевые параметры при выводе: тип штрихкода (должен соответствовать длине данных — EAN-13 не примет 8 цифр), ширина минимального штриха (слишком узкие полосы не читаются дешёвыми сканерами), отображение контрольной цифры и наличие подписи под кодом. Если компонента не установлена или повреждена, вместо штрихкода на этикетке выводится пустое место или текст ошибки.
Пошаговая настройка: от включения до этикетки
В типовой конфигурации вся цепочка настраивается без программирования. Ниже — общий порядок для УТ 11 / Розницы; названия пунктов могут немного отличаться между версиями.
- 1Включите использование штрихкодирования: НСИ и администрирование → Настройка НСИ и разделов → Номенклатура → Штрихкодирование
- 2Задайте префикс внутреннего диапазона (рекомендуется 200–299) и длину порядкового номера
- 3Откройте карточку товара, перейдите к штрихкодам и нажмите «Сгенерировать» — или отсканируйте заводской код сканером
- 4Проверьте, что код появился в регистре и не конфликтует с другими товарами
- 5Настройте шаблон этикетки в «Печать этикеток и ценников», укажите тип штрихкода и размер
- 6Распечатайте пробную этикетку и отсканируйте её сканером в РМК — товар должен подставиться в чек
Для пакетной генерации удобнее использовать обработку «Печать этикеток и ценников» или групповое изменение реквизитов: отбираете список товаров без штрихкодов и создаёте коды сразу для всей выборки. Это существенно быстрее, чем обходить карточки по одной.
Проверка результата и диагностика проблем
Признак корректно сформированного штрихкода — сканер считывает его с первого раза, а 1С однозначно находит нужный товар с правильной характеристикой и упаковкой. Проверять нужно в реальном рабочем месте: на экране монитора код может выглядеть нормально, но на бумаге из-за качества печати стать нечитаемым.
Как проверить результат
Код читается с первого раза на расстоянии 5–15 см
Сканер пищит, но ничего не передаёт, или читает с 3–5 попытки
После сканирования подставляется именно тот товар и та упаковка
Сообщение «Штрихкод не найден» или подставляется другой товар
1С принимает код без предупреждения о некорректности
Программа сообщает о неверном контрольном символе
Полосы чёткие, белые промежутки не залиты краской
Полосы размыты, сливаются, видны разрывы
Если сканер не передаёт данные вообще, сначала проверьте само подключение: сканер в режиме эмуляции клавиатуры должен «печатать» код в любой текстовый редактор. Если код выводится в блокнот, но не находится в 1С — проблема в регистре: код не записан, записан с лишними символами или привязан к другому товару.
Внутренние коды, весовой товар и маркировка
Для весовых товаров 1С использует штрихкоды с префиксом весового товара (обычно 21–29 внутри внутреннего диапазона): часть цифр кодирует товар, часть — вес, который подставляют торговые весы с печатью этикеток. Настройка префикса выполняется в параметрах обмена с оборудованием, и кассовое ПО должно понимать ту же структуру кода.
Маркированные товары — отдельный случай: код DataMatrix с этикетки «Честного знака» не генерируется 1С, а считывается и сохраняется в специальных регистрах. Внутренний штрихкод номенклатуры при этом продолжает существовать параллельно и используется для учёта.
Сравнение вариантов
Подходит для фасованных товаров из розницы. Не требует генерации, но может отсутствовать или дублироваться у разных поставщиков
Стандарт для собственного ассортимента, развесного и нефасованного товара. Гарантирует уникальность внутри базы, но не читается внешними системами
Подходит для штрихкодирования заказов, упаковочных листов и ячеек склада. Позволяет кодировать буквы, но не принимается розничными сетями для товаров
Часто задаваемые вопросы
Можно ли в 1С придумать штрихкод самому, просто вписав цифры?
Можно, но цифры должны образовывать корректный код: для EAN-13 последняя цифра обязана быть правильной контрольной, иначе программа отклонит код, а сканер не будет его распознавать. Надёжнее использовать автоматическую генерацию — 1С сама рассчитает контрольный символ.
Почему сканер читает код, но 1С пишет «Штрихкод не найден»?
Значит, считанного значения нет в регистре штрихкодов: код не был записан в карточку товара, записан с опечаткой, либо сканер передаёт лишние служебные символы. Отсканируйте код в блокнот и сравните строку посимвольно со значением в регистре.
Что делать, если у двух товаров оказался одинаковый штрихкод?
Типовая 1С не даст записать дубликат, но коллизия возможна при загрузке данных из внешних источников. Решение: оставить код за одним товаром, а для второго сгенерировать внутренний код из диапазона 200–299 и перепечатать его этикетки на складе.
Нужно ли устанавливать что-то дополнительно для печати штрихкодов?
Для вывода изображения на этикетку требуется компонента печати штрихкодов. В актуальных версиях платформы и типовых конфигураций она входит в поставку и подключается автоматически; если этикетка выходит пустой — проверьте, не заблокирована ли компонента антивирусом или настройками защиты.
Чем внутренний штрихкод отличается от кода маркировки «Честный знак»?
Внутренний штрихкод (EAN-13) создаёт сама организация и использует для учёта и продажи. Код DataMatrix маркировки выпускает государственная система, он уникален для каждой единицы товара и обязателен для отдельных товарных групп. В 1С эти коды хранятся и обрабатываются разными механизмами.
Сколько штрихкодов можно назначить одному товару?
Количество не ограничено: регистр позволяет привязать к товару код производителя, внутренний код и отдельные коды для каждой упаковки и характеристики. На кассе любой из них приведёт к одному и тому же товару с соответствующей единицей измерения.
Что важно запомнить
1С формирует штрихкод в два этапа: генерирует цифровое значение с контрольной цифрой и хранит его в регистре сведений, а изображение строит компонентой печати при выводе этикетки. Для внутренних кодов используйте префикс 200–299, проверяйте читаемость сканером на реальном рабочем месте и не меняйте коды товаров с историей продаж без резервной копии.