Рассмотрим ситуацию, когда необходимо реализовать формирование и вывод QR-кода на печатную форму в 1С. Зачастую разработчики полагают, что у платформы нет своих штатных механизмов для этой задачи, и начинают искать внешние компоненты, DLL-библиотеки или консольные утилиты. Однако проанализируем доступные современные методы: в большинстве случаев всё необходимое уже встроено в типовые конфигурации.
Разберем по шагам идеальный подход, который не требует покупки платных обработок. Все типовые механизмы уже реализованы в таких решениях, как УТ 11, БП 3 или ERP. Посмотрим на пример, как можно позаимствовать этот функционал для своей конфигурации.
ОбщийМакет.КомпонентаПечатиQRКода.Проанализируем пример кода, который позволит нам сгенерировать штрихкод из произвольной строки:
Если ПодключитьВнешнююКомпоненту("ОбщийМакет.КомпонентаПечатиQRКода", "QR") Тогда
QRCodeGenerator = Новый("AddIn.QR.QRCodeExtension");
Иначе
Возврат;
КонецЕсли;
QRСтрока = "Ваша текстовая строка для кодирования";
ДанныеQRКода = QRCodeGenerator(QRСтрока, 0, 190);
Если НЕ ДанныеQRКода = Неопределено Тогда
КартинкаQRКода = Новый Картинка(ДанныеQRКода);
ОбластьМакета.Рисунки.QRКод.Картинка = КартинкаQRКода;
КонецЕсли;
Рассмотрим еще один мощный вариант — использование готовых вызовов БСП. Если ваша конфигурация поддерживает современные стандарты библиотеки, достаточно обратиться к менеджеру оборудования или специализированному общему модулю.
Посмотрим на пример вызова генерации. Вы можете использовать метод МенеджерОборудованияВызовСервера.ПолучитьКартинкуШтрихкода, передав ему нужные параметры. Либо вызовем на сервере напрямую функцию ГенерацияШтрихкода.ДанныеQRКода, указав текст, уровень коррекции и размер.
В ответ 1С вернет двоичные данные, из которых можно создать картинку для помещения в табличный документ или на управляемую форму. Этот способ полностью избавляет от необходимости вручную подключать макеты.
Разберем важный момент: если QR-код в счете или квитанции формируется для оплаты услуг физическими лицами, он должен строго соответствовать национальному стандарту ГОСТ Р 56042-2014.
Проанализируем ситуацию с Системой быстрых платежей (СБП). В новых релизах появился функционал разделения QR-кодов. Программа позволяет пользователю выбирать, какой именно код вывести на печать: классический банковский по ГОСТу или специальный динамический код для мгновенной оплаты через СБП.
Выясним причину, по которой нам могут понадобиться нестандартные подходы: например, если мы работаем в очень старой нетиповой конфигурации без поддержки БСП. Рассмотрим два дополнительных решения:
Таким образом, мы выяснили, что для генерации QR-кодов в 1С существует множество надежных инструментов, и в большинстве случаев оптимально использовать штатные объекты типовых конфигураций или готовый функционал БСП.