1. waitklassik 12.04.19 16:10 Сейчас в теме

Печать qr кода из самописного документа

Есть самописный документ задача такова что бы по нажатию кнопки печать формировалась печатная форма qr кода на основании реквизита1 и реквизита2 из этого документа как это сделать?
Вознаграждение за ответ
Показать полностью
Ответы
Избранное Подписка Сортировка: Древо
4. Xershi 542 12.04.19 16:31 Сейчас в теме
(1) если есть компонента. Пишите код склеив 2 значения.
Если нету, качаете например мою разработку QR-код 2 в 1 (обычная и управляемая форма). И она вам по вашему алгоритма сгенерирует.
6. user770129 15.04.19 11:45 Сейчас в теме
(4)
Если нету, качаете например мою разработку
используете БСП, там всё сделано, ничего качать не надо.
7. waitklassik 15.04.19 11:45 Сейчас в теме
8. Xershi 542 15.04.19 12:03 Сейчас в теме
(7) ну а полученный результат в табличный документ и выводите как вам надо.
2. noprogrammer 89 12.04.19 16:26 Сейчас в теме
Процедура ВывестиQRКод(QRСтрока, ОбластьМакета, ИмяРисунка="QRКод", Ссылка=Неопределено) Экспорт
	Если ПустаяСтрока(QRСтрока) Тогда Возврат; КонецЕсли;
		
	ДанныеQRКода=УправлениеПечатнымиФормамиСервер.ДанныеQRКода(QRСтрока, 0, 190);

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

Функция КомпонентаФормированияQRКода()
	ТекстОшибки = НСтр("ru = 'Не удалось подключить внешнюю компоненту для генерации QR-кода. Подробности в журнале регистрации.'");

	QRCodeGenerator=ПодключитьКомпонентуИзМакета("QRCodeExtension", "ОбщийМакет.КомпонентаПечатиQRКода");
	Если QRCodeGenerator=Неопределено Тогда 
		ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстОшибки);
	КонецЕсли;
	
	Возврат QRCodeGenerator;
КонецФункции

// Возвращает двоичные данные для формирования QR кода.
//
// Параметры:
//  QRСтрока         - Строка - данные, которые необходимо разместить в QR-коде.
//
//  УровеньКоррекции - Число - уровень погрешности изображения при котором данный QR-код все еще возможно 100%
//                             распознать.
//                     Параметр должен иметь тип целого и принимать одно из 4 допустимых значений:
//                     0(7% погрешности), 1(15% погрешности), 2(25% погрешности), 3(35% погрешности).
//
//  Размер           - Число - определяет длину стороны выходного изображения в пикселях.
//                     Если минимально возможный размер изображения больше этого параметра - код сформирован не будет.
//
// Возвращаемое значение:
//  ДвоичныеДанные  - буфер, содержащий байты PNG-изображения QR-кода.
// 
// Пример:
//  
//  // Выводим на печать QR-код, содержащий в себе информацию зашифрованную по УФЭБС.
//
//  QRСтрока = УправлениеПечатью.ФорматнаяСтрокаУФЭБС(РеквизитыПлатежа);
//  ТекстОшибки = "";
//  ДанныеQRКода = УправлениеПечатью.ДанныеQRКода(QRСтрока, 0, 190, ТекстОшибки);
//  Если Не ПустаяСтрока(ТекстОшибки)
//      ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстОшибки);
//  КонецЕсли;
//
//  КартинкаQRКода = Новый Картинка(ДанныеQRКода);
//  ОбластьМакета.Рисунки.QRКод.Картинка = КартинкаQRКода;
//
Функция ДанныеQRКода(QRСтрока, УровеньКоррекции, Размер) Экспорт
	УстановитьОтключениеБезопасногоРежима(Истина);
	
	ГенераторQRКода=КомпонентаФормированияQRКода();
	Если ГенераторQRКода=Неопределено Тогда Возврат Неопределено; КонецЕсли;
	
	Попытка ДвоичныеДанныеКартинки=ГенераторQRКода.GenerateQRCode(QRСтрока, УровеньКоррекции, Размер);
	Исключение ЗаписьЖурналаРегистрации(НСтр("ru = 'Формирование QR-кода'", ОбщегоНазначенияКлиентСервер.КодОсновногоЯзыка()), УровеньЖурналаРегистрации.Ошибка, , , ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
	КонецПопытки;

	Возврат ДвоичныеДанныеКартинки;
КонецФункции

Показать


Где: QRСтрока - значение Реквизита1+Реквизита2 (как там их надо указать)

Компоненту взять из типовой конфигурации.
oleg-x; darkmessiahan; +2 Ответить
3. user5300 31 12.04.19 16:30 Сейчас в теме
http://catalog.mista.ru/public/259644/ - Никаких внешних макетов и DLL только javascript.
http://catalog.mista.ru/public/137919/ - Не использует дополнительного шрифта и внешней компоненты, что позволяет использовать ее в web-клиенте без дополнительных подготовительных действий на стороне пользователя.
http://catalog.mista.ru/public/80106/ - Генерация qr кода с помощью api google
5. Oldsad 15.04.19 05:54 Сейчас в теме
(3)
по первой ссылке вы будете генерировать кому то 3 сек бикоины(лол) при каждом формировании qr-кода
по второй ссылке с вас поросят денежку
по третьей надо учитывать, что вы в открытом виде будете передавать информацию гугл, а что там она с ней делает дальше хз

и возникает вопрос зачем все это, когда генерация qr кода встроена в стандартные конфигурации 1с еще во времена динозавров
fenixnow; oldcopy; user770129; +3 Ответить
9. waitklassik 17.04.19 11:55 Сейчас в теме +0.5 $m
спасибо за помощь но все не то=( разобрался сам
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист 1С
Санкт-Петербург
зарплата от 135 000 руб. до 135 000 руб.
Полный день

Программист 1С
Норильск
зарплата от 50 000 руб. до 80 000 руб.
Полный день

Руководитель отдела внедрения 1С
Новосибирск
зарплата от 60 000 руб. до 160 000 руб.
Полный день

Ведущий программист 1С
Москва
зарплата от 120 000 руб. до 150 000 руб.
Полный день