Реализация печати 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Кода;

Готово!!!

См. также

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

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

1800 руб.

21.11.2024    3644    16    15    

18

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

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

27.12.2024    3442    PROSTO-1C    15    

43

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

Синтакс-помощник БСП - справочник по Библиотеке Стандартных Подсистем, профессиональный инструмент разработчика с интуитивно понятным интерфейсом. Читайте в статье как использовать все возможности справочника и сделать работу с БСП более комфортной и эффективной.

11.12.2024    3905    gorenski    0    

8

БСП (Библиотека стандартных подсистем) Менеджеры внешних отчетов Программист Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление холдингом Абонемент ($m)

За последние лет 5 несколько раз сталкиваюсь с проблемой на разных проектах (в конфигурациях 1С:ERP, 1С:ERP УХ и многих других, основанных на БСП), когда много пользователей (около 30 тысяч) в информационной базе, время добавления доступа для пользователей занимает значительное время. Открытие списка занимает от 10 до 15 секунд, и каждое изменение списка еще примерно столько же.

1 стартмани

10.12.2024    997    Iaskeliainen    2    

7

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

Некоторые нюансы, если вы захотите создавать свои расширения. Доработка отчета "Связанные документы" для отражения документов расширения. Печатные формы с шаблоном Word.

20.11.2024    3338    milkers    3    

12

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

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

24.10.2024    1684    PROSTO-1C    0    

18

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

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

08.10.2024    1374    PROSTO-1C    4    

14
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
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 1833 22.10.19 18:28 Сейчас в теме
(0) молодцы! разобрались сами - просветили других!
4. Neuroproton 34 25.03.20 10:42 Сейчас в теме
Кириллицу встроенная компонента понять не может, да? Попробовал закодировать текст на русском, получаются только знаки вопроса (??? ????? ???)
Оставьте свое сообщение