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

Эта статья охватывает все этапы — от выбора принтера и настройки 1С:Управление торговлей 11, 1С:ERP или 1С:Розница 2.4 до программной генерации штрих-кодов через встроенный язык. Мы разберем типичные ошибки, оптимизацию для разных форматов (EAN-13, Code 128, DataMatrix) и автоматизацию печати при проведении документов.

Особое внимание уделим двум ключевым сценариям: печать на термотрансферные принтеры (например, Zebra или TSC) и вывод на обычные лазерные принтеры через шаблоны .mxl. Также рассмотрим, как интегрировать печать штрих-кодов с мобильными терминалами сбора данных (ТСД) и избежать распространенных проблем с кодировками.

Если вы работаете с маркировкой товаров (Честный ЗНАК), в конце статьи найдете отдельный раздел с нюансами печати кодов DataMatrix для обязательной маркировки (лекарства, обувь, табак и др.).

1. Выбор оборудования для печати штрих-кодов

Перед настройкой определитесь с принтером. От его типа зависит метод интеграции и формат шаблонов этикеток. Основные варианты:

  • 🖨️ Термотрансферные принтеры (Zebra ZD420, TSC TE200, Godex EZ-2300) — оптимальны для массовой печати этикеток. Поддерживают языки ZPL/EPL и прямое подключение к через драйвер или COM-порт.
  • 📄 Лазерные/струйные принтеры — подходят для печати на бумажных листах (например, ценники с штрих-кодами). Требуют шаблоны в формате .mxl или .xls.
  • 📱 Мобильные принтеры (Brother QL-800, Roland B-ST1) — используются с ТСД для печати этикеток прямо на складе.

Для 1С:Розница 2.4 и УТ 11 рекомендуем принтеры с поддержкой ZPL — они обеспечивают высокую скорость печати и совместимость с большинством конфигураций. Если бюджет ограничен, можно использовать лазерные принтеры, но учтите: качество штрих-кодов будет зависеть от разрешения печати (оптимально — 600 dpi и выше).

Критические параметры при выборе:

  • 📏 Разрешение — от 203 dpi (для простых кодов) до 600 dpi (для мелких DataMatrix).
  • 🔄 Скорость печати — для складов с высоким документооборотом нужны модели от 150 мм/с.
  • 🔌 ИнтерфейсыUSB, Ethernet или Wi-Fi (для сетевых принтеров).
⚠️ Внимание: Принтеры с интерфейсом LPT (параллельный порт) не поддерживаются современными версиями и Windows. Если у вас старое оборудование, потребуется переходник на USB или замена принтера.
📊 Какой принтер вы используете для печати штрих-кодов?
Термотрансферный (Zebra, TSC)
Лазерный/струйный
Мобильный (Brother, Roland)
Пока не выбрал

2. Настройка 1С для печати штрих-кодов

Стандартные конфигурации (УТ 11, ERP 2, Розница 2.4) уже содержат механизмы для работы со штрих-кодами, но их нужно активировать и настроить. Основные шаги:

2.1. Включение функционала штрих-кодирования

Перейдите в Администрирование → Настройки программы → Торговля и убедитесь, что включены опции:

  • Использовать штрих-коды номенклатуры
  • Печать штрих-кодов на документах
  • Вести учет по сериям (если нужны штрих-коды для серийных номеров)

В 1С:Розница 2.4 дополнительно проверьте настройки в Администрирование → Настройки розничной торговли → Оборудование.

2.2. Подключение принтера

Для термотрансферных принтеров:

  1. Установите драйвер принтера (скачайте с сайта производителя).
  2. В перейдите в Администрирование → Печатные формы, отчеты и обработки → Оборудование.
  3. Добавьте новый принтер, выбрав модель из списка или настроив COM-порт/IP-адрес.

Для лазерных принтеров достаточно стандартного драйвера Windows, но потребуется настроить шаблон этикетки в Конфигураторе.

⚠️ Внимание: Если принтер подключен по сети, убедитесь, что в настройках указан корректный IP-адрес и порт (9100 для большинства сетевых принтеров). Проверьте доступность принтера через Ping в командной строке.

2.3. Настройка форматов штрих-кодов

В поддерживаются следующие форматы:

