Отчеты и Аналитика · 10 мин
Как вывести штрих-код в отчет 1С
Как вывести штрих-код в отчет 1С: подключение компоненты печати, настройка макета, вывод EAN-13 в СКД и табличный документ. Примеры кода и типичные ошибки.
Штрих-код в отчете 1С нужен, когда печатную форму сканируют: накладные на складе, этикетки, ценники, реестры документов, бейджи участников. В типовых конфигурациях механизм уже встроен — за вывод отвечает компонента печати штрих-кодов и общий модуль работы с ними. В самописных отчетах и доработанных формах штрих-код добавляется через макет или программно.
Главное, что нужно понять сразу: платформа 1С не рисует штрих-код сама по себе. Картинку формирует внешняя компонента «1С:Библиотека печати штрих-кодов» (она входит в состав типовых конфигураций и БСП) либо сторонняя ActiveX-компонента. Если компонента не установлена или не подключена, вместо штрих-кода вы получите пустое место или ошибку.
Ниже разобраны рабочие способы: вывод через макет табличного документа, программное формирование картинки, вставка штрих-кода в отчет на СКД, а также проверка результата и типичные ошибки. Примеры ориентированы на управляемые формы и конфигурации на базе БСП, но общая логика одинакова для любых решений.
Как устроен вывод штрих-кода в 1С
Печать штрих-кодов в 1С строится на трех элементах: данные (строка, которую нужно закодировать, например EAN-13 номенклатуры), компонента, преобразующая строку в графическое изображение, и место вывода — область табличного документа или картинка в макете.
В конфигурациях на базе Библиотеки стандартных подсистем (БСП) есть общий модуль МенеджерОборудованияВызовСервера и функции формирования изображения штрих-кода, которые возвращают двоичные данные картинки. Эти данные помещают в реквизит типа «Картинка» или напрямую в рисунок табличного документа.
Тип штрих-кода задается параметром: EAN-8, EAN-13, Code39, Code128, QR-код и другие. От типа зависят допустимые символы и длина строки. Например, EAN-13 принимает только цифры строго определенной длины, а QR-код — произвольный текст.
Способ 1. Штрих-код в макете табличного документа
Самый простой вариант для печатных форм документов — вставить штрих-код прямо в макет. Откройте макет табличного документа в конфигураторе, выделите ячейку нужной области и в меню «Таблица — Рисунки» добавьте объект с типом «Штрих-код» (в новых версиях платформа поддерживает такой тип рисунка при наличии компоненты).
У рисунка задаются свойства: тип штрих-кода, значение (можно указать параметр макета, например [ШтрихКод]), ширина полос, отображение контрольного символа и подписи. Если значение задано параметром, при выводе области передайте его: Область.Параметры.ШтрихКод = "4601234567890";
Проверьте результат, сформировав печатную форму из режима предприятия. Если вместо штрих-кода пустая рамка — компонента на клиентском компьютере не установлена. Если рамка есть, но сканер не читает код — увеличьте размер рисунка или смените тип на более «читаемый» (например, Code128 вместо сжатого EAN).
Способ 2. Программное формирование картинки штрих-кода
Когда макет формируется динамически или штрих-код нужен в отчете, удобнее получить картинку кодом. В типовых конфигурациях используется вызов вида:
ПараметрыШтрихкода = Новый Структура;
ПараметрыШтрихкода.Вставить("Ширина", 200);
ПараметрыШтрихкода.Вставить("Высота", 100);
ПараметрыШтрихкода.Вставить("Штрихкод", "4601234567890");
ПараметрыШтрихкода.Вставить("ТипКода", 1); // EAN-13
ДанныеКартинки = МенеджерОборудованияВызовСервера.ПолучитьКартинкуШтрихкода(ПараметрыШтрихкода);
Точные имена методов зависят от версии БСП — в одних релизах это ПолучитьДанныеQRКода, в других — функции общего модуля работы с штрих-кодами. Откройте в конфигураторе общие модули с подсистемой «Штрихкоды» или «Оборудование» и найдите функцию, возвращающую двоичные данные картинки.
Полученные двоичные данные присваиваются рисунку табличного документа: Рисунок.Картинка = Новый Картинка(ДанныеКартинки); — либо реквизиту формы типа «Картинка» для отображения на экране.
- 1Убедитесь, что в конфигурации есть подсистема печати штрих-кодов (БСП) или установлена компонента
- 2Определите тип штрих-кода и источник данных (реквизит номенклатуры, номер документа)
- 3Добавьте рисунок штрих-кода в макет или сформируйте картинку программно
- 4Передайте значение штрих-кода при выводе области
- 5Сформируйте форму и проверьте сканером читаемость кода
Способ 3. Штрих-код в отчете на СКД
В отчетах на системе компоновки данных штрих-код выводят через пользовательское поле или через переопределение макета. Простой путь: добавить в запрос поле со значением штрих-кода (например, из регистра сведений «Штрихкоды номенклатуры»), а при формировании результата заменить текстовое значение на картинку.
Практический прием — формировать отчет в табличный документ, затем обойти ячейки колонки со штрих-кодом и подставить в них рисунки программно. Для этого результат СКД выводится через ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент, после чего документ дорабатывается в цикле.
Альтернатива без кода — вывести в отчет не графический штрих-код, а его строковое значение шрифтом штрих-кода (например, установленным в систему шрифтом EAN-13 или Code39). Такой шрифт устанавливается на компьютер, в свойствах поля макета СКД выбирается этот шрифт. Минус: для EAN-13 нужна корректная контрольная цифра, а для Code39 — обрамляющие символы «*», иначе сканер код не прочитает.
Сравнение вариантов
Подходит для печатных форм документов; не требует кода, но ограничен статичным макетом
Гибкий вариант для отчетов и динамических форм; требует доработки кода и наличия БСП или компоненты
Быстро для простых отчетов; требует установки шрифта на каждом компьютере и корректного формата строки
Проверка результата и требования к данным
Перед выводом убедитесь, что значение соответствует типу штрих-кода. Для EAN-13 строка должна содержать 12 или 13 цифр; контрольная цифра рассчитывается по стандартному алгоритму, и многие компоненты проверяют ее автоматически. Для Code39 допустимы цифры, заглавные латинские буквы и часть спецсимволов.
После формирования формы проверьте читаемость реальным сканером, а не только визуально. Распространенная ситуация: штрих-код выглядит нормально, но слишком мал — сканер его не берет. Минимальная ширина зависит от типа кода и разрешения печати; ориентируйтесь на ширину не менее 25–30 мм для EAN-13 на обычном принтере.
Также проверьте печать на целевом принтере: на термопринтере этикеток мелкий штрих-код может «плыть», поэтому размер и тип кода подбирают под конкретное оборудование.
Как проверить результат
Штрих-код виден целиком, полосы четкие
Пустая рамка или обрезанное изображение
Сканер считывает код с первого раза
Сканер молчит или читает нестабильно
Считанное значение совпадает с исходной строкой
Лишние или потерянные символы
На бумаге код читается так же, как на экране
На печати полосы размыты или слиплись
Типичные ошибки и ограничения
Чаще всего проблема — отсутствие компоненты печати штрих-кодов на компьютере, где формируется отчет. В файловом варианте компоненту нужно установить на каждое рабочее место; в клиент-серверном — формирование на сервере решает проблему централизованно.
Вторая частая ошибка — неверный формат данных: буквы в EAN-13, кириллица в Code39, отсутствие контрольной цифры. Компонента в таких случаях либо возвращает пустую картинку, либо рисует некорректный код.
Третья группа проблем — размеры. Слишком узкий рисунок, сжатие области при выводе, печать с масштабом «по ширине страницы» искажают пропорции полос. Отключайте автомасштаб для областей со штрих-кодами.
Когда обращаться к разработчику
Если отчет самописный, штрих-коды хранятся в нестандартном месте или нужна печать этикеток с обходом дублей и проверкой диапазонов — задача выходит за рамки настройки и требует доработки конфигурации. То же касается интеграции с оборудованием: печать на принтере этикеток через драйвер, пакетный вывод тысяч кодов.
Перед обращением подготовьте: пример значения штрих-кода, требуемый тип кода, макет желаемой формы и описание, откуда берутся данные. Это существенно ускорит работу.
Что важно запомнить
Штрих-код в отчете 1С формируется компонентой печати: через рисунок в макете, программно с получением картинки или шрифтом штрих-кода. Проверяйте формат данных, размер изображения и читаемость сканером, а доработки выполняйте через расширения, не меняя типовой код.
Частые вопросы
Почему вместо штрих-кода в отчете пустая рамка?
Наиболее вероятная причина — не установлена или не подключена компонента печати штрих-кодов на компьютере, где формируется отчет. Также проверьте, что значение не пустое и соответствует типу кода: при недопустимых символах компонента может вернуть пустую картинку без сообщения об ошибке.
Можно ли вывести QR-код тем же способом?
Да, механизм тот же: QR-код — один из поддерживаемых типов. В БСП для него есть отдельная функция формирования картинки, а в макете тип штрих-кода переключается на QR. QR-код допускает произвольный текст, включая кириллицу, что удобно для ссылок и реквизитов.
Как вывести штрих-коды для списка товаров одним отчетом?
Сформируйте отчет по номенклатуре с присоединением регистра сведений штрих-кодов, выведите результат в табличный документ и программно замените текстовые значения на картинки. Либо используйте типовую обработку печати этикеток и ценников, если она есть в конфигурации.
Работает ли штрих-код через веб-клиент?
Да, если картинка формируется на сервере и передается в табличный документ или реквизит формы. Ограничения возникают со шрифтами штрих-кодов: их нужно устанавливать на каждом клиенте, поэтому серверное формирование картинки надежнее.
Сканер не читает распечатанный код, хотя на экране он есть. Что делать?
Увеличьте ширину рисунка, отключите масштабирование при печати и проверьте качество печати — размытые полосы на струйном принтере частая причина. Для этикеток используйте термопринтер и подбирайте тип кода под его разрешение.