ustanovka_shtrix-koda_na_pechatnuju_formu

1. На печатную орму в область добавляем просто пустой рисунок. Убираем на нем границы рисунка (обводку) 2. В менеджере где формируеться печатная форма на этапе набора строк с позициями длобавляем свою обработку. Например для ЗаказаПокупателя в МодулеМенеджера.СформироватьЗаказПокупателя(..) в цикле (Для каждого СтрокаЗапасы Из Шапка.ТаблицаЗапасы Цикл)

ОбщийМодульРасширенныйФункционал.ЗаполнитьШКДляПечати(ОбластьМакета,ПечатнаяФорма,СтрокаЗапасы); 

3. В общем модуле сам код добавления такой

&НаСервере
Процедура ЗаполнитьШКДляПечати (ОбластьМакета,ПечатнаяФорма,СтрокаМакетаДляУстановкиШК) Экспорт
	                            
	//Получаем область Рисунка и данные по нему
	Для каждого стрРисунки Из ОбластьМакета.Рисунки Цикл
		Рисунок	= стрРисунки;	
	КонецЦикла;
	
	Эталон = Обработки.ПечатьЭтикетокИЦенников.ПолучитьМакет("Эталон");
	КоличествоМиллиметровВПикселе = Эталон.Рисунки.Квадрат100Пикселей.Высота / 100;
	
	//ОпределяемНоменклатуру
	мНоменклатура	=	ОпределитьНоменклатуру(СтрокаМакетаДляУстановкиШК);
	мХарактеристика	=	СтрокаМакетаДляУстановкиШК.Характеристика;	
	Если не ЗначениеЗаполнено(мНоменклатура) Тогда
		мсооб	=	новый СообщениеПользователю;
		мсооб.Текст	=	"Не удалось определить одну из номенклатур для получения Штрих-кода";
		мсооб.Сообщить();
		Возврат;
	КонецЕсли;
	
	//ПолучаемЗначениеШК
	ЗначениеШтрихкода = "";
	Запрос = Новый Запрос;
	Запрос.Текст = 
	"ВЫБРАТЬ
	|	ШтрихкодыНоменклатуры.Штрихкод КАК Штрихкод
	|ИЗ
	|	РегистрСведений.ШтрихкодыНоменклатуры КАК ШтрихкодыНоменклатуры
	|ГДЕ
	|	ШтрихкодыНоменклатуры.Номенклатура = &Номенклатура
	|	И ШтрихкодыНоменклатуры.Характеристика = &Характеристика";
	
	Запрос.УстановитьПараметр("Номенклатура",мНоменклатура);
	Запрос.УстановитьПараметр("Характеристика",мХарактеристика);	
	РезультатЗапроса = Запрос.Выполнить();	
	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();	
	Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
		ЗначениеШтрихкода	=ВыборкаДетальныеЗаписи.Штрихкод;	
	КонецЦикла;
	
	//Заполняем ШК
	Если ЗначениеЗаполнено(ЗначениеШтрихкода) Тогда
		
		ПараметрыШтрихкода = Новый Структура;
		ПараметрыШтрихкода.Вставить("Ширина",	Окр(Рисунок.Ширина / КоличествоМиллиметровВПикселе));
		ПараметрыШтрихкода.Вставить("Высота",	Окр(Рисунок.Высота / КоличествоМиллиметровВПикселе));
		
		//Если ОписаниеШаблона.ТипКода = 16 Тогда
			//МинСторона = Мин(ПараметрыШтрихкода.Ширина, ПараметрыШтрихкода.Высота);
			//ПараметрыШтрихкода.Ширина = МинСторона;
			//ПараметрыШтрихкода.Высота = МинСторона;
		//КонецЕсли;
		
		ПараметрыШтрихкода.Вставить("УровеньКоррекцииQR", 0);
		ПараметрыШтрихкода.Вставить("Штрихкод",				ЗначениеШтрихкода);
		ПараметрыШтрихкода.Вставить("ТипКода",				1);
		ПараметрыШтрихкода.Вставить("ОтображатьТекст",		Истина);
		ПараметрыШтрихкода.Вставить("РазмерШрифта",			12);
		ПараметрыШтрихкода.Вставить("УголПоворота", 		0);
		ПараметрыШтрихкода.Вставить("ПрозрачныйФон", 		истина);
		
		Рисунок.Картинка = МенеджерОборудованияВызовСервера.ПолучитьКартинкуШтрихкода(ПараметрыШтрихкода);
		
	КонецЕсли;
	
КонецПроцедуры
Функция ОпределитьНоменклатуру(СТрокаПФ)
	
	мноменклатура = Справочники.Номенклатура.ПустаяСсылка();
	
	Если Не ЗначениеЗаполнено(мноменклатура) И  ЗначениеЗаполнено(СТрокаПФ.Код) Тогда 
		мноменклатура	=	Справочники.Номенклатура.НайтиПоКоду(СТрокаПФ.Код);
	КонецЕсли;
	
	Если Не ЗначениеЗаполнено(мноменклатура) И  ЗначениеЗаполнено(СТрокаПФ.Наименование) Тогда 
		мноменклатура	=	Справочники.Номенклатура.НайтиПоНаименованию(СТрокаПФ.Наименование);
	КонецЕсли;
	
	Возврат мноменклатура;
	
КонецФункции
  • /sites/data/pages/ustanovka_shtrix-koda_na_pechatnuju_formu.txt
  • Последнее изменение: 2022/09/27 20:47
  • tro