1. На печатную орму в область добавляем просто пустой рисунок. Убираем на нем границы рисунка (обводку) 2. В менеджере где формируеться печатная форма на этапе набора строк с позициями длобавляем свою обработку. Например для ЗаказаПокупателя в МодулеМенеджера.СформироватьЗаказПокупателя(..) в цикле (Для каждого СтрокаЗапасы Из Шапка.ТаблицаЗапасы Цикл)
ОбщийМодульРасширенныйФункционал.ЗаполнитьШКДляПечати(ОбластьМакета,ПечатнаяФорма,СтрокаЗапасы);
3. В общем модуле сам код добавления такой
&НаСервере
Процедура ЗаполнитьШКДляПечати (ОбластьМакета,ПечатнаяФорма,СтрокаМакетаДляУстановкиШК) Экспорт
//Получаем область Рисунка и данные по нему
Для каждого стрРисунки Из ОбластьМакета.Рисунки Цикл
Рисунок = стрРисунки;
КонецЦикла;
Эталон = Обработки.ПечатьЭтикетокИЦенников.ПолучитьМакет("Эталон");
КоличествоМиллиметровВПикселе = Эталон.Рисунки.Квадрат100Пикселей.Высота / 100;
//ОпределяемНоменклатуру
мНоменклатура = ОпределитьНоменклатуру(СтрокаМакетаДляУстановкиШК);
мХарактеристика = СтрокаМакетаДляУстановкиШК.Характеристика;
Если не ЗначениеЗаполнено(мНоменклатура) Тогда
мсооб = новый СообщениеПользователю;
мсооб.Текст = "Не удалось определить одну из номенклатур для получения Штрих-кода";
мсооб.Сообщить();
Возврат;
КонецЕсли;
//ПолучаемЗначениеШК
ЗначениеШтрихкода = "";
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ШтрихкодыНоменклатуры.Штрихкод КАК Штрихкод
|ИЗ
| РегистрСведений.ШтрихкодыНоменклатуры КАК ШтрихкодыНоменклатуры
|ГДЕ
| ШтрихкодыНоменклатуры.Номенклатура = &Номенклатура
| И ШтрихкодыНоменклатуры.Характеристика = &Характеристика";
Запрос.УстановитьПараметр("Номенклатура",мНоменклатура);
Запрос.УстановитьПараметр("Характеристика",мХарактеристика);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
ЗначениеШтрихкода =ВыборкаДетальныеЗаписи.Штрихкод;
КонецЦикла;
//Заполняем ШК
Если ЗначениеЗаполнено(ЗначениеШтрихкода) Тогда
ПараметрыШтрихкода = Новый Структура;
ПараметрыШтрихкода.Вставить("Ширина", Окр(Рисунок.Ширина / КоличествоМиллиметровВПикселе));
ПараметрыШтрихкода.Вставить("Высота", Окр(Рисунок.Высота / КоличествоМиллиметровВПикселе));
//Если ОписаниеШаблона.ТипКода = 16 Тогда
//МинСторона = Мин(ПараметрыШтрихкода.Ширина, ПараметрыШтрихкода.Высота);
//ПараметрыШтрихкода.Ширина = МинСторона;
//ПараметрыШтрихкода.Высота = МинСторона;
//КонецЕсли;
ПараметрыШтрихкода.Вставить("УровеньКоррекцииQR", 0);
ПараметрыШтрихкода.Вставить("Штрихкод", ЗначениеШтрихкода);
ПараметрыШтрихкода.Вставить("ТипКода", 1);
ПараметрыШтрихкода.Вставить("ОтображатьТекст", Истина);
ПараметрыШтрихкода.Вставить("РазмерШрифта", 12);
ПараметрыШтрихкода.Вставить("УголПоворота", 0);
ПараметрыШтрихкода.Вставить("ПрозрачныйФон", истина);
Рисунок.Картинка = МенеджерОборудованияВызовСервера.ПолучитьКартинкуШтрихкода(ПараметрыШтрихкода);
КонецЕсли;
КонецПроцедуры
Функция ОпределитьНоменклатуру(СТрокаПФ) мноменклатура = Справочники.Номенклатура.ПустаяСсылка(); Если Не ЗначениеЗаполнено(мноменклатура) И ЗначениеЗаполнено(СТрокаПФ.Код) Тогда мноменклатура = Справочники.Номенклатура.НайтиПоКоду(СТрокаПФ.Код); КонецЕсли; Если Не ЗначениеЗаполнено(мноменклатура) И ЗначениеЗаполнено(СТрокаПФ.Наименование) Тогда мноменклатура = Справочники.Номенклатура.НайтиПоНаименованию(СТрокаПФ.Наименование); КонецЕсли; Возврат мноменклатура; КонецФункции