Реализация печати QR кодов "Библиотека стандартных подсистем", редакция 3.1 (3.1.1.151)

16.10.19

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

Рассмотрим, как реализовать печать QR кодов с помощью механизмов БСП.

Предыстория:

Продолжаем писать свою конфигурацию, в предыдущей статье я описал, как реализовать команду печати //infostart.ru/public/1134141/, теперь я опишу, как на макете печатной формы вывести QR код.

Задача: Есть документ доверенность, нужно вывести на печатную форму документа QR код.

Решение:

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

QRСтрока = ВернутьСтрокуДляКодирования(Результат);
Функция ВернутьСтрокуДляКодирования(Результат)
	SFormat = "ST";
	CodeVersion = "0001";
	Символ_ = "|";
	
	CodePage = 2; //UTF
	
	Name = "Name=" + Name;
	PersonalAcc ="PersonalAcc=" + PersonalAcc;
	BankName = "BankName=" + BankName;
	BIC = "BIC=" + BIC;
	CorrespAcc = "CorrespAcc=" + CorrespAcc;
	//Sum = "Sum=" + СуммаВКопейках; //в копейках, т.е не 100,52, а 10052
	PayeeINN = "PayeeINN=" + PayeeINN;
	///////////////////////////////////////////////////////////////////////////////
	LastName = "LastName=" + Результат.Партнер;
	Purpose = "Purpose=" + "Г."+Результат.Магазин.Город+", "+Результат.Магазин.Адрес+"";
	Sum = "Sum=" +Формат(Результат.Сумма * 100,"ЧГ=0");
	//FirstName = "FirstName=" + ИмяПлательщика;
	//MiddleName = "MiddleName=" + ОтчествоПлательщика;
	//payerAddress ="payerAddress=" + АдресПлательщика;
	//PersAcc = "PersAcc="+ НомерДоговораСПлательщиком;
	//PaymPeriod = "PaymPeriod="+ Формат(ТекущаяДата(), "ДФ=MM.yyyy"); // расчетный период вида ММГГ MM.yy;
	
	Рез = SFormat + CodeVersion + CodePage + Символ_ +
		  Name + Символ_ +
		  PersonalAcc + Символ_ +
		  BankName + Символ_ +
		  BIC + Символ_ +
		  CorrespAcc + Символ_ +
		  //Sum + Символ_ +
		  PayeeINN + Символ_ +
		  LastName +  Символ_ +
		  Purpose +  Символ_ +
		  Sum;
		  //FirstName +  Символ_ +
		  //MiddleName +  Символ_ +
		  //payerAddress +  Символ_ +
		  //PersAcc +  Символ_ +
		  //PaymPeriod; 
			           
	
	//Возврат UTF8(Рез);
	Возврат Рез;

КонецФункции

Функция "ВернутьСтрокуДляКодирования" собирает строку, из чего состоит сам QR код, подробней можно посмотреть в статье //infostart.ru/public/604539/.

Теперь у нас есть строка содержимое QR кода, далее задействуем механизм БСП, чтобы получить "Рисунок с двоичными данными"

РисунокДвоичный = УправлениеПечатью.ДанныеQRКода(QRСтрока, 1, 120);

В функцию "ДанныеQRКода" мы передаем: Нашу QR строку, Уровень коррекции, размер.

Создадим картинку из двоичных данных и присвоим её нашему рисунку

КартинкаQRКода = Новый Картинка(РисунокДвоичный);
ОбластьМакета.Рисунки.РисунокQR.Картинка = КартинкаQRКода;

Готово!!!

См. также

Создать на основании - своя кнопка (БСП). Проблема двух подменю Создать на основании

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

Понадобилось в подменю "Создать на основании" добавить свою команду, которая открывает обработку. В процессе доработок появилась проблема двух подменю "Создать на основании". В статье о том, как решились проблемы.

01.03.2024    1296    dimanich70    6    

13

Заполнение поля адреса в своей обработке [БСП]

Механизмы платформы 1С БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Небольшая шпаргалка по функциям БСП касательно адреса. Так скажем, еще один способ помимо https://infostart.ru/1c/articles/1060970/

12.02.2024    690    FilippovRI    0    

15

Расширяем возможности дополнительных обработок и настраиваем их отладку

БСП (Библиотека стандартных подсистем) Механизмы типовых конфигураций Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Уже не одна веб-страница исписана знаниями о дополнительных обработках, как создать, как подключить. Есть масса вариантов, как их можно отладить. Я разобрался в кишках работы библиотеки и покажу, как можно расширить возможности дополнительных отчетов, а также покажу удобный способ отладки.

07.02.2024    2354    YA_418728146    11    

40

1С:БСП Дополнительные реквизиты и сведения

БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Бесплатно (free)

В этой статье расскажем об архитектуре, использовании и особенностях реализации подсистемы «Свойства» из инструментария разработчика «1С:Библиотека стандартных подсистем» (1С: БСП).

19.01.2024    5190    PROSTO-1C    5    

45

Бесплатный митап 9 февраля «Библиотеки и фреймворки на 1С и всё, что с этим связано»

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

Митап посвящен вопросам создания, использования и поддержке переиспользуемого кода при разработке решений на платформе 1С:Предприятие 8.

15.01.2024    3799    0    Infostart    0    

20

Шаблоны новых объектов 1С для 1С:Бухгалтерии предприятия

Инструментарий разработчика БСП (Библиотека стандартных подсистем) Механизмы типовых конфигураций Платформа 1С v8.3 1С:Бухгалтерия 3.0 Бесплатно (free)

Используются для создания новых объектов в конфигурации, чтобы не забыть, что нужно сделать. Сделано на примере 1С:Бухгалтерия предприятия, в других конфигурациях могут быть другие, а могут быть и похожие объекты.

28.12.2023    4836    mrXoxot    11    

99
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Screamer_legenda 16.10.19 12:48 Сейчас в теме
2. A_Max 19 16.10.19 14:54 Сейчас в теме
УЖАС! Очень плохо сделанный пример. Учит плохому.
* убрать куски закомменченного кода
* вообще не рабочая процедура вне вашего контекста. откуда переменные которые подставляются в строку?
* заменить плюсы на СтрСоединить и СтрШаблон
allexx; yatec; Reserv1st; Xershi; probkaotjizni; CodeNull; zannv; maxopik2; Man4kin; +9 1 Ответить
3. RustIG 1382 22.10.19 18:28 Сейчас в теме
(0) молодцы! разобрались сами - просветили других!
4. Neuroproton 18 25.03.20 10:42 Сейчас в теме
Кириллицу встроенная компонента понять не может, да? Попробовал закодировать текст на русском, получаются только знаки вопроса (??? ????? ???)
Оставьте свое сообщение