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

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

Как сгенерировать штрихкод в 1С: Предприятие

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

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

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

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

Какие виды штрихкодов использует 1С и что выбрать

Перед генерацией нужно определиться с типом кода. Для розничной торговли стандартом является EAN-13: тринадцатизначный код, последняя цифра которого — контрольная, рассчитывается по алгоритму. Если товар не зарегистрирован в системе GS1, для внутреннего учёта обычно используют префикс 200–299 (диапазон, зарезервированный для внутреннего применения внутри предприятия).

Для весового товара применяют штрихкоды с весовым префиксом, где часть цифр кодирует вес — такие коды формирует торговое оборудование (весы с печатью этикеток), а 1С настраивается на их распознавание. Для технических задач внутри склада иногда используют Code 128: он позволяет кодировать буквы и не требует регистрации.

Сравнение типов штрихкодов

EAN-13

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

Code 128

Кодирует буквы и цифры, удобен для внутренних артикулов и складских ячеек. Не подходит для продажи через розничные сети.

EAN-8

Сокращённый код для мелких упаковок, где не помещается EAN-13.

DataMatrix

Обязателен для маркированных товаров (обувь, молочная продукция и др.), формируется системой «Честный знак», а не в 1С.

Генерация штрихкода в типовой конфигурации без программирования

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

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

Порядок действий в типовой конфигурации
  1. 1
    Откройте карточку номенклатуры или обработку «Печать этикеток и ценников».
  2. 2
    Добавьте товары, которым нужны штрихкоды.
  3. 3
    Нажмите кнопку генерации штрихкодов (или создания нового штрихкода в карточке).
  4. 4
    Проверьте, что код записался в регистр штрихкодов и уникален.
  5. 5
    Распечатайте тестовую этикетку и считайте код сканером.

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

Программная генерация кода EAN-13

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

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

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

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

Вывод изображения штрихкода на печатную форму

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

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

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

Проверка результата и типичные ошибки

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

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

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

Чтение сканером
Норма

Сканер выдаёт 13 цифр, в 1С находится нужный товар

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

Код не читается или подставляется другой товар

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

Последняя цифра совпадает с расчётом по алгоритму EAN

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

Цифра не совпадает — код сгенерирован с ошибкой

Качество печати
Норма

Штрихи чёткие, без размытия, есть светлые поля по краям

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

Блёклые линии, код читается нестабильно

Типичные ошибки
01
Генерация кодов без проверки уникальности — один штрихкод оказывается у двух товаров, касса пробивает не ту позицию.
02
Использование префикса, совпадающего с кодами поставщиков — конфликт при загрузке приходных накладных.
03
Печать этикеток на низком качестве или с масштабированием картинки — сканер не читает код.
04
Ручное изменение цифр штрихкода без пересчёта контрольной цифры — код становится недействительным.

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

Частые вопросы

Можно ли использовать штрихкод поставщика, а не генерировать свой?

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

Нужно ли регистрировать внутренние штрихкоды в GS1?

Нет. Коды с префиксами 200–299 зарезервированы для внутреннего применения и не требуют регистрации. Регистрация в GS1 нужна, только если товар будет продаваться через внешние розничные сети с вашим собственным кодом.

Почему сканер читает код, а 1С не находит товар?

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

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

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

Чем штрихкод отличается от кода маркировки DataMatrix?

Штрихкод EAN-13 идентифицирует вид товара и генерируется самой организацией. Код DataMatrix — уникальный код каждой единицы товара, его выдаёт система «Честный знак», и 1С только хранит и передаёт эти коды, но не генерирует их.

Итог

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

В типовых конфигурациях штрихкод генерируется из карточки товара или обработки печати этикеток с префиксом внутреннего диапазона. Программная генерация EAN-13 требует корректного расчёта контрольной цифры и проверки уникальности. Перед массовыми операциями делайте резервную копию, а результат всегда проверяйте сканером.