Каталог решений - Генератор QR кодов для 1С без компонент через HTTP API

Генератор QR кодов для 1С без компонент через HTTP API

Генератор QR кодов для 1С без компонент через HTTP API

В наличии

Самый простой, на мой взгляд, способ получить QR код для 1СV8. Без внешних компонент, как говорится, бесплатно, без смс и регистрации))

Категория:

Описание

Всем привет!

Решил добавить в свою конфигурацию  QR коды на макетах печатных форм.

Раньше никогда подобного не делал и начал искать примеры. Как оказалось, примеров много, но все как-то не так. И задумался я об упрощении этого процесса. Т.к. я очень люблю работать с веб ресурсами, а особенно с api, было принято решение поискать сервис для генерации QR кодов да еще и с api. Долго искать не пришлось. Буквально первые несколько результатов запроса выдали нужный сервис. Подобных сервисов немало и выбор мой был ни на чем не основан, он просто был первый. (Ни в коем случае не реклама сервиса). Предложенный мной способ работает с любым сервисом.

В общем суть такова. HTTP запросом получаем двоичные данные картинки которую генерирует веб сервис и вставляем её куда вздумается. Для примера вывожу на форму и в макет печатной формы. Что может быть проще. Для тех кто подумал о том, что сервис может временно не работать или перестать работать совсем, можно добавить несколько сервисов и посылать запросы на них. Ну а для полной автономности можно развернуть свой веб сервер(если его еще нет) буквально за 5 минут и закинуть туда html-ку от Google . Думаю в ближайшее время именно этот способ опробую и поделюсь опытом. 

Код модуля формы:

&НаКлиенте
Процедура Генерировать(Команда)
	
	Строка = Текст;
	Соединение = Новый HTTPСоединение("api.qrserver.com");
	Запрос = Новый HTTPЗапрос("/v1/create-qr-code/?data=" + СтрокуВURL(Строка) + "&size=[" + Размер + "]x[" + Размер + "]");    
	Результат =  Соединение.Получить(Запрос);
	Тело = Результат.ПолучитьТелоКакДвоичныеДанные();

	QRCode = ПоместитьВоВременноеХранилище(Тело,УникальныйИдентификатор);	
	
	
	ОбъектНаСервере(Тело,Текст,Размер).Показать();

КонецПроцедуры

&НаСервере
Функция ОбъектНаСервере(Тело,Строка,Размер)
	
	ОбработкаОбъект =  РеквизитФормыВЗначение("Объект");
	ТабДок = ОбработкаОбъект.ПечатьНаСервере(Тело,Строка,Размер);
	
	Возврат ТабДок;
КонецФункции


&НаСервере
Функция СтрокуВURL(Строка)
	
	Строка = КодироватьСтроку(Строка,СпособКодированияСтроки.URLВКодировкеURL);
	
	Возврат Строка;
	
КонецФункции

 

Код модуля объекта:

Функция ПечатьНаСервере(Тело,Текст,Размер) Экспорт 
	ТабДок = Новый ТабличныйДокумент;
	МакетОбработки = ПолучитьМакет("Макет");
	
	ОбластьШапка = МакетОбработки.ПолучитьОбласть("Шапка");
	ОбластьШапка.Параметры.Текст = Текст;
	ОбластьШапка.Параметры.Размер = Строка(Размер) + "х" + Строка(Размер);
	ТабДок.Вывести(ОбластьШапка);
	
	
	ОбластьQR = МакетОбработки.ПолучитьОбласть("Код");
	Рис = ОбластьQR.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка);
	Рис.Лево = 20;
	Рис.Ширина = 35;
	Рис.Высота = 35;
	Рис.ГраницаСверху = Ложь;
	Рис.ГраницаСлева = Ложь;
	Рис.ГраницаСнизу = Ложь;
	Рис.ГраницаСправа = Ложь;
	Рис.РазмерКартинки = РазмерКартинки.Пропорционально;
	Рис.Картинка = Новый  Картинка(Тело);
	ТабДок.Вывести(ОбластьQR);
	
	Возврат ТабДок;
КонецФункции

Тест на 

1С:Предприятие 8.3 (8.3.18.1128)

has been added to your cart:
Оформление заказа