Торговля и Склад · 9 мин
Как сгенерировать штрихкод в 1С
Как сгенерировать штрихкод в 1С: генерация EAN-13, работа с компонентой печати штрихкодов, вывод в макеты и этикетки, типичные ошибки и проверка результата.
Штрихкоды в 1С нужны для быстрой идентификации товаров на кассе, при приёмке на складе и при инвентаризации. Программа умеет генерировать штрихкоды формата EAN-13, EAN-8, Code39, Code128 и других — как автоматически при создании карточки номенклатуры, так и вручную по требованию пользователя.
Существует два разных смысла фразы «сгенерировать штрихкод». Первый — получить само числовое значение (например, присвоить товару новый EAN-13). Второй — вывести графическое изображение штрихкода на этикетку или документ для печати. Обычно нужны оба действия, и выполняются они разными инструментами.
Способ зависит от конфигурации: в «Управлении торговлей», «Рознице» и «1С:Комплексной автоматизации» механизмы встроены в типовую поставку, а в самописных решениях используется компонента печати штрихкодов из библиотеки стандартных подсистем (БСП). Ниже разобраны оба подхода.
Какие форматы штрихкодов поддерживает 1С и какой выбрать
Перед генерацией определитесь с форматом — от этого зависит, сможет ли сканер прочитать код и примет ли его торговая сеть или маркетплейс.
- EAN-13 — стандарт розничной торговли, 13 цифр, последняя — контрольная. Подходит для продажи через кассы и маркетплейсы.
- EAN-8 — сокращённый вариант для мелких товаров, где не помещается полноразмерная этикетка.
- Code39 — буквенно-цифровой код, читается почти всеми сканерами, но не принимается розничными сетями как товарный.
- Code128 — плотный буквенно-цифровой формат, удобен для внутренних складских и транспортных этикеток.
- QR-код — используется для ссылок, чеков и маркировки, но не заменяет товарный штрихкод.
Для товаров, которые пойдут в розницу, выбирайте EAN-13. Для внутреннего учёта (складские ячейки, комплекты, основные средства) достаточно Code128 или Code39 — их проще формировать из собственной нумерации без регистрации.
Генерация числового штрихкода в карточке номенклатуры
В типовых конфигурациях («Управление торговлей 11», «Розница», «Комплексная автоматизация») штрихкоды хранятся в регистре сведений «Штрихкоды номенклатуры». Сгенерировать новое значение можно прямо из карточки товара.
- 1Откройте карточку номенклатуры и перейдите на вкладку или по ссылке «Штрихкоды».
- 2Нажмите «Создать» и выберите тип штрихкода, например EAN-13.
- 3Нажмите кнопку генерации нового значения — программа подберёт свободный код с заданным префиксом и рассчитает контрольную цифру.
- 4Запишите карточку и проверьте, что штрихкод появился в списке.
- 5Просканируйте код сканером в режиме подбора товара — позиция должна найтись автоматически.
Если кнопки генерации нет, проверьте настройку префикса внутренних штрихкодов. В «Управлении торговлей» она находится в разделе настройки номенклатуры, в «Рознице» — в параметрах магазина или обработке «Правила формирования штрихкодов». Без заданного префикса автогенерация не сработает.
Массовая генерация штрихкодов для списка товаров
Когда штрихкоды нужны сразу для сотен позиций (например, при первичном заполнении базы или заведении новой коллекции), заполнять каждую карточку вручную нерационально. В типовых конфигурациях есть обработки массового присвоения.
В «Рознице» используйте обработку «Работа с штрихкодами» или «Печать этикеток и ценников»: в ней можно отобрать товары без штрихкодов и сгенерировать значения пакетно. В «Управлении торговлей» аналогичная возможность доступна через обработку печати этикеток — при формировании можно включить автоматическое создание штрихкодов для позиций, у которых их нет.
Типовой алгоритм массовой генерации: отбор номенклатуры без штрихкодов → установка префикса и типа → генерация с проверкой уникальности → запись в регистр. Перед запуском на рабочей базе выполните пробный прогон на копии или на ограниченном списке из 5–10 позиций.
Вывод изображения штрихкода на печать
Числовое значение само по себе не печатается — нужна картинка. За её построение в типовых решениях отвечает внешняя компонента «1С:Печать штрихкодов» (Barcode), которая входит в поставку платформы и подключается автоматически при первом обращении.
Для печати этикетки откройте обработку «Печать этикеток и ценников», выберите шаблон этикетки, добавьте товары и нажмите «Печать». Программа построит изображение штрихкода по значению из регистра и выведет его в макет. Если шаблона нет, создайте его в редакторе: добавьте поле типа «Штрихкод» и укажите в качестве источника данных поле со значением штрихкода.
Если вместо штрихкода выводится пустое место или ошибка «Компонента не установлена», подключите компоненту вручную. В файловой базе это происходит автоматически, в клиент-серверной — компонента устанавливается на сервер. Проверить подключение можно в тонком клиенте: при открытии печати этикеток система сама предложит установить компоненту.
Как проверить результат
Сканер мгновенно находит товар по напечатанной этикетке
Сканер пищит, но товар не находится, или код не читается вовсе
Значение проходит проверку контрольной суммы
Последняя цифра не совпадает с расчётной — код введён вручную с ошибкой
Штрихкод занимает достаточную ширину, полосы чёткие
Код сжат, полосы сливаются при печати
Генерация штрихкода программно (для разработчика)
В собственных конфигурациях и доработках штрихкод выводят через объект компоненты в макете табличного документа. В БСП для этого есть готовый модуль «МенеджерОборудования» и функции работы с штрихкодами.
ПараметрыШтрихкода = ГенерацияШтрихкода.ПараметрыГенерацииШтрихкода();
ПараметрыШтрихкода.Штрихкод = "4600682000000";
ПараметрыШтрихкода.ТипКода = ГенерацияШтрихкода.ТипКодаEAN13();
ПараметрыШтрихкода.Ширина = 50;
ПараметрыШтрихкода.Высота = 30;
Результат = ГенерацияШтрихкода.ИзображениеШтрихкода(ПараметрыШтрихкода);
Если Результат.Успех Тогда
Рисунок.Картинка = Результат.Картинка;
КонецЕсли;Для расчёта контрольной цифры EAN-13 используется стандартный алгоритм: цифры на нечётных позициях суммируются, на чётных — умножаются на 3 и тоже суммируются, контрольная цифра дополняет сумму до кратного десяти. В типовых механизмах этот расчёт выполняется автоматически при генерации.
При самостоятельной разработке не храните штрихкод в реквизите номенклатуры, если у товара может быть несколько кодов (по упаковкам, по производителям) — используйте регистр сведений с измерением «Номенклатура» и, при необходимости, «Упаковка».
Типичные ошибки и ограничения
Отдельное ограничение касается весовых товаров: их штрихкоды формируются по особой схеме (префикс + код товара + вес), и генерировать их нужно в настройках весов с печатью этикеток, а не в карточке номенклатуры. Смешение схем приводит к тому, что касса не распознаёт вес.
Что важно запомнить
Числовой штрихкод генерируется в карточке номенклатуры или массово через обработку печати этикеток, изображение строит компонента «1С:Печать штрихкодов». Для розницы используйте EAN-13 с корректной контрольной цифрой, для внутреннего учёта — Code128. Всегда проверяйте читаемость готовой этикетки сканером.
Частые вопросы
Можно ли сгенерировать штрихкод в 1С:Бухгалтерии?
В типовой «Бухгалтерии предприятия» нет полноценного механизма работы со штрихкодами номенклатуры, как в торговых конфигурациях. Штрихкод можно хранить как дополнительный реквизит, а для печати изображения подключить компоненту печати штрихкодов через внешнюю обработку или доработку.
Почему сканер не читает сгенерированный штрихкод?
Чаще всего причины три: неверная контрольная цифра при ручном вводе EAN-13, слишком маленький или размытый отпечаток, либо сканер не настроен на нужный тип кода (например, отключён Code39). Проверьте код сторонним онлайн-валидатором и настройки сканера.
Нужно ли регистрировать штрихкоды, сгенерированные в 1С?
Внутренние коды с префиксом 2 регистрировать не нужно — они действуют только внутри вашей компании. Если товар пойдёт в розничные сети или на маркетплейсы, потребуется официальный код, полученный через организацию GS1.
Как сгенерировать QR-код в 1С?
Та же компонента печати штрихкодов поддерживает двумерные коды. В шаблоне этикетки выберите тип «QR-код» и укажите строку данных. Программно это делается через тот же механизм генерации с типом кода QR.
Что делать, если один товар имеет несколько штрихкодов?
Это нормальная ситуация: например, заводской код и внутренний код для развесного товара. В регистре штрихкодов храните оба — сканер найдёт товар по любому из них. Главное, чтобы одно значение не было привязано к двум разным товарам.