Добавление штрихкодов в счета 1С:Предприятие — задача, с которой сталкиваются компании, работающие с маркированными товарами, оптовыми поставками или автоматизированными складскими системами. Без корректно настроенного вывода штрихкодов на печатные формы документы теряют юридическую силу для некоторых категорий товаров (например, лекарств, обуви или табачной продукции), а сотрудники тратят время на ручное проставление кодов в Excel или графических редакторах.

В этой статье разберём три основных способа добавления штрихкодов в счета 1С — от ручного ввода до полной автоматизации через обработки. Особое внимание уделим настройке печатных форм (включая макеты МХЛ и ТабличныйДокумент), интеграции со сканерами штрихкодов и решению типичных ошибок, когда коды не отображаются или печатаются искажёнными. Все инструкции актуальны для последних релизов 1С:Управление Торговлей 11, ERP 2.5, Комплексная Автоматизация 2.4 и Бухгалтерия 3.0.

Если вы работаете с маркированными товарами (Честный ЗНАК, ЕГАИС), в конце статьи найдёте отдельный раздел с нюансами вывода DataMatrix и GS1-кодов в счетах для госорганов.

1. Подготовка справочников: где в 1С хранятся штрихкоды?

Прежде чем добавлять штрихкоды в счета, убедитесь, что они корректно занесены в базу. В 1С штрихкоды хранятся в трёх ключевых местах:

  • 📦 Справочник «Номенклатура» — основное хранилище. Здесь для каждой позиции можно указать один или несколько штрихкодов (вкладка Штрихкоды или реквизит Артикул, если он совпадает со штрихкодом).
  • 🏷️ Справочник «Штрихкоды» — отдельный регистр, где хранятся все коды системы. Ссылка на него есть в меню Справочники → Торговля → Штрихкоды.
  • 📄 Документы поступления — если штрихкоды присваиваются при приёмке товара, они могут дублироваться в табличных частях документов Поступление товаров или Инвентаризация.

Чтобы проверить наличие штрихкодов:

  1. Откройте справочник Номенклатура (Справочники → Торговля → Номенклатура).
  2. Выберите нужную позицию и перейдите на вкладку Штрихкоды (в некоторых конфигурациях она может называться Дополнительно).
  3. Если вкладки нет — значит, штрихкоды хранятся в отдельном справочнике. Используйте поиск по коду товара в Справочники → Штрихкоды.
💡

Если штрихкодов в базе нет, их можно загрузить пакетно через Обмен данными → Импорт из Excel или с помощью обработки "Загрузка штрихкодов из файла" (доступна в 1С:УТ и ERP).

Важно: В конфигурациях 1С:Розница штрихкоды могут автоматически генерироваться при создании новой номенклатуры (настройка в Администрирование → Настройки программы → Торговля). Если этот флажок включён, проверьте, не дублируются ли коды для разных позиций.

2. Способ 1: Ручной ввод штрихкода в печатную форму счета

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

Инструкция:

  1. Откройте счет на редактирование (Продажи → Счета покупателям, выберите документ и нажмите Печать → Настроить форму).
  2. В окне Настройка печатной формы перейдите на вкладку Макет.
  3. Найдите таблицу с перечнем товаров (обычно это область с заголовками , Товар, Количество).
  4. Добавьте новый столбец правее Цена или Сумма. Для этого кликните правой кнопкой по заголовку таблицы и выберите Добавить колонку.
  5. В свойствах новой колонки укажите:
    • 📌 Имя: Штрихкод
    • 📌 Заголовок: Штрихкод (или Артикул, если используете его как код)
    • 📌 Источник данных: выберите поле Штрихкод из табличной части документа (если его нет — см. раздел 3).
  6. Сохраните макет и обновите печатную форму.
  7. Если штрихкод не отображается:

    • ❌ Проверьте, заполнено ли поле Штрихкод в табличной части счета (вкладка Товары).
    • ❌ Убедитесь, что в макете указан правильный Источник данных (иногда требуется путь вида ТабличнаяЧастьТовары.Штрихкод).
    • ❌ Если штрихкод хранится в справочнике Номенклатура, а не в документе, используйте выражение вида Товары.Номенклатура.Штрихкод.

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

3. Способ 2: Автоматическое заполнение штрихкодов через обработку

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

Вариант А: Настройка автозаполнения без программирования

В 1С:УТ 11 и ERP 2 есть встроенная возможность автоматического заполнения штрихкодов:

  1. Откройте Администрирование → Настройки программы → Торговля → Штрихкоды.
  2. Установите флажок Автоматически заполнять штрихкоды в документах.
  3. В настройках счета (Продажи → Настройка счетов) на вкладке Печатные формы добавьте реквизит Штрихкод в список выводимых полей.

Вариант Б: Обработка для массового заполнения

Если автозаполнение не работает, используйте внешнюю обработку. Скачайте её из каталога 1С-Отчетность (поиск по запросу "Заполнение штрихкодов в документах") или создайте свою:

Процедура ЗаполнитьШтрихкодыНаОснованииНоменклатуры(Документ)

Для Каждого СтрокаТоваров Из Документ.Товары Цикл

Если НЕ ЗначениеЗаполнено(СтрокаТоваров.Штрихкод) Тогда

Штрихкод = СтрокаТоваров.Номенклатура.Штрихкод;

Если ЗначениеЗаполнено(Штрихкод) Тогда

СтрокаТоваров.Штрихкод = Штрихкод;

КонецЕсли;

КонецЕсли;

КонецЦикла;

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

Чтобы применить обработку:

  1. Сохраните код в файле с расширением .epf.
  2. В 1С откройте Файл → Открыть и выберите созданный файл.
  3. Запустите обработку для нужного счета.
Что делать, если обработка не находит штрихкоды?

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

1. Права доступа: у пользователя должны быть права на чтение справочника Штрихкоды.

2. Связь с номенклатурой: в справочнике Штрихкоды должно быть указано, к какой номенклатуре относится код (поле Номенклатура).

3. Тип штрихкода: некоторые обработки работают только с EAN-13 или Code 128. Если у вас DataMatrix, потребуется доработка.

4. Способ 3: Вывод штрихкода как штрихкода (с генерацией графического изображения)

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

Шаг 1: Установка шрифта для штрихкодов

Скачайте и установите на компьютер шрифт для генерации штрихкодов (например, Free 3 of 9 или IDAutomationHC39M). Затем:

  1. Откройте макет печатной формы счета (Печать → Настроить форму → Макет).
  2. Добавьте новый текстовый элемент в строку с товаром.
  3. В свойствах элемента укажите:
    • 📌 Шрифт: выберите установленный шрифт штрихкода (например, IDAutomationHC39M).
    • 📌 Текст: введите выражение " + Строка(Товары.Штрихкод) + "" (звёздочки обязательны для Code 39).
  4. Отрегулируйте размер шрифта (обычно 10-12 пт) и ширину колонки.
  5. Шаг 2: Альтернатива — внешняя компонента

    Если шрифты не подходят (например, для DataMatrix или QR), используйте внешнюю компоненту:

    • 🖥️ 1C:Barcode — официальное решение от 1С (платно, интегрируется через Дополнительные отчёты и обработки).
    • 🖥️ BarcodeLib — бесплатная библиотека для генерации штрихкодов (требует регистрации в Администрирование → Внешние компоненты).

    Пример кода для генерации штрихкода через BarcodeLib:

    Баркод = Новый BarcodeLib;
    

    Картинка = Баркод.GenerateBarcode(Товары.Штрихкод, "EAN13", 200, 100);

    ЭлементФормы.Картинка = Картинка;

    EAN-13 (стандартный товарный)|Code 128 (логистика)|DataMatrix (маркировка)|QR-код (доп. информация)|Другой-->

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

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

    Проблема Возможная причина Решение
    Штрихкод не выводится в печатной форме Поле не добавлено в макет или неверный источник данных Проверьте путь к реквизиту в настройках колонки (должен быть Товары.Штрихкод или Товары.Номенклатура.Штрихкод)
    Штрихкод печатается как текст, а не как графический код Не установлен шрифт штрихкода или неверный формат Установите шрифт (например, IDAutomationHC39M) и добавьте звёздочки в начале и конце кода ("123456789012")
    В счет попадает не тот штрихкод У номенклатуры несколько штрихкодов, выбирается не основной В обработке автозаполнения добавьте фильтр по типу кода (например, ТипШтрихкода = "EAN13")
    Штрихкод обрезается при печати Недостаточная ширина колонки или маленький размер шрифта Увеличьте ширину колонки в макете до 4-5 см и установите размер шрифта 10-12 пт
    При сканировании штрихкод не распознаётся Неверный формат кода или низкое качество печати Проверьте соответствие формата (например, EAN-13 должен содержать 13 цифр). Используйте лазерный принтер для печати
    💡

    Если штрихкод не сканируется, проверьте его контрольную сумму. Для EAN-13 последняя цифра рассчитывается по алгоритму. Онлайн-калькуляторы контрольных сумм: gs1.org или barcode.tec-it.com.

    Внимание! Если вы работаете с маркированными товарами (лекарства, обувь, табак), обычный штрихкод EAN-13 может не подойти. Для Честного ЗНАКа требуется DataMatrix или GS1 DataMatrix, а для ЕГАИСPDF417. Эти форматы не поддерживаются стандартными шрифтами 1С и требуют внешних компонент (например, 1C:Barcode Pro).

    6. Особенности для маркированных товаров (Честный ЗНАК, ЕГАИС)

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

    • 🏷️ DataMatrix — двумерный код, содержащий GTIN, серию и номер.
    • 📄 GS1-коды — для логистических единиц (коробов, паллет).
    • 🔢 Коды утилизационного сбора — для техники и электроники.

Чтобы вывести эти коды в счете:

  1. Убедитесь, что в справочнике Номенклатура заполнены поля:
    • 📌 Код маркировки (DataMatrix)
    • 📌 GTIN (глобальный номер торговой единицы)
    • 📌 Серийный номер (для серийных товаров)
  • В макете печатной формы добавьте колонку для DataMatrix и используйте внешнюю компоненту для генерации кода (например, 1C:Barcode Pro или Atol Barcode).
  • Для Честного ЗНАКа в счет необходимо добавить блок с реквизитами маркировки:
    // Пример вывода данных маркировки в печатной форме
    

    ТекстДокумента.ВывестиСекцию("Маркировка/Заголовок");

    ТекстДокумента.ВывестиСтроку("GTIN: " + Товары.Номенклатура.GTIN);

    ТекстДокумента.ВывестиСтроку("Серийный номер: " + Товары.СерийныйНомер);

    ТекстДокумента.ВывестиСтроку("Код DataMatrix: " + Товары.Номенклатура.КодМаркировки);

    ТекстДокумента.ВывестиСекцию("Маркировка/Разделитель");

  • 💡

    Для проверки корректности DataMatrix используйте мобильное приложение "Честный ЗНАК" (доступно для iOS и Android). Оно считывает код и показывает расшифрованные данные.

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

    7. Автоматизация: интеграция со сканерами и оборудованием

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

    Инструкция для подключения сканера:

    1. Установите драйвер сканера (например, Zebra, Honeywell или Datalogic).
    2. В 1С откройте Администрирование → Подключаемое оборудование.
    3. Добавьте новое устройство типа Сканер штрихкода и укажите COM-порт или USB-HID (в зависимости от модели).
    4. В настройках счета включите опцию Автозаполнение по штрихкоду (вкладка Дополнительно).

    Для работы с ТСД (например, Atlas или CipherLab):

    • 📡 Настройте обмен данными через 1С:Мобильная платформа или 1С:ТСД+.
    • 📡 Создайте обработку загрузки данных из ТСД в документы (пример кода есть в ИТС).
    • 📡 Проверьте, что в настройках ТСД указан формат штрихкода, совместимый с 1С (обычно EAN-13 или Code 128).
    • Пример кода для обработки данных со сканера:

      Процедура ОбработатьШтрихкод(Штрихкод)
      

      Если Номенклатура = Справочники.Номенклатура.НайтиПоШтрихкоду(Штрихкод) Тогда

      НоваяСтрока = Документ.Товары.Добавить();

      НоваяСтрока.Номенклатура = Номенклатура;

      НоваяСтрока.Штрихкод = Штрихкод;

      НоваяСтрока.Количество = 1;

      Иначе

      Сообщить("Товар с штрихкодом " + Штрихкод + " не найден!");

      КонецЕсли;

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

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

      Можно ли в 1С сгенерировать штрихкод автоматически, если его нет в базе?

      Да, в 1С:УТ и ERP есть встроенная функция генерации штрихкодов. Для этого:

      1. Откройте справочник Номенклатура.
      2. Выберите товар и нажмите Ещё → Сгенерировать штрихкод.
      3. Укажите префикс (например, 20 для внутренних кодов) и количество знаков.

    Для массовой генерации используйте обработку "Генерация штрихкодов для номенклатуры" из каталога 1С-Отчетность.

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

    Если штрихкод записан в дополнительном реквизите (например, ДопШтрихкод), в макете печатной формы используйте выражение:

    Товары.Номенклатура.ДополнительныеРеквизиты.ДопШтрихкод

    Убедитесь, что реквизит добавлен в план видов характеристик ДополнительныеРеквизитыИСведения.

    Почему при печати счета штрихкод отображается как набор символов, а не как код?

    Это происходит, если:

    • 🔤 Не установлен шрифт штрихкода (например, Free 3 of 9).
    • 🔤 Неверный формат кода (например, для Code 39 обязательны звёздочки в начале и конце: "123456").
    • 🔤 Штрихкод выводится как текст, а не как графический элемент.
    • Решение: установите шрифт, проверьте формат и настройте макет как описано в разделе 4.

    Как добавить штрихкод в счет для 1С:Бухгалтерия 3.0?

    В 1С:Бухгалтерия нет справочника Штрихкоды, но можно:

    1. Добавить реквизит Штрихкод в справочник Номенклатура (Администрирование → Печатные формы → Настройка номенклатуры).
    2. В макете счета создать колонку с источником данных Товары.Номенклатура.Штрихкод.
    3. Для генерации графического кода использовать внешнюю обработку (например, "Печать штрихкодов для БП 3.0" из каталога 1С-Отчетность).
    Нужно ли выводить штрихкоды в счетах для юридических лиц?

    Законодательство не обязывает указывать штрихкоды в счетах для юрлиц, кроме случаев:

    • 📜 Товар подлежит обязательной маркировке (лекарства, обувь, табак — см. Честный ЗНАК).
    • 📜 В договоре с покупателем прописано требование о выводе штрихкодов.
    • 📜 Счет используется для таможенного оформления (требуется GTIN).

    Для физлиц (розница) штрихкоды в чеках обязательны согласно 54-ФЗ.