QR код - помощь с вызовом метода

1. the_kutuzov 20.11.24 10:55 Сейчас в теме
функция ПолучитьГенераторQRкода()
		лМакетКомпоненты = ПолучитьОбщийМакет("КомпонентаПечатиQRКода");
		лАдрес = ПоместитьВоВременноеХранилище(лМакетКомпоненты);
		ГенераторQRкода = Неопределено;
		Попытка
			Если ПодключитьВнешнююКомпоненту(лАдрес,"QR") Тогда
				ГенераторQRкода = Новый("AddIn.QR.QRCodeExtension");
			Иначе
				Сообщить("Не удалось подключить компоненту генерации QR кода");		
			КонецЕсли;
		Исключение
			Сообщить(ОписаниеОшибки());	
		КонецПопытки;
		Возврат ГенераторQRкода;
КонецФункции

	
Функция ПолучитьQRкод(QRСтрока, УровеньКоррекции, Размер) Экспорт
		ГенераторQRКода = ПолучитьГенераторQRкода();
		Если ГенераторQRКода = Неопределено Тогда
			Возврат Неопределено;
		КонецЕсли;
		
		Попытка
			ДвоичныеДанныеКартинки = ГенераторQRКода.GenerateQRCode(QRСтрока, УровеньКоррекции, Размер);
		Исключение
			Сообщить(ОписаниеОшибки());
		КонецПопытки;
		
		Возврат ДвоичныеДанныеКартинки;
		
	КонецФункции
	
Процедура ПечатьНаклеекИзПоступленияТоваров(Док, ТабДок, Макет, Обл, ВариантПечати)
	
	Макет = ПолучитьМакет("НаклейкаУкрупненная");
	Горизонтально = истина;
	
	Запрос = Новый Запрос("ВЫБРАТЬ
	|	ПоступлениеТоваровУслугТовары.НомерСтроки КАК НомерСтроки,
	|	ПоступлениеТоваровУслугТовары.Номенклатура,
	|	ПоступлениеТоваровУслугТовары.Номенклатура.НоменклатурнаяГруппа КАК НоменклатурнаяГруппа,
	|	ПоступлениеТоваровУслугТовары.Номенклатура.НомерЧертежа КАК НомерЧертежа,
	|	ПоступлениеТоваровУслугТовары.Хранение,
	|	ПоступлениеТоваровУслугТовары.КоличествоМест,
	|	ПоступлениеТоваровУслугТовары.Количество,
	|	ПоступлениеТоваровУслугТовары.ПартияСсылка,
	|	ПоступлениеТоваровУслугТовары.СертификатКачества,
	|	ВЫРАЗИТЬ(ПоступлениеТоваровУслугТовары.ПартияСсылка КАК Справочник.Партии).ЗаводскойНомер КАК ЗавНомерИзПартии,
	|	ВЫРАЗИТЬ(ПоступлениеТоваровУслугТовары.ПартияСсылка КАК Справочник.Партии).СертификатКачества КАК СертификатИзПартии,
	|	ВЫРАЗИТЬ(ПоступлениеТоваровУслугТовары.ПартияСсылка КАК Справочник.Партии).ЗаготовительнаяКарта КАК ЗаготКартаИзПартии,
	|	ВЫРАЗИТЬ(ПоступлениеТоваровУслугТовары.ПартияСсылка КАК Справочник.Партии).Код КАК КодПартии,
	|	ВЫБОР
	|		КОГДА ПоступлениеТоваровУслугТовары.ЗаводскойНомер = ЗНАЧЕНИЕ(Справочник.Номераноменклатуры.ПустаяСсылка)
	|			ТОГДА ВЫРАЗИТЬ(ПоступлениеТоваровУслугТовары.ПартияСсылка КАК Справочник.Партии).ЗаводскойНомер
	|		ИНАЧЕ ПоступлениеТоваровУслугТовары.ЗаводскойНомер
	|	КОНЕЦ КАК ЗаводскойНомер,
	|	ПоступлениеТоваровУслугТовары.ДопТребования,
	|	ПоступлениеТоваровУслугТовары.ЕдиницаИзмерения
	|ПОМЕСТИТЬ втДок
	|ИЗ
	|	Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
	|ГДЕ
	|	ПоступлениеТоваровУслугТовары.Ссылка = &Ссылка
	|;
	|
	|////////////////////////////////////////////////////////////­////////////////////
	|ВЫБРАТЬ
	|	втДок.НомерСтроки,
	|	втДок.Номенклатура,
	|	втДок.НоменклатурнаяГруппа,
	|	втДок.НомерЧертежа,
	|	втДок.Хранение,
	|	втДок.КоличествоМест,
	|	втДок.Количество,
	|	втДок.ПартияСсылка,
	|	втДок.СертификатКачества,
	|	втДок.ЗавНомерИзПартии,
	|	втДок.СертификатИзПартии,
	|	втДок.ЗаготКартаИзПартии,
	|	втДок.КодПартии,
	|	втДок.ЗаводскойНомер,
	|	втДок.ДопТребования,
	|	втДок.ЕдиницаИзмерения
	|ИЗ
	|	втДок КАК втДок
	|;
	|
	|////////////////////////////////////////////////////////////­////////////////////
	|ВЫБРАТЬ
	|	втДок.СертификатКачества КАК Документ
	|ИЗ
	|	втДок КАК втДок
	|ГДЕ
	|	втДок.СертификатКачества <> ЗНАЧЕНИЕ(Документ.СертификатКачества.ПустаяСсылка)
	|
	|ОБЪЕДИНИТЬ
	|
	|ВЫБРАТЬ
	|	втДок.ЗаготКартаИзПартии
	|ИЗ
	|	втДок КАК втДок
	|ГДЕ
	|	втДок.ЗаготКартаИзПартии <> ЗНАЧЕНИЕ(Документ.ЗаготовительнаяКарта.ПустаяСсылка)
	|;
	|
	|////////////////////////////////////////////////////////////­////////////////////
	|УНИЧТОЖИТЬ втДок");
	
	Запрос.УстановитьПараметр("Ссылка", СсылкаНаДокумент);
	
	МР = Запрос.ВыполнитьПакет();
	
	Выборка = МР[1].Выбрать();
	
	тзДанныхНомеров = ПолучитьЗаводскиеНомераДокументов(МР[2].Выгрузить().ВыгрузитьКолонку("Документ"));
	
	тзОсновных = ОтфильтроватьОсновнуюДетальАрматурыАЭС(МР[1].Выгрузить().ВыгрузитьКолонку("Номенклатура"));
	
	БезДопТребования = Справочники.ДополнительныеТребованияКВыпускуПродукции.Основной;
	 ВнешняяКомпонента=Неопределено;
	Пока Выборка.Следующий() Цикл
		
		обл = Макет.ПолучитьОбласть("Наклейка"); 
		Горизонтально = истина;
		//Штрих = обл.Рисунки.Штрих;
		
		//поиск по сертификату
		Если ЗначениеЗаполнено(Выборка.СертификатКачества) Тогда
			МассивСостава = тзДанныхНомеров.НайтиСтроки(Новый Структура("Источник,Номенклатура", Выборка.СертификатКачества, Выборка.Номенклатура));	
		ИначеЕсли ЗначениеЗаполнено(Выборка.ЗаготКартаИзПартии) Тогда
			МассивСостава = тзДанныхНомеров.НайтиСтроки(Новый Структура("Источник", Выборка.ЗаготКартаИзПартии));		
		Иначе
			Сообщить("Не найдено источника (СК,ЗК) для печати заводского номера.");
		КонецЕсли;  		
		
		НужноНапечатать = Выборка.КоличествоМест;
		Если НужноНапечатать=0 Тогда
			НужноНапечатать =1;
		КонецЕсли;
		
		КоличествоНомеровВсего =0;
		
		ОснонаяДеталь = Ложь;
		Если тзОсновных.НайтиСтроки(Новый Структура("Деталь", Выборка.Номенклатура)).Количество()>0 Тогда
			ОснонаяДеталь = Истина;	
		КонецЕсли;
		
		ОбозначениеНоменклатуры = СокрЛП(Выборка.Номенклатура);
		
		ш=9;
			ПараметрыШтрихкода = Новый Структура;
			ПараметрыШтрихкода.Вставить("Ширина",4);
			ПараметрыШтрихкода.Вставить("Высота",5);
			ПараметрыШтрихкода.Вставить("Штрихкод");
			ПараметрыШтрихкода.Вставить("ОтображатьТекст", Истина); 
			ПараметрыШтрихкода.Вставить("СохранятьПропорции",ложь);
			
			
		    ОШК = Обл.Области.ОбластьШтрихКода;

		Для х=1 по НужноНапечатать Цикл
			
			Если МассивСостава<>Неопределено и МассивСостава.Количество()>0 Тогда
				КоличествоНомеровВсего = МассивСостава.Количество();
				
				Для Каждого Стр из МассивСостава Цикл  					
					Если НужноНапечатать>0 Тогда						
						ШтрихКод = ШтрихКодОбъекта(Стр.ЗаводскойНомер);
						Если ЗначениеНеЗаполнено(ШтрихКод) Тогда
							//штрих-код на партию
							ШтрихКод = "_" + УдалитьЛишниеПробелы(СокрЛП(Выборка.КодПартии));
						Иначе
							ШтрихКод = УдалитьЛишниеПробелы(СокрЛП(ШтрихКод));
						КонецЕсли;
						//Штрих.Объект.Сообщение  = ШтрихКод;
						ПараметрыШтрихкода.Штрихкод=ШтрихКод;
						ОШК.Картинка = СвойМодульКлиентСервер.ПолучитьКартинкуШтрихкода(ПараметрыШтрихкода,ВнешняяКомпонента);
						
						//поиграем со шрифтами    			
						облНом = Макет.Область("ОбозначениеНоменклатуры");
						РазмерШрифта = 100;
						облНом.Шрифт = Новый Шрифт(облНом.Шрифт, ,100);	
						Дельта=0;
						Пока ТекстУмещаетсяВЯчейке(облНом,Макет, ОбозначениеНоменклатуры, Дельта) = Ложь Цикл
							
							Если Дельта>0 Тогда
								РазмерШрифта = Цел(РазмерШрифта / Sqrt(Дельта));
							Иначе
								РазмерШрифта = РазмерШрифта -2;
							КонецЕсли;
							
							облНом.Шрифт = Новый Шрифт(облНом.Шрифт, ,РазмерШрифта);	
							
						КонецЦикла; 			
						
						обл.Рисунки.Номенклатура.Шрифт = Новый Шрифт(облНом.Шрифт,,РазмерШрифта);
						обл.Рисунки.Номенклатура.Текст = ОбозначениеНоменклатуры;					
						/////////////////////////////////////// 				
						
						обл.Параметры.ВидХранения = СокрЛП(Выборка.Хранение);
						обл.Параметры.НомерПлавки = "Плавка: " + СокрЛП(Стр.НомерПлавки);
						обл.Параметры.НомерПартии = "Партия: " + СокрЛП(Стр.НомерПартии);
						Если Выборка.ДопТребования = БезДопТребования Тогда
							обл.Параметры.ДопТребования = "";					
						Иначе
							обл.Параметры.ДопТребования = ", " + СокрЛП(Выборка.ДопТребования);
						КонецЕсли;
						обл.Параметры.ОсновнаяДеталь = ?(ОснонаяДеталь = Истина, "Основная", "");
						обл.Параметры.ЗавНомер = СокрЛП(Стр.ЗаводскойНомер);
						
						обл.Параметры.ПоДокументу = "Всего по СК";
						обл.Параметры.КолвоНомеров = КоличествоНомеровВсего;
						обл.Параметры.Дата = Строка(Формат(ТекущаяДата(), "ДФ=dd.MM.yyyy")) + " г.";
						обл.Параметры.Док = "Сертификат Зав. №";     			
						
						ТабДок.Вывести(обл);
						
						ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
						
						НужноНапечатать = НужноНапечатать-1;
					Иначе
						Прервать;
					КонецЕсли;
					
				КонецЦикла;
			Иначе
				//на партию
				//Штрих.Объект.Сообщение = "_" + УдалитьЛишниеПробелы(СокрЛП(Выборка.КодПартии));
				ПараметрыШтрихкода.Штрихкод="_" + УдалитьЛишниеПробелы(СокрЛП(Выборка.КодПартии));
				ОШК.Картинка = СвойМодульКлиентСервер.ПолучитьКартинкуШтрихкода(ПараметрыШтрихкода,ВнешняяКомпонента);
				
				обл.Параметры.ВидХранения = СокрЛП(Выборка.Хранение);
				Если Выборка.ДопТребования = БезДопТребования Тогда
					обл.Параметры.ДопТребования = "";  		
				Иначе
					обл.Параметры.ДопТребования = ", " + СокрЛП(Выборка.ДопТребования);
				КонецЕсли;
				обл.Параметры.ОсновнаяДеталь = ?(ОснонаяДеталь = Истина, "Основная", "");
				обл.Параметры.ЗавНомер = "Партия: " + СокрЛП(Выборка.КодПартии) + " (" + Выборка.Количество + " " + СокрЛП(Выборка.ЕдиницаИзмерения) +")"; // Выборка.ЗаводскойНомер;
				обл.Параметры.Дата = Строка(Формат(ТекущаяДата(), "ДФ=dd.MM.yyyy")) + " г.";
				
				//Область = ТабДок.Область("R1C2:R11C11");
				//Область.Объединить();
				
				//поиграем со шрифтами    			
				облНом = Макет.Область("ОбозначениеНоменклатуры");
				РазмерШрифта = 100;
				облНом.Шрифт = Новый Шрифт(облНом.Шрифт, ,100);	
				Дельта=0;
				Пока ТекстУмещаетсяВЯчейке(облНом,Макет, ОбозначениеНоменклатуры, Дельта) = Ложь Цикл
					
					Если Дельта>0 Тогда
						РазмерШрифта = Цел(РазмерШрифта / Sqrt(Дельта));
					Иначе
						РазмерШрифта = РазмерШрифта -2;
					КонецЕсли;
					
					облНом.Шрифт = Новый Шрифт(облНом.Шрифт, ,РазмерШрифта);	
					
				КонецЦикла; 			
				
				обл.Рисунки.Номенклатура.Шрифт = Новый Шрифт(облНом.Шрифт,,РазмерШрифта);
				обл.Рисунки.Номенклатура.Текст = ОбозначениеНоменклатуры;
				
				///////////////////////////////////////
				ТабДок.Вывести(обл);
				
				ТабДок.ВывестиГоризонтальныйРазделительСтраниц();  						
				НужноНапечатать = НужноНапечатать-1;
			КонецЕсли;
		КонецЦикла;
		
	КонецЦикла;		
	
КонецПроцедуры
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user1863362 20.11.24 11:04 Сейчас в теме
4. the_kutuzov 20.11.24 11:06 Сейчас в теме
3. the_kutuzov 20.11.24 11:05 Сейчас в теме
Нужно вызвать метод Получить Qr код
5. user2107191 20.11.24 11:06 Сейчас в теме
(3)
Нужно вызвать метод
Опять заклинание не выучил? Или волшебную палочку не той системы взял?
6. user1863362 20.11.24 11:06 Сейчас в теме
(3)
Нужно вызвать метод
И в чем проблема? Нет прав?
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот