Как добавить штрихкод на печатную форму УПД в 1С:Бухгалтерии?

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия IT и автоматизация бизнеса
← На главную

Размещение штрихкода на печатной форме документа — это отличный способ автоматизировать поиск бумажных документов, упростить складской учет и ускорить процесс обработки входящей первичной документации. В этой статье мы подробно разберем, как реализовать генерацию штрихкода для документа УПД, используя стандартные механизмы 1С.

Этап 1: Подготовка данных для штрихкода

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

Разберем пример формирования строки данных:


ШтрихКодДокумента = СсылкаНомерДок + \";\" + СсылкаДатаДок + \";\" + 
СокрЛП(Ссылка.Контрагент.Код) + \";\" + СокрЛП(Ссылка.Итог(\"Сумма\")) + 
\";\" + СокрЛП(Ссылка.Итог(\"НДС\"));

Совет: Если вы планируете искать документы сканером, старайтесь делать код лаконичным. Опытные разработчики рекомендуют использовать структуру: 2 знака — код организации, 2 знака — год, остальное — номер документа. Это позволяет значительно ускорить поиск по базе данных с помощью сканера штрихкодов, также возможен вывод реквизитов договора в QR код.

Этап 2: Программная генерация штрихкода

Для создания графического изображения штрихкода в 1С используются возможности МенеджерОборудованияВызовСервера. Нам потребуется функция, которая преобразует подготовленную строку в картинку, готовую для вставки в табличный документ.

Рассмотрим пример функции, которую можно использовать в модуле менеджера или в расширении документа:


Функция СформироватьШтрихкодПечатнойФормы(XMLШтрихКода, Рисунок)
    УстановитьПривилегированныйРежим(Истина);
    Эталон = Обработки.ПечатьЭтикетокИЦенников.ПолучитьМакет(\"Эталон\");
    УстановитьПривилегированныйРежим(Ложь);
    
    КоличествоМиллиметровВПикселеВысота = Эталон.Рисунки.Квадрат100Пикселей.Высота / 200;
    КоличествоМиллиметровВПикселеШирина = Эталон.Рисунки.Квадрат100Пикселей.Ширина / 200;
    
    ПараметрыШтрихкода = Новый Структура;
    ПараметрыШтрихкода.Вставить(\"Ширина\", Окр(Рисунок.Ширина / КоличествоМиллиметровВПикселеШирина));
    ПараметрыШтрихкода.Вставить(\"Высота\", Окр(Рисунок.Высота / КоличествоМиллиметровВПикселеВысота));
    ПараметрыШтрихкода.Вставить(\"ТипКода\", 16); // 16 соответствует QR-коду
    ПараметрыШтрихкода.Вставить(\"ОтображатьТекст\", Истина);
    ПараметрыШтрихкода.Вставить(\"РазмерШрифта\", 16);
    ПараметрыШтрихкода.Вставить(\"УголПоворота\", Число(0));
    ПараметрыШтрихкода.Вставить(\"Штрихкод\", XMLШтрихКода);
    ПараметрыШтрихкода.Вставить(\"ПрозрачныйФон\", Истина);
    ПараметрыШтрихкода.Вставить(\"УровеньКоррекцииQR\", 0);
    
    Возврат МенеджерОборудованияВызовСервера.ПолучитьКартинкуШтрихкода(ПараметрыШтрихкода);
КонецФункции

Этап 3: Интеграция в печатную форму

Теперь, когда у нас есть механизм формирования картинки, разберем шаги по ее внедрению в макет печатной формы:

  1. Откройте макет вашего печатного документа (УПД) в конфигураторе.
  2. Добавьте в область макета объект типа Картинка (вам может пригодиться пример внешней печатной формы с изменением макета).
  3. В свойствах рисунка задайте ему понятное имя, например, РисунокQR.
  4. В модуле печати, при формировании печатной формы, используйте следующий вызов для заполнения рисунка:

ОбластьМакета.Рисунки.РисунокQR.Картинка = СформироватьШтрихкодПечатнойФормы(ШтрихКодДокумента, ОбластьМакета.Рисунки.РисунокQR);

Важные замечания по реализации

При работе со штрихкодами в 1С:Бухгалтерии 3.0 важно учитывать несколько технических аспектов:

Таким образом, мы разобрали полный цикл создания штрихкода: от подготовки данных до вставки графического объекта в макет. Этот метод позволит вам легко доработать типовые печатные формы под специфические бизнес-задачи вашего предприятия.

← На главную