ФорматОписаниеПрименение
EAN-1313-значный код, стандарт для розничной торговлиЦенники, упаковки товаров
Code 128Переменная длина, поддерживает буквы и цифрыЛогистические этикетки, паллеты
DataMatrix2D-код, высокий уровень защитыМаркировка Честный ЗНАК
QR-code2D-код для быстрого сканированияПромо-акции, ссылки на сайт

Чтобы добавить новый формат, перейдите в Справочники → Штрих-коды → Форматы штрих-кодов и создайте новый элемент. Для EAN-13 укажите длину 13 и маску проверки (например, #############).

Установлен драйвер принтера|Включен функционал штрих-кодов в 1С|Принтер добавлен в список оборудования|Выбран правильный формат штрих-кода (EAN-13, Code 128 и др.)|Проверена связь с принтером (тестовая печать)-->

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

Штрих-коды можно создавать автоматически или вручную. Рассмотрим оба варианта.

3.1. Автоматическая генерация

В 1С:УТ 11 и ERP 2 штрих-коды генерируются по алгоритму:

  1. Откройте карточку номенклатуры (Справочники → Номенклатура).
  2. Перейдите на вкладку Штрих-коды.
  3. Нажмите Сгенерировать — система создаст код по шаблону (например, 2############# для EAN-13).

Для массовой генерации используйте обработку ПечатьШтрихКодов.epf (доступна в стандартных поставках ). Загрузите ее через Файл → Открыть и выберите нужные товары.

3.2. Ручное задание штрих-кодов

Если вы используете существующие коды (например, от производителя), введите их вручную:

  1. В карточке номенклатуры на вкладке Штрих-коды нажмите Добавить.
  2. Укажите тип кода (EAN-13, Code 128 и др.).
  3. Введите значение (например, 4607001234567).
  4. Сохраните изменения.

Для импорта штрих-кодов из Excel используйте обработку ЗагрузкаШтрихКодовИзExcel.epf. Формат файла:


Артикул;Штрих-код;Тип кода

А001;4607001234567;EAN-13

А002;2001234567894;EAN-13

⚠️ Внимание: При ручном вводе EAN-13 последняя цифра должна быть контрольной. Ее можно рассчитать с помощью онлайн-калькуляторов или функции КонтрольнаяЦифраШК в .
💡

Чтобы избежать дублирования штрих-кодов, перед массовой загрузкой выполните проверку через отчет Анализ штрих-кодов (Отчеты → Торговля → Анализ штрих-кодов).

4. Печать штрих-кодов на этикетках

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

4.1. Печать через стандартные обработки

В 1С:Розница 2.4 и УТ 11 есть встроенные обработки для печати:

  1. Откройте документ (например, Поступление товаров или Инвентаризация).
  2. Выделите строки с номенклатурой, для которой нужны этикетки.
  3. Нажмите Печать → Штрих-коды и выберите шаблон.

Стандартные шаблоны:

  • 🏷️ Этикетка на товар — для ценников с названием, ценой и штрих-кодом.
  • 📦 Этикетка на короб — для логистических меток с Code 128.
  • 📄 Лист штрих-кодов — несколько кодов на одном листе (для лазерных принтеров).

4.2. Печать через внешние обработки

Если стандартные шаблоны не подходят, используйте внешние обработки:

  • 🔧 Атол: Печать этикеток — поддерживает ZPL и EPL, интеграция с ТСД.
  • 🖼️ 1С:Печать этикеток и ценников — гибкие шаблоны для лазерных принтеров.
  • 📊 BarTender — профессиональное ПО для дизайна этикеток (интегрируется с через COM).

Пример кода для печати на Zebra через ZPL:


^XA

^FO50,50^BY3^BCN,100,Y,N,N^FD4607001234567^FS

^FO50,150^A0N,50,50^FDНазвание товара^FS

^FO50,200^A0N,30,30^FD1 000 руб.^FS

^XZ

Чтобы отправить этот код на принтер из , используйте функцию:


ТекстЗPL ="^XA...^XZ";

Принтер = Новый COMОбъект("Zebra.ZPLPrinter");

Принтер.Print(ТекстЗPL);

Как печатать на нескольких принтерах одновременно?

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


Если ТекущийДокумент.Склад.Подразделение ="Склад 1" Тогда

Принтер = НайтиПринтерПоИмени("Zebra_Sklad1");

Иначе

Принтер = НайтиПринтерПоИмени("Zebra_Magazin");

КонецЕсли;

5. Автоматизация печати штрих-кодов

Ручная печать этикеток отнимает время, особенно при большом документообороте. Автоматизируйте процесс с помощью следующих методов:

5.1. Печать при проведении документов

Настройте печать штрих-кодов при сохранении документов:

  1. Откройте конфигуратор (Файл → Конфигуратор).
  2. Найдите модуль документа (например, ПоступлениеТоваровУслуг).
  3. В обработчике ПередЗаписью добавьте код для печати:
    
    

    Процедура ПередЗаписью(Отказ, РежимЗаписи)

    Если РежимЗаписи = РежимЗаписиДокумента.Проведение Тогда

    ПечатьШтрихКодов(ЭтотОбъект);

    КонецЕсли;

    КонецПроцедуры

5.2. Фоновая печать через РИБ

В распределенных базах (РИБ) настройте фоновую печать:

  • Создайте регламентное задание в Администрирование → Поддержка и обслуживание → Регламентные задания.
  • Укажите расписание (например, каждые 30 минут).
  • В обработчике задания добавьте код для печати накопившихся этикеток.

5.3. Интеграция с ТСД

Для работы с терминалами сбора данных (Атол SMART, CipherLab):

  1. Установите драйвер ТСД в (Администрирование → Оборудование).
  2. Настройте обмен данными: при сканировании штрих-кода на ТСД автоматически печатается этикетка на подключенном принтере.
⚠️ Внимание: При автоматической печати проверьте настройки лимитов в драйвере принтера. Некоторые модели (Zebra) блокируются после печати большого количества этикеток (например, >1000 за сессию). Решение — разбивать задачи на пакеты.
💡

Автоматизация печати сокращает время обработки документов на 40-60% и снижает количество ошибок при ручном вводе штрих-кодов.

6. Печать штрих-кодов для маркировки (Честный ЗНАК)

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

6.1. Подключение к Честный ЗНАК

Убедитесь, что в настроен обмен с системой маркировки:

  1. Перейдите в Администрирование → Настройки программы → Маркировка товаров.
  2. Укажите данные для подключения к Честный ЗНАК (логин, пароль, сертификат).
  3. Настройте график обмена (рекомендуется ежедневный автоматический обмен).

6.2. Печать DataMatrix

Для печати кодов маркировки:

  • 📌 Используйте шаблоны, соответствующие ГОСТ Р 56042-2014 (размер кода — не менее 10×10 мм).
  • 🔍 Включите проверку качества печати: код должен сканироваться с первого раза (класс качества A или B).
  • 📑 Для лазерных принтеров используйте бумагу с высокой плотностью (≥120 г/м²).

Пример кода для генерации DataMatrix в :


КодDataMatrix = Новый ШтрихкодDataMatrix;

КодDataMatrix.УстановитьДанные("010463001234567821uHJd8s1");

КодDataMatrix.Размер = 20; // мм

Изображение = КодDataMatrix.ПолучитьИзображение;

Для печати на Zebra используйте команду ZPL:


^XA

^FO20,20^BXN,20,200,0,0,0,~FD010463001234567821uHJd8s1^FS

^XZ

⚠️ Внимание: Коды DataMatrix для маркировки должны содержать криптографическую подпись (параметр cryptoTail). Без нее код считается недействительным. Подпись формируется системой Честный ЗНАК при регистрации товара.
💡

Перед массовой печатью маркированных кодов выполните тестовую печать на 1-2 этикетках и проверьте их через мобильное приложение Честный ЗНАК. Это поможет избежать брака всей партии.

7. Типичные ошибки и их решение

При печати штрих-кодов пользователи часто сталкиваются счными проблемами. Разберем самые распространенные и способы их устранения.

7.1. Штрих-код не сканируется

Причины и решения:

  • 🔍 Низкое качество печати — проверьте разрешение принтера (≥203 dpi) и качество тонера/ленты.
  • 📏 Неправильный размер — для EAN-13 минимальная высота — 15 мм, ширина — 37 мм.
  • 🎨 Неверный цвет — код должен быть черным на белом фоне (контраст не менее 70%).
  • 🔢 Ошибка в контрольной цифре — пересчитайте ее с помощью функции КонтрольнаяЦифраШК.

7.2. Принтер не печатает из 1С

Проверьте:

  1. Подключен ли принтер к компьютеру (проверьте USB/Ethernet).
  2. Указан ли принтер в настройках оборудования .
  3. Не блокирует ли печать антивирус или брандмауэр (добавьте исключение для 1cv8.exe).
  4. Соответствует ли формат данных ожидаемому принтером (например, ZPL для Zebra).

7.3. Медленная печать

Оптимизация:

  • ⚡ Уменьшите сложность шаблона (уберите лишние элементы дизайна).
  • 📶 Для сетевых принтеров используйте Ethernet вместо Wi-Fi.
  • 🖨️ Настройте буферизацию в драйвере принтера (включите опцию Spool print documents).
  • 📂 Разбейте большие задачи на пакеты (например, по 100 этикеток).

7.4. Ошибки при печати DataMatrix

Частые проблемы:

ОшибкаПричинаРешение
Код не читается сканеромНизкое разрешение печатиУстановите ≥300 dpi и увеличьте размер кода до 15×15 мм
Ошибка проверки подписиОтсутствует cryptoTailПолучите подпись в Честный ЗНАК и повторите печать
Искажение кодаНеправильный шаблон ZPLИспользуйте команду ^BXN вместо ^BXA
💡

90% проблем со сканированием штрих-кодов связаны с низким качеством печати или неверным форматом данных. Всегда тестируйте этикетки на реальном оборудовании перед массовой печатью.

8. Программная генерация штрих-кодов (для разработчиков)

Если стандартные механизмы не подходят, можно генерировать штрих-коды программно с помощью встроенного языка или внешних библиотек.

8.1. Генерация через встроенные объекты

В 1С 8.3 есть объект Штрихкод, который поддерживает основные форматы:


Штрихкод = Новый Штрихкод;

Штрихкод.Тип = ТипШтрихкода.EAN13;

Штрихкод.УстановитьДанные("4607001234567");

Изображение = Штрихкод.ПолучитьИзображение(200, 100); // Ширина, высота в пикселях

Изображение.Записать("C:\temp\barcode.png");

8.2. Использование внешних компонент

Для расширенных форматов (QR, PDF417) подключите библиотеки:

  • 📦 BarcodeLib — бесплатная библиотека для генерации QR, DataMatrix.
  • 🔧 ZXing — поддерживает 1D и 2D коды, интегрируется через HTTP-Сервисы.
  • 🖼️ Aspose.BarCode — платное решение с поддержкой 100+ форматов.

Пример подключения BarcodeLib:


ПутьКDLL ="C:\BarcodeLib\BarcodeLib.x86.dll";

BarcodeLib = Новый COMОбъект("BarcodeLib.Barcode");

BarcodeLib.Symbology = 16; // EAN13

BarcodeLib.Data ="4607001234567";

BarcodeLib.BarWidth = 2;

BarcodeLib.Height = 50;

BarcodeLib.SaveImage("C:\temp\ean13.bmp");

8.3. Печать через HTML/CSS

Для веб-клиента можно генерировать штрих-коды с помощью JavaScript-библиотек (например, JsBarcode):


&НаКлиенте

Процедура ПечатьШтрихКодаНаКлиенте(Штрихкод)

ВыполнитьJavaScript("JsBarcode('#barcode','" + Штрихкод +"', {format:'EAN13'});");

КонецПроцедуры

⚠️ Внимание: При использовании внешних библиотек убедитесь, что они совместимы с версией платформы . Например, BarcodeLib не работает в 1С:Предприятие 8.3.20+ без обновления.
Как интегрировать печать штрих-кодов с мобильным приложением?

Для интеграции с мобильным приложением (например, на Android) используйте REST API:

1. Разверните HTTP-Сервис в для генерации штрих-кодов.

2. В мобильном приложении отправляйте GET-запрос вида:

http://server/barcode?type=EAN13&data=4607001234567

3. Сервис возвращает изображение в формате PNG, которое можно отобразить или напечатать.

Пример кода для сервиса:


Функция ПолучитьШтрихкод(Тип, Данные) Экспорт

Штрихкод = Новый Штрихкод;

Штрихкод.Тип = ТипШтрихкода[Тип];

Штрихкод.УстановитьДанные(Данные);

Возврат Штрихкод.ПолучитьИзображение;

КонецФункции

FAQ: Частые вопросы по печати штрих-кодов в 1С

Как напечатать штрих-код на ценнике с ценой и названием товара?

Используйте стандартную обработку Печать ценников и этикеток (Отчеты → Торговля → Печать ценников). В настройках шаблона добавьте поля: