Реализация печати 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 Бесплатно (free)

В статье описан алгоритм для включения документа или справочника в систему БСП. Будет полезно программистам 1С, начинающим работать с БСП.

24.10.2024    1088    PROSTO-1C    0    

12

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

В материале описан универсальный механизм работы с добавленными элементами на общую форму «ФормаОтчета». Думаю, облегчит работу многим разработчикам.

08.10.2024    978    PROSTO-1C    4    

10

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

В статье рассмотрим пошаговую инструкцию создания дополнительного отчета с фоновым формированием результата.

04.10.2024    1830    MadRave    11    

24

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

Пример отслеживания прогресса фонового выполнения дополнительной обработки с использованием программного интерфейса длительных операций БСП.

10.09.2024    1817    MadRave    1    

17

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

А что, если долгожданная реализация Паузы в 1С смутно напоминает старую, проверенную? А?!

06.09.2024    1254    n_mezentsev    10    

8

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

Добавим дополнительные свойства в новый документ средствами БСП

02.09.2024    4105    John_d    10    

52

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

Всё больше организаций выбирает для серверов под 1С операционные системы Linux. Одним из отличий систем Windows и Linux является отсутствие COM объектов, которые зачастую использовались для формирования печатных форм офисных документов (Word). Конечно, можно выполнять печать и на клиенте, но есть риск импортозамещения. В работе у меня случались проблемы с зависанием процесса Word, поэтому я не люблю его использовать.

29.07.2024    5354    PROSTO-1C    12    

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