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

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

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

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

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

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

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

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

Прежде чем генерировать код, определитесь с форматом. В типовых решениях доступны основные линейные стандарты: EAN-13, EAN-8, Code39, Code128, ITF-14, а также двумерный QR-код. Для розничной торговли чаще всего используют EAN-13 — его понимают все сканеры и кассы.

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

Внутренние коды принято формировать в диапазоне, начинающемся с цифры 2 (префикс 200–299 зарезервирован для внутреннего использования предприятия). Это гарантирует, что ваш код никогда не совпадёт с кодом производителя.

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

EAN-13

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

Code128

Кодирует цифры и латиницу, подходит для внутренних артикулов и серий. Сканеры настраиваются отдельно

EAN-8

Короткий код для мелкой упаковки. Диапазон значений ограничен, для внутреннего учёта применяется редко

QR-код

Вмещает много данных, нужен для маркировки «Честный знак» и ссылок. Для обычного учёта избыточен

Генерация штрихкода в карточке номенклатуры

Самый простой сценарий — присвоить код одному товару. Откройте справочник «Номенклатура», выберите позицию и перейдите на вкладку или по ссылке «Штрихкоды» (в УТ 11 и Рознице она находится в панели навигации карточки товара).

Нажмите «Создать». В открывшейся форме укажите упаковку (если ведётся учёт по упаковкам) и оставьте поле штрихкода пустым — при записи программа автоматически сгенерирует свободный код EAN-13 из внутреннего диапазона. Если нужен конкретный код, введите его вручную или отсканируйте сканером прямо в поле ввода.

Один товар может иметь несколько штрихкодов: например, код производителя на коробе и внутренний код для поштучной продажи. Каждая комбинация «номенклатура + характеристика + упаковка» хранится отдельной записью регистра.

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

Массовая генерация штрихкодов для списка товаров

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

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

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

Установка компоненты печати штрихкодов

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

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

При работе в веб-клиенте или через тонкий клиент на сервере компонента должна быть установлена на стороне, где формируется картинка. Это частая причина ситуации, когда на одном компьютере этикетки печатаются, а на другом — нет.

Программная генерация штрихкода кодом 1С

Разработчику может понадобиться присваивать штрихкоды автоматически — например, при создании новой номенклатуры из обмена. Для этого используется запись в регистр сведений «Штрихкоды номенклатуры» и функция расчёта контрольной цифры EAN-13.

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

bsl
Функция КонтрольнаяЦифраEAN13(Код12)
    Сумма = 0;
    Для Поз = 1 По 12 Цикл
        Цифра = Число(Сред(Код12, Поз, 1));
        Сумма = Сумма + ?(Поз % 2 = 0, Цифра * 3, Цифра);
    КонецЦикла;
    Возврат (10 - Сумма % 10) % 10;
КонецФункции

// Запись штрихкода в регистр
Запись = РегистрыСведений.ШтрихкодыНоменклатуры.СоздатьМенеджерЗаписи();
Запись.Владелец = СсылкаНоменклатура;
Запись.Штрихкод = Код12 + Строка(КонтрольнаяЦифраEAN13(Код12));
Запись.Записать();

Имя регистра и реквизитов отличается между конфигурациями («Владелец» или «Номенклатура», наличие полей «Упаковка» и «Характеристика»). Перед написанием кода откройте регистр в конфигураторе и сверьте состав измерений.

Проверка результата и читаемости кода

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

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

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

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

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

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

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

Сканер молчит или подставляется другая позиция

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

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

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

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

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

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

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

Код размыт, обрезан или не помещается на этикетку

Уникальность
Норма

Код присвоен одной комбинации товар/упаковка

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

Один код числится за разными товарами

Типичные ошибки при генерации штрихкодов

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

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

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

Можно ли использовать штрихкод производителя вместо генерации своего?

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

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

Чаще всего код не записан в регистр «Штрихкоды номенклатуры» или записан для другой упаковки. Проверьте карточку товара. Вторая причина — настройки сканера: суффикс Enter, раскладка клавиатуры или обрезание первого символа. Считайте код в блокнот и сравните с тем, что хранится в базе.

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

Общепринятая практика — префикс 2 (коды 200–299 зарезервированы стандартом GS1 для внутреннего применения). Например, 2000000000016, где последняя цифра — контрольная. Такие коды гарантированно не пересекутся с зарегистрированными кодами производителей.

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

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

Компонента печати не устанавливается на одном из компьютеров, что делать?

Проверьте разрядность клиента 1С и компоненты — они должны совпадать. Установите компоненту вручную из дистрибутива с портала 1С и перезапустите сеанс. При работе через веб-браузер убедитесь, что браузеру разрешена установка расширения для работы с внешними компонентами.

Можно ли сгенерировать QR-код или DataMatrix в 1С?

Да, библиотека печати штрихкодов поддерживает двумерные коды, включая QR и DataMatrix. DataMatrix потребуется для работы с маркированными товарами, но сами коды маркировки формирует система «Честный знак» — 1С лишь печатает полученный код на этикетке.

Итог

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

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