Документы и Печать · 11 мин
Как добавить штрихкод в печатную форму в 1С
Как добавить штрихкод в печатную форму 1С: готовые решения, макеты, объект Barcode, работа с конфигуратором, типовые ошибки и проверка результата.
Штрихкод на печатной форме нужен для быстрой идентификации документа сканером: накладные, счета, этикетки и упаковочные листы считываются без ручного ввода номера. В 1С это решается несколькими способами — от включения типовой настройки до доработки макета в конфигураторе. Выбор зависит от того, какая у вас конфигурация (типовая или самописная), есть ли доступ к конфигуратору и какой тип штрихкода требуется.
В типовых конфигурациях на управляемых формах (УТ 11, ERP, «Бухгалтерия 3.0», «Управление нашей фирмой») часть механизмов уже встроена: например, печать этикеток со штрихкодами товаров доступна из коробки. А вот добавить штрихкод в произвольную печатную форму документа обычно требует доработки макета и модуля печати.
Ниже разобраны все рабочие варианты — от самого простого до программного, с проверкой результата и типичными ошибками.
Какой тип штрихкода вам нужен
Прежде чем менять макет, определите формат кода. От этого зависит и шрифт, и компонента генерации. Самые распространённые в учётных задачах варианты:
- EAN-13 — стандарт для товаров розничной торговли, 13 цифр с контрольным разрядом;
- Code 128 — универсальный линейный код, позволяет кодировать цифры и буквы, удобен для номеров документов;
- EAN-8 — сокращённый код для малогабаритных товаров;
- QR-код и DataMatrix — двумерные коды; DataMatrix обязателен для маркированных товаров («Честный ЗНАК»).
Для номера документа на накладной чаще всего выбирают Code 128: он компактный и принимает буквенно-цифровые значения. Для товарных этикеток — EAN-13, причём контрольная цифра должна рассчитываться корректно, иначе сканер код не прочитает.
Способ 1: типовая печать этикеток без доработок
Если задача — печатать этикетки и ценники со штрихкодами товаров, в типовых конфигурациях ничего дорабатывать не нужно. В УТ 11, ERP и «Рознице» есть обработка «Печать этикеток и ценников». Она открывается из карточки номенклатуры, документа поступления или раздела закупок.
Порядок работы: выберите товары, укажите шаблон этикетки, нажмите «Печать». Шаблон этикетки редактируется встроенным редактором: туда можно перетащить поле «Штрихкод», задать размер, добавить наименование и цену. Штрихкоды товаров предварительно должны быть заполнены в карточке номенклатуры (поле «Штрихкод») или в регистре штрихкодов.
Ограничение способа: он покрывает только этикетки и ценники. Добавить штрихкод в произвольную печатную форму документа (счёт, ТОРГ-12, акт) таким путём не получится — понадобится один из следующих вариантов.
Способ 2: шрифт штрихкода в макете
Самый простой способ доработки макета — установить на компьютер шрифт штрихкода (например, свободно распространяемые шрифты Code 128 или EAN-13) и применить его к ячейке макета, где выводится значение. Тогда обычная строка вроде номера документа отобразится полосками.
Действия: установите шрифт в Windows, откройте макет печатной формы в конфигураторе, выделите ячейку с параметром штрихкода и в свойствах укажите этот шрифт. В модуле печати убедитесь, что в параметр передаётся строка в формате, который ожидает шрифт: многие шрифты требуют стартовых и стоповых символов (например, символы «*» по краям для Code 39) или перекодировки каждого символа по таблице.
Минусы шрифтового подхода существенные: шрифт должен быть установлен на каждом компьютере, где печатают документы; при выводе в PDF или отправке по почте на машине без шрифта код превратится в обычный текст; перекодировка строки под конкретный шрифт требует аккуратной функции преобразования. Поэтому в серьёзных внедрениях предпочитают следующий способ.
Способ 3: программная генерация картинки штрихкода
Надёжный вариант — сформировать штрихкод как картинку и вставить её в табличный документ. В 1С это делается через ActiveX-компоненту «1С:Библиотека формирования штрихкодов» (Barcode.ocx), которая входит в поставку платформы и типовых конфигураций, либо через типовую функцию из общего модуля МенеджерОборудованияВызовСервера / ГенерацияШтрихкода (в БСП-конфигурациях).
Общая схема: в модуле менеджера печати создаёте компоненту, задаёте тип кода и значение, получаете картинку (двоичные данные), а затем выводите её в область макета через рисунок табличного документа.
// Пример: вывод штрихкода в табличный документ
ПараметрыШтрихкода = ГенерацияШтрихкода.ПараметрыГенерацииШтрихкода();
ПараметрыШтрихкода.Ширина = 300;
ПараметрыШтрихкода.Высота = 80;
ПараметрыШтрихкода.ТипКода = 1; // Code 128
ПараметрыШтрихкода.Штрихкод = НомерДокумента;
ПараметрыШтрихкода.ОтображатьТекст = Истина;
Результат = ГенерацияШтрихкода.ИзображениеШтрихкода(ПараметрыШтрихкода);
Если Результат.Результат Тогда
Рисунок = ОбластьМакета.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка);
Рисунок.Картинка = Новый Картинка(Результат.ДвоичныеДанные);
Рисунок.Расположить(ОбластьМакета.Область("R1C1:R5C8"));
КонецЕсли;
В макете при этом достаточно оставить пустую область нужного размера — картинка разместится поверх неё. Такой подход не зависит от шрифтов на клиентских машинах, корректно выгружается в PDF и Excel и одинаково выглядит у всех пользователей.
- 1Создайте внешнюю печатную форму (шаблон из поставки БСП) или расширение
- 2Скопируйте типовой макет документа и добавьте пустую область под штрихкод
- 3В модуле печати сформируйте картинку штрихкода через ГенерацияШтрихкода или Barcode.ocx
- 4Выведите картинку в область табличного документа
- 5Подключите форму в справочнике «Дополнительные отчеты и обработки» и проверьте печать
- 6Отсканируйте распечатанный код сканером и сверьте значение с номером документа
Где взять значение для штрихкода
Картинка — только отображение. Значение, которое кодируется, должно откуда-то браться. Типовые варианты источников:
- Номер документа — для идентификации накладных и актов сканером; обычно кодируют номер вместе с префиксом базы, чтобы исключить совпадения между филиалами;
- Регистр сведений «Штрихкоды» — для номенклатуры; в типовых конфигурациях штрихкоды товаров хранятся именно там и генерируются автоматически по кнопке в карточке;
- Уникальный идентификатор ссылки — когда номер не гарантирует уникальность; GUID кодируют в Code 128 или QR;
- Строка по шаблону — например, «документ + склад + дата» для внутренней логистики.
Учтите ограничения форматов: EAN-13 принимает только цифры и строго 13 разрядов, Code 39 — ограниченный набор символов в верхнем регистре. Если закодировать кириллицу или лишние символы, компонента либо вернёт ошибку, либо сформирует нечитаемый код.
Как выбрать подход
Проверка результата и типичные ошибки
После доработки обязательно проверьте не только внешний вид, но и читаемость кода. Распечатайте форму на реальном принтере (не только предпросмотр) — на некоторых струйных принтерах при низком качестве печати узкие штрихи сливаются, и сканер код не берёт. Проверьте чтение тем сканером, который реально используется на рабочих местах.
Как проверить результат
Значение совпадает с номером документа или штрихкодом товара
Сканер молчит или возвращает искажённую строку
Слева и справа есть свободные поля (тихая зона)
Код упирается в текст или рамку — сканер не распознаёт
Код отображается картинкой и читается с экрана
Вместо кода обычный текст — использован шрифтовой способ
Сканер принимает код без ошибки контрольной суммы
Код не читается — пересчитайте 13-й разряд
Ограничения и когда привлекать специалиста
Самостоятельно безопасно делать три вещи: пользоваться типовой печатью этикеток, редактировать шаблоны этикеток встроенным редактором и подключать готовые внешние печатные формы через «Дополнительные отчеты и обработки». Всё это не затрагивает конфигурацию и легко откатывается.
Программная доработка модуля печати, создание внешней формы с нуля и работа с расширениями требуют навыков программирования на встроенном языке 1С. Ошибка в коде печати обычно не портит данные, но может сломать печать документа для всех пользователей до исправления. Перед любыми изменениями в конфигураторе сделайте выгрузку базы (dt) — это единственная гарантия отката.
Если штрихкод нужен только для внутреннего поиска документов сканером, не обязательно внедрять сложную схему: достаточно Code 128 с номером документа и настроить в 1С обработку сканирования, которая открывает документ по этому номеру. Такая связка закрывает большинство складских сценариев без маркировки.
Частые вопросы
Можно ли добавить штрихкод в печатную форму без конфигуратора?
Да, двумя путями. Первый — типовая обработка «Печать этикеток и ценников» для товаров. Второй — подключение готовой внешней печатной формы через «Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки». Изменить же произвольный типовой макет без конфигуратора нельзя.
Почему сканер не читает штрихкод с распечатки?
Частые причины: слишком маленький размер кода, отсутствие свободных полей по бокам, низкое качество печати, неверная контрольная цифра в EAN-13 или символы, не поддерживаемые выбранным типом кода. Проверьте чтение с экрана — если с экрана читается, а с бумаги нет, проблема в печати.
Какой тип штрихкода выбрать для номера документа?
Обычно Code 128: он кодирует цифры и латиницу, компактен и поддерживается всеми сканерами. EAN-13 для этой задачи не подходит — он принимает только 13 цифр и предназначен для товаров.
Сохранится ли доработка после обновления конфигурации?
Внешние печатные формы и расширения обновление не затрагивает. Изменения, внесённые напрямую в типовой макет или модуль, будут потеряны либо вызовут конфликты при обновлении — поэтому прямая правка типовых объектов не рекомендуется.
Как вывести QR-код или DataMatrix вместо линейного штрихкода?
Тем же программным способом через картинку: в параметрах генерации указывается тип двумерного кода. Для DataMatrix маркированных товаров в типовых конфигурациях есть готовые механизмы обмена с «Честным ЗНАКом» — дорабатывать их вручную обычно не требуется.
Штрихкод-шрифт отображается у меня, а у коллеги — обычный текст. Что делать?
Шрифт установлен только на вашем компьютере. Либо установите его на все рабочие места, где печатают документы, либо перейдите на генерацию штрихкода картинкой — этот способ не зависит от локальных шрифтов и корректно работает при выгрузке в PDF.
Что важно запомнить
Для этикеток используйте типовую печать, для документов — внешнюю печатную форму с генерацией штрихкода картинкой. Не правьте типовые макеты напрямую, проверяйте читаемость кода реальным сканером и не забывайте про тихую зону и контрольную цифру.