Размещение штрихкода на печатной форме документа — это отличный способ автоматизировать поиск бумажных документов, упростить складской учет и ускорить процесс обработки входящей первичной документации. В этой статье мы подробно разберем, как реализовать генерацию штрихкода для документа УПД, используя стандартные механизмы 1С.
Прежде чем приступать к программной реализации, определимся с тем, что именно мы будем «зашивать» в штрихкод. Для целей поиска документа в базе данных важно, чтобы строка была уникальной. Рекомендуем формировать строку из наиболее значимых реквизитов документа или использовать номер штрихкода вместо артикула.
Разберем пример формирования строки данных:
ШтрихКодДокумента = СсылкаНомерДок + \";\" + СсылкаДатаДок + \";\" +
СокрЛП(Ссылка.Контрагент.Код) + \";\" + СокрЛП(Ссылка.Итог(\"Сумма\")) +
\";\" + СокрЛП(Ссылка.Итог(\"НДС\"));
Совет: Если вы планируете искать документы сканером, старайтесь делать код лаконичным. Опытные разработчики рекомендуют использовать структуру: 2 знака — код организации, 2 знака — год, остальное — номер документа. Это позволяет значительно ускорить поиск по базе данных с помощью сканера штрихкодов, также возможен вывод реквизитов договора в QR код.
Для создания графического изображения штрихкода в 1С используются возможности МенеджерОборудованияВызовСервера. Нам потребуется функция, которая преобразует подготовленную строку в картинку, готовую для вставки в табличный документ.
Рассмотрим пример функции, которую можно использовать в модуле менеджера или в расширении документа:
Функция СформироватьШтрихкодПечатнойФормы(XMLШтрихКода, Рисунок)
УстановитьПривилегированныйРежим(Истина);
Эталон = Обработки.ПечатьЭтикетокИЦенников.ПолучитьМакет(\"Эталон\");
УстановитьПривилегированныйРежим(Ложь);
КоличествоМиллиметровВПикселеВысота = Эталон.Рисунки.Квадрат100Пикселей.Высота / 200;
КоличествоМиллиметровВПикселеШирина = Эталон.Рисунки.Квадрат100Пикселей.Ширина / 200;
ПараметрыШтрихкода = Новый Структура;
ПараметрыШтрихкода.Вставить(\"Ширина\", Окр(Рисунок.Ширина / КоличествоМиллиметровВПикселеШирина));
ПараметрыШтрихкода.Вставить(\"Высота\", Окр(Рисунок.Высота / КоличествоМиллиметровВПикселеВысота));
ПараметрыШтрихкода.Вставить(\"ТипКода\", 16); // 16 соответствует QR-коду
ПараметрыШтрихкода.Вставить(\"ОтображатьТекст\", Истина);
ПараметрыШтрихкода.Вставить(\"РазмерШрифта\", 16);
ПараметрыШтрихкода.Вставить(\"УголПоворота\", Число(0));
ПараметрыШтрихкода.Вставить(\"Штрихкод\", XMLШтрихКода);
ПараметрыШтрихкода.Вставить(\"ПрозрачныйФон\", Истина);
ПараметрыШтрихкода.Вставить(\"УровеньКоррекцииQR\", 0);
Возврат МенеджерОборудованияВызовСервера.ПолучитьКартинкуШтрихкода(ПараметрыШтрихкода);
КонецФункции
Теперь, когда у нас есть механизм формирования картинки, разберем шаги по ее внедрению в макет печатной формы:
Картинка (вам может пригодиться пример внешней печатной формы с изменением макета).РисунокQR.
ОбластьМакета.Рисунки.РисунокQR.Картинка = СформироватьШтрихкодПечатнойФормы(ШтрихКодДокумента, ОбластьМакета.Рисунки.РисунокQR);
При работе со штрихкодами в 1С:Бухгалтерии 3.0 важно учитывать несколько технических аспектов:
16 (QR-код), так как он позволяет закодировать больше данных, чем классический EAN-13. Если вам нужно просто закодировать внутренний ID документа, можете использовать EAN-13, но помните об ограничениях по длине строки.Подключаемое оборудование). Рекомендуем настроить Префикс и Суффикс, чтобы система могла отличить поток данных со сканера от обычного ручного ввода с клавиатуры.Таким образом, мы разобрали полный цикл создания штрихкода: от подготовки данных до вставки графического объекта в макет. Этот метод позволит вам легко доработать типовые печатные формы под специфические бизнес-задачи вашего предприятия.