QR-код в счет на оплату. Альфа-авто 5.1
Клиент попросил в счете на оплату выводить QR-код, по которому клиент мог бы легко оплатить этот счет.
Честно говоря, я был немного не в теме, какими инструментами выводиться QR-код и в каком формате.
Поэтому прочитал статью на Инфостарте по добавлению QR-код в УТ. Но она касалась общей методики добавления таких кодов, а не именно кодов для оплаты.
Поэтому прочитал еще и другую статью на Инфостарте по непосредственно печати счета с QR-кодом с платежными реквизитами из Альфа-авто.
Я не стал скачивать эту обработку за 3см, потому что там написали, что она не все платежные реквизиты выводит в QR-код. Там я почерпнул, что за основу можно взять БП3.
На самом деле все еще проще.
Платежный QR-код — это просто строка вида:
ST00012|Name=Индивидуальный Предприниматель Иванов Иван Иванович|PersonalAcc=408*****************|BankName=Сбербанк России ПАО|BIC=044******|CorrespAcc=3010****************|Sum=10899000|Purpose=Оплата по счету № МЛ00000168 от 13.07.2021. Сумма 108990-00. Без налога (НДС).
Её можно сформировать и самостоятельно, без каких-либо сложных библиотек и потом подставить в QR-код вместо гиперссылки.
Но я не знал об этом заранее, поэтому потянул почти всю логику из БП3. Можете сделать проще.
Я добавил в конфигурацию модуль _QRКод, он собран из различных источников:
Из модуля УправлениеПечатьюРФ копируем все процедуры, основная это ФорматнаяСтрокаУФЭБС. При этом также нужно добавить другие процедуры, в т.ч. из других модулей.
Функцию QRКодРеквизитыПлатежа копирую из модуля ПечатьТорговыхДокументов, но не всю, а только для получения QR строки.
Также в модуле присутствует блок процедур из статьи по добавлению QR в УТ.
Компоненту перенес через внешнюю обработку из общего макета БП3 в общий макет Альфа-авто:
Для начала вывел ссылку на mail.ru:
//вывод образца заполнения платёжного поручения ОбластьМакета = Макет.ПолучитьОбласть("ЗаголовокСчета"); ... //Осипов QRККод 2021-07-13 +++ ТекстСсылки = "http://mail.ru"; //Ваша ссылка, можно передавать все что хотите _QRКод.ВывестиQRКод(ТекстСсылки ,ОбластьМакета); //Осипов QRККод 2021-07-13 +++ ТабДокумент.Вывести(ОбластьМакета);
Всё работает. По QR переходит на mail.ru:
Далее написал процедуру заполнения параметров QR-строки оплаты по документу:
//вывод образца заполнения платёжного поручения ОбластьМакета = Макет.ПолучитьОбласть("ЗаголовокСчета"); ... //Осипов QRККод 2021-07-13 +++ QRСтрока = _QRКод.QRСтрокаСчетаНаОплату(ЭтотОбъект.Ссылка); //"http://mail.ru"; //Ваша ссылка, можно передавать все что хотите _QRКод.ВывестиQRКод(QRСтрока, ОбластьМакета); //Осипов QRККод 2021-07-13 +++ ТабДокумент.Вывести(ОбластьМакета);
Проверить QR можно, например, на сайте проверки QR Сбербанка.
У меня возникла некторая проблема, т.к. в 1С под пользователем стояла защита на вывод табличных документов, в итоге я не мог существенно увеличить QR-код, чтобы со скриншота экрана он нормально распознавался.
Поэтому пришлось печатать на PDF-принтер, открывать PDF файл, масштабировать его и уже с увеличенной в размере копии делать скриншот и распознавать его.
Забавный момент был в том, что вместо номера счета я подставлял сначала его наименование, в результате чего валидатор от Сбербанка ругался на некорректный формат.
Среда: Альфа-Авто: Автосалон+Автосервис+Автозапчасти ПРОФ, редакция 5.1 (5.1.20.05)
Объем факт: 2 час.
гениально, и монеты на инфостарте в сохранности!
Да, там целых 3 монеты просили.
Нету кучи функций, есть неполное описание.. причём со ссылкой в описании на модуля которых нет
да, это разработка для типовых. Во всех БСП эти функции есть. Если же вы пишите нетленку, скопируйте их из типовых.
Добрый день,
у нас конфигурация Альфа-Авто: Автосалон+Автосервис+Автозапчасти ПРОФ, редакция 5.1 (5.1.42.04)
возникла необходимость оплаты по QR коду, у вас на сайте прочитала, что есть подобная разработка.
Это внешняя печатная форма?
Я в АА5 вставлял в счет QR-код, чтобы клиент мог оплачивать счет через этот QR.
Т.е. когда он сканирует QR из счета в своей банковской программе, у него заполняются реквизиты платежа.
Нет, я правил прямо в коде. Потому что не предполагалось обновление АА5