Торговля и Склад · 10 мин
Как сгенерировать штрихкод в 1С
Как сгенерировать штрихкод в 1С: типовые механизмы, компонента печати, EAN-13 и Code128, код для разработчиков, проверка результата и типичные ошибки.
Штрихкод в 1С нужен для быстрого поиска товаров сканером, печати ценников и этикеток, а также для обмена данными с маркетплейсами и торговыми сетями. В типовых конфигурациях (Управление торговлей, Розница, Комплексная автоматизация, ERP) механизм штрихкодирования уже встроен: код хранится в регистре сведений «Штрихкоды номенклатуры», а печать выполняется через специальную компоненту.
Сгенерировать штрихкод можно тремя способами: массово из списка номенклатуры штатной обработкой, вручную в карточке товара и программно — кодом на встроенном языке. Выбор зависит от задачи: разовая маркировка остатков, постоянная работа склада или доработка конфигурации под нестандартный процесс.
Ниже разобраны все три сценария с конкретными действиями, требованиями к форматам кодов и способами проверки результата.
Какие форматы штрихкодов поддерживает 1С
Прежде чем генерировать код, определитесь с форматом. В типовых решениях доступны основные линейные стандарты: EAN-13, EAN-8, Code39, Code128, ITF-14, а также двумерный QR-код. Для розничной торговли чаще всего используют EAN-13 — его понимают все сканеры и кассы.
Важно разделять внешние и внутренние коды. Внешний штрихкод — это код производителя, который уже напечатан на упаковке; его нужно просто считать сканером и записать в базу. Внутренний код генерирует сама 1С для товаров без заводской маркировки: весового товара, разделённой упаковки, собственной продукции.
Внутренние коды принято формировать в диапазоне, начинающемся с цифры 2 (префикс 200–299 зарезервирован для внутреннего использования предприятия). Это гарантирует, что ваш код никогда не совпадёт с кодом производителя.
Сравнение форматов
Стандарт розницы, 13 цифр с контрольной. Подходит для штучных товаров и маркетплейсов. Ограничение — только цифры
Кодирует цифры и латиницу, подходит для внутренних артикулов и серий. Сканеры настраиваются отдельно
Короткий код для мелкой упаковки. Диапазон значений ограничен, для внутреннего учёта применяется редко
Вмещает много данных, нужен для маркировки «Честный знак» и ссылок. Для обычного учёта избыточен
Генерация штрихкода в карточке номенклатуры
Самый простой сценарий — присвоить код одному товару. Откройте справочник «Номенклатура», выберите позицию и перейдите на вкладку или по ссылке «Штрихкоды» (в УТ 11 и Рознице она находится в панели навигации карточки товара).
Нажмите «Создать». В открывшейся форме укажите упаковку (если ведётся учёт по упаковкам) и оставьте поле штрихкода пустым — при записи программа автоматически сгенерирует свободный код EAN-13 из внутреннего диапазона. Если нужен конкретный код, введите его вручную или отсканируйте сканером прямо в поле ввода.
Один товар может иметь несколько штрихкодов: например, код производителя на коробе и внутренний код для поштучной продажи. Каждая комбинация «номенклатура + характеристика + упаковка» хранится отдельной записью регистра.
- 1Откройте карточку номенклатуры и перейдите по ссылке «Штрихкоды»
- 2Нажмите «Создать» и выберите упаковку при необходимости
- 3Оставьте поле пустым для автогенерации или отсканируйте код производителя
- 4Запишите форму и проверьте, что код появился в списке
- 5Распечатайте этикетку и проверьте чтение сканером
Массовая генерация штрихкодов для списка товаров
Когда штрихкоды нужны сотням позиций, присваивать их по одному нерационально. В типовых конфигурациях есть обработка массовой генерации: в УТ 11 и ERP её можно вызвать из списка номенклатуры — выделите нужные строки, нажмите «Ещё» и найдите команду формирования штрихкодов (в некоторых версиях она доступна через печать этикеток и ценников).
Альтернативный путь — обработка «Печать этикеток и ценников». Добавьте товары в подбор, установите режим «Этикетки», и программа предложит сгенерировать штрихкоды для позиций, у которых их нет. За один проход коды присваиваются всему списку, а этикетки сразу отправляются на печать.
Перед массовой операцией убедитесь, что у товаров корректно заполнены упаковки: код генерируется на конкретную упаковку, и если базовая единица не задана, часть позиций может остаться без штрихкода.
Установка компоненты печати штрихкодов
Хранение кода и его печать — разные задачи. Чтобы штрихкод корректно рисовался на этикетке, нужна внешняя компонента «1С:Библиотека печати штрихкодов». Она входит в поставку типовых конфигураций и обычно устанавливается автоматически при первой попытке печати этикетки.
Если при печати появляется сообщение «Компонента печати штрихкодов не установлена», разрешите её установку в диалоге программы либо скачайте дистрибутив с портала 1С и установите вручную. После установки перезапустите сеанс 1С.
При работе в веб-клиенте или через тонкий клиент на сервере компонента должна быть установлена на стороне, где формируется картинка. Это частая причина ситуации, когда на одном компьютере этикетки печатаются, а на другом — нет.
Программная генерация штрихкода кодом 1С
Разработчику может понадобиться присваивать штрихкоды автоматически — например, при создании новой номенклатуры из обмена. Для этого используется запись в регистр сведений «Штрихкоды номенклатуры» и функция расчёта контрольной цифры EAN-13.
Типовой подход: взять префикс внутреннего диапазона (например, «200»), добавить порядковый номер из последовательности, дополнить до 12 цифр и рассчитать тринадцатую контрольную цифру по стандартному алгоритму EAN. Во многих конфигурациях есть готовые функции в общих модулях подсистемы штрихкодирования.
Функция КонтрольнаяЦифраEAN13(Код12)
Сумма = 0;
Для Поз = 1 По 12 Цикл
Цифра = Число(Сред(Код12, Поз, 1));
Сумма = Сумма + ?(Поз % 2 = 0, Цифра * 3, Цифра);
КонецЦикла;
Возврат (10 - Сумма % 10) % 10;
КонецФункции
// Запись штрихкода в регистр
Запись = РегистрыСведений.ШтрихкодыНоменклатуры.СоздатьМенеджерЗаписи();
Запись.Владелец = СсылкаНоменклатура;
Запись.Штрихкод = Код12 + Строка(КонтрольнаяЦифраEAN13(Код12));
Запись.Записать();Имя регистра и реквизитов отличается между конфигурациями («Владелец» или «Номенклатура», наличие полей «Упаковка» и «Характеристика»). Перед написанием кода откройте регистр в конфигураторе и сверьте состав измерений.
Проверка результата и читаемости кода
Сгенерированный код нужно проверить до печати тиража этикеток. Минимальная проверка — открыть любой документ с подбором товара, отсканировать напечатанную этикетку и убедиться, что подставилась правильная позиция. Если сканер пищит, но товар не находится, код не записан в регистр или записан с ошибкой.
Дополнительно проверьте контрольную цифру: многие онлайн-калькуляторы EAN-13 позволяют убедиться, что код математически корректен. Сканеры с включённой проверкой контрольной цифры откажутся читать код с ошибкой в последнем разряде.
Как проверить результат
Сканер считывает код, в 1С находится нужный товар
Сканер молчит или подставляется другая позиция
13-я цифра совпадает с расчётной по алгоритму EAN
Цифра не совпадает — код сгенерирован с ошибкой
Штрихкод чёткий, полосы не обрезаны, есть свободные поля по краям
Код размыт, обрезан или не помещается на этикетку
Код присвоен одной комбинации товар/упаковка
Один код числится за разными товарами
Типичные ошибки при генерации штрихкодов
Отдельная группа проблем — дубли. Если база велась долго без контроля, один код может оказаться у нескольких товаров. Перед массовой генерацией выполните поиск дублей запросом к регистру штрихкодов с группировкой по значению кода и устраните конфликты.
Часто задаваемые вопросы
Можно ли использовать штрихкод производителя вместо генерации своего?
Да, и это предпочтительный вариант: отсканируйте заводской код в карточку товара, и 1С сохранит его в регистре. Собственный код генерируют только для товаров без маркировки производителя или когда одной заводской этикетки недостаточно (например, товар продаётся и поштучно, и коробами).
Почему сканер считывает штрихкод, но 1С не находит товар?
Чаще всего код не записан в регистр «Штрихкоды номенклатуры» или записан для другой упаковки. Проверьте карточку товара. Вторая причина — настройки сканера: суффикс Enter, раскладка клавиатуры или обрезание первого символа. Считайте код в блокнот и сравните с тем, что хранится в базе.
Какой диапазон использовать для внутренних штрихкодов?
Общепринятая практика — префикс 2 (коды 200–299 зарезервированы стандартом GS1 для внутреннего применения). Например, 2000000000016, где последняя цифра — контрольная. Такие коды гарантированно не пересекутся с зарегистрированными кодами производителей.
Нужно ли регистрировать сгенерированные штрихкоды в GS1?
Внутренние коды для собственного учёта регистрировать не нужно. Регистрация в GS1 требуется, если товар выходит во внешний оборот: поставки в сети, маркетплейсы, экспорт. Тогда компания получает префикс GS1 и генерирует коды в своём зарегистрированном диапазоне.
Компонента печати не устанавливается на одном из компьютеров, что делать?
Проверьте разрядность клиента 1С и компоненты — они должны совпадать. Установите компоненту вручную из дистрибутива с портала 1С и перезапустите сеанс. При работе через веб-браузер убедитесь, что браузеру разрешена установка расширения для работы с внешними компонентами.
Можно ли сгенерировать QR-код или DataMatrix в 1С?
Да, библиотека печати штрихкодов поддерживает двумерные коды, включая QR и DataMatrix. DataMatrix потребуется для работы с маркированными товарами, но сами коды маркировки формирует система «Честный знак» — 1С лишь печатает полученный код на этикетке.
Что важно запомнить
Штрихкод в 1С генерируется из карточки номенклатуры или массово через печать этикеток; для внутренних кодов используйте диапазон 200–299 с корректной контрольной цифрой. Хранение кода и его печать — разные механизмы: для этикеток нужна компонента печати штрихкодов. Перед тиражом обязательно проверьте чтение сканером и уникальность кодов.