Размещение штрихкода на печатных формах документов — востребованная задача, которая позволяет автоматизировать учет и ускорить процессы обработки документов. В 1С:Бухгалтерии для этих целей не требуется использование сторонних компонентов, так как разработчики предусмотрели мощный встроенный инструмент — Библиотеку стандартных подсистем (БСП).
Для решения поставленной задачи нам необходимо задействовать существующие механизмы конфигурации. В 1С:Бухгалтерии уже присутствует общий модуль ГенерацияШтрихкода. Этот модуль содержит функции, позволяющие преобразовывать строковые данные в графическое представление штрихкода.
Рассмотрим основной принцип работы:
ДанныеQRКода (или аналогичные функции для линейных штрихкодов) принимает на вход строку, уровень коррекции и параметры размера.QR-код или EAN-13).УПД.Чтобы изменения прошли корректно и были устойчивы к обновлениям системы, воспользуемся механизмом внешних печатных форм. Разберем шаги внедрения:
Шаг 1: Подготовка макета
Откройте макет внешней печатной формы. Нам необходимо выделить область, в которой будет отображаться штрихкод. В этой области нужно добавить элемент типа Рисунок. Дайте этому рисунку понятное имя, например, РисунокШтрихкод, чтобы мы могли обращаться к нему из программного кода.
Шаг 2: Вызов функции генерации
В процедуре печати, которая находится в модуле менеджера объекта или внешней обработки, мы формируем строку данных для штрихкода. Затем мы вызываем функцию БСП для получения картинки. Пример логики вызова представлен ниже:
// Пример формирования данных для штрихкода
ПараметрыШтрихкода = Новый Структура;
ПараметрыШтрихкода.Вставить("Штрихкод", "ВашиДанныеДляКодирования");
ПараметрыШтрихкода.Вставить("ТипКода", 16); // Например, QR-код
// Вызов функции генерации из общего модуля
РезультатКартинка = ГенерацияШтрихкода.ПолучитьКартинку(ПараметрыШтрихкода);
Шаг 3: Вывод на форму
Полученную картинку необходимо поместить в созданный нами рисунок табличного документа. Это делается путем обращения к объекту области макета и присвоения ему свойства Картинка.
// Получаем область макета
ОбластьМакета = Макет.ПолучитьОбласть("ОбластьШтрихкода");
// Передаем картинку в рисунок
ОбластьМакета.Рисунки.РисунокШтрихкод.Картинка = РезультатКартинка;
// Выводим область в результирующий документ
ТабличныйДокумент.Вывести(ОбластьМакета);
При работе с функционалом генерации штрихкодов учитывайте следующие моменты:
Внешним печатным формам или Расширениям конфигурации. Изменение типового макета УПД приведет к тому, что при очередном обновлении 1С ваши правки могут быть затерты или вызовут ошибки совместимости.ДанныеQRКода и аналогичные функции позволяют гибко настраивать тип кода. Если вам нужен другой тип (например, DataMatrix), внимательно изучите параметры, принимаемые функцией, и значение параметра ТипКода.Счет-заказ в текущей конфигурации. Там часто реализован пример вывода QR-кода, который можно взять за эталон при разработке формы для УПД.Таким образом, внедрение штрихкодирования сводится к правильному обращению к методам БСП и корректному размещению картинки в макете печатной формы. Это стандартная задача, которая отлично решается при грамотном использовании объектной модели 1С:Бухгалтерии.