[БСП] Выводим qr-код в печатную форму счета для оплаты в мобильном приложении банка или платежном терминале

29.06.22

Задачи пользователя - Адаптация типовых решений

Используя БСП выведем qr-код в печатную форму счета.

 

В макете добавим картинку.

 

Выбираем любую картинку, для наглядности лучше со штрих-кодом.

 

 

Имя картинки делаем QRКод

Размер картинки: Пропорционально

Линия: нет линии

 

В Модуль печатной формы добавляем две процедуры. Вызываем их перед выводом области в ТабличныйДокумент

 

 

Функция СформироватьПечатнуюФорму(СчетаНаОплату, НаименованиеПФ, ПараметрыВывода = Неопределено) Экспорт
	Результат = Новый ТабличныйДокумент;
	Макет = ПолучитьМакет("СчетНаОплату");
	ОбластьШапка			= Макет.ПолучитьОбласть("Шапка");
	ОбластьШапка.Параметры.Заполнить(ПараметрыШапки);

	РеквизитыПлатежа = РеквизитыПлатежаQRКод(ВыборкаСчетаНаОплату);
	ВывестиQRКод(РеквизитыПлатежа, СчетаНаОплату, ОбластьШапка);
	
	Результат.Вывести(ОбластьШапка);
	Возврат Результат;
КонецПроцедуры

Процедура ВывестиQRКод(РеквизитыПлатежа, СчетаНаОплату, ОбластьМакета)
	
	QRСтрока = УправлениеПечатью.ФорматнаяСтрокаУФЭБС(РеквизитыПлатежа);
	
	Если Не ПустаяСтрока(QRСтрока) Тогда
		
		ДанныеQRКода = УправлениеПечатью.ДанныеQRКода(QRСтрока, 0, 190);
		
		Если ТипЗнч(ДанныеQRКода) = Тип("ДвоичныеДанные") Тогда
			КартинкаQRКода = Новый Картинка(ДанныеQRКода);
			ОбластьМакета.Рисунки.QRКод.Картинка = КартинкаQRКода;
		Иначе
			Шаблон = Нстр("ru = 'Не удалось сформировать QR-код для документа %1.
				|Технические подробности см. в журнале регистрации.'");
			ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Шаблон, СчетаНаОплату);
			ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения);
		КонецЕсли;
		
	КонецЕсли;
	
КонецПроцедуры

Функция РеквизитыПлатежаQRКод(СтруктураДанныхШапки)
	
	РеквизитыПлатежа = Новый Структура;
	РеквизитыПлатежа.Вставить("ТекстПолучателя", СтруктураДанныхШапки.ОрганизацияНаименованиеСокращенное);
	РеквизитыПлатежа.Вставить("НомерСчетаПолучателя", СтруктураДанныхШапки.ОрганизацияРасчетныйСчетНомер);
	РеквизитыПлатежа.Вставить("НаименованиеБанкаПолучателя", СтруктураДанныхШапки.ОрганизацияРасчетныйСчетБанкНаименованиеПолное);
	РеквизитыПлатежа.Вставить("БИКБанкаПолучателя", СтруктураДанныхШапки.ОрганизацияРасчетныйСчетБанкБИК);
	РеквизитыПлатежа.Вставить("СчетБанкаПолучателя", СтруктураДанныхШапки.ОрганизацияРасчетныйСчетБанкКоррСчет);
	РеквизитыПлатежа.Вставить("СуммаЧислом",СтруктураДанныхШапки.Сумма);
	РеквизитыПлатежа.Вставить("НазначениеПлатежа", СтруктураДанныхШапки.НазначениеПлатежа);
	РеквизитыПлатежа.Вставить("ИННПолучателя", СтруктураДанныхШапки.ОрганизацияИНН);
	РеквизитыПлатежа.Вставить("КПППолучателя", СтруктураДанныхШапки.ОрганизацияКПП);
	
	Возврат РеквизитыПлатежа
	
КонецФункции

 

Тестировал: 

1С:Комплексная автоматизация 2 (2.4.13.209)

Платформа 1С:Предприятие 8.3 (8.3.19.1467)

См. также

Адаптация типовых решений Платформа 1С v8.3 1С:Документооборот Россия Платные (руб)

Расширение конфигурации для «1С:Документооборот КОРП», редакция 3.0. позволяет: 1.использовать произвольные табличные части в качестве дополнительных реквизитов к документу; 2 использовать произвольные табличные части в шаблонах в формате docx для автоматического заполнения таблиц.

29400 руб.

29.06.2023    6155    15    5    

24

Логистика, склад и ТМЦ Адаптация типовых решений Пользователь Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 Россия Управленческий учет Платные (руб)

Чтобы не допустить путаницы с обещаниями клиентам и для четкого контроля исполнения заказов мы используем резервирование товаров. Мы доработали УНФ, чтобы она автоматически отменяла старые резервы и не мешала эффективно продавать.

7200 руб.

02.08.2023    4279    15    1    

33

Печатные формы Адаптация типовых решений Бухгалтер Пользователь Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Расширение позволяет вывести в табличном документе факсимиле печати и подписей и/или вывести произвольную картинку из прикреплённых файлов организации для 1С УТ 11.5, КА 2.5, ERP 2.5, УНФ 3, Розница 3. Вывод факсимиле возможен в табличные документы УПД, УКД, Счёт-фактура, ТОРГ-12 и другие. Возможно настроить вывод для любых типовых макетов (Акт сверки, М-15, ТТН), для этого потребуется отредактировать макет и разместить на нём картинки с установленными именами. Редактирование осуществляется через типовой механизм в пользовательском интерфейсе.

3000 руб.

07.02.2023    6830    73    10    

30

БСП (Библиотека стандартных подсистем) Программист Платные (руб)

Синтакс-помощник БСП - cправочник по библиотеке стандартных подсистем. В состав справочника входит описание экспортных процедур и функций, размещенных в областях кода ПрограммныйИнтерфейс БСП.

1800 руб.

21.11.2024    571    1    0    

3

Универсальные функции Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Благодаря этим пяти строчкам можно больше не заморачиваться с загрузкой из внешних файлов. Пользуюсь везде, всегда и постоянно.

21.05.2024    21245    dimanich70    81    

146
Отзывы
4. John_d 5893 30.06.22 10:19 Сейчас в теме
(2) Скачал "Библиотека стандартных подсистем", редакция 3.1 (3.1.7.82)
Проверил работает и эта функция:
ДанныеQRКода = УправлениеПечатью.ДанныеQRКода(QRСтрока, 0, 190);
Но 1с рекомендует использовать эту функцию:
ДанныеQRКода = ГенерацияШтрихкода.ДанныеQRКода(QRСтрока, 0, 190);
Остальные комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. quazare 3816 29.06.22 12:45 Сейчас в теме
Это вы из типовой подчерпнули?
2. Totoro 571 29.06.22 14:13 Сейчас в теме
(0) Если брать БСП с 3.1.5, то

ОбщийМодуль.УправлениеПечатью
// Устарела. Следует использовать ГенерацияШтрихкода.ДанныеQRКода
// или ГенерацияШтрихкода.ИзображениеШтрихкода.
Функция ДанныеQRКода(QRСтрока, УровеньКоррекции, Размер) Экспорт

// Устарела. Следует использовать УправлениеПечатьюРФ.ФорматнаяСтрокаУФЭБС.
Функция ФорматнаяСтрокаУФЭБС(ДанныеДокумента) Экспорт
3. John_d 5893 29.06.22 14:21 Сейчас в теме
(2) я тестировал в КА 2, там не последняя БСП.
В принципе понятно куда копать, если используете последнюю БСП.
4. John_d 5893 30.06.22 10:19 Сейчас в теме
(2) Скачал "Библиотека стандартных подсистем", редакция 3.1 (3.1.7.82)
Проверил работает и эта функция:
ДанныеQRКода = УправлениеПечатью.ДанныеQRКода(QRСтрока, 0, 190);
Но 1с рекомендует использовать эту функцию:
ДанныеQRКода = ГенерацияШтрихкода.ДанныеQRКода(QRСтрока, 0, 190);
6. Totoro 571 30.06.22 10:44 Сейчас в теме
(4) Да, в БСП 3.1.7 проверяется наличие модуля "ГенерацияШтрихкода" (он есть в составе БСП) и вызывается функция из него вместо УправлениеПечатью. Для обратной совместимости.

Мой комментарий - это не то, что код не рабочий, а то, что в новых БСП нужно вызывать другие функции. Как например, разделение ОбщегоНазначенияКлиентСервер.СообщитьПользователю - она тоже работает, но лучше теперь ее вызов разделять на клиент и сервер.

Можно, например, добавить замечание в конце статьи.
5. quazare 3816 30.06.22 10:28 Сейчас в теме
В свое время я описывал возможность применения подсистемы БСП - ГенерацияШтрихкода - https://infostart.ru/1c/articles/1356920/

Может, кому-то будет полезна.....
7. jan-pechka 426 04.07.22 11:54 Сейчас в теме
Добрый день.

Опишите, пожалуйста, кто сталкивался, процесс оплаты через QR-код.
т.е. что нужно сделать с ккт, с эквайрингом и 1с, чтобы проходила оплата через QR? как и где у вас отражается QR? т.к. есть, что на самом эквайринге после его перепрошивки высвечивается, а есть, что предварительно с ккт печатается.
Оставьте свое сообщение