Вывод на печать табличной части заказа и своих параметров в УНФ 1.6 с помощью встроенного механизма шаблонов КП и договоров

Напомню вкратце стандартный механизм работ Инфостарт ы с шаблоном MS Word в УНФ. Перейдя из раздела CRM в "Шаблоны КП и договоров", увидим рабочую область, как на рис. "Стандартный механизм". После выбора необходимых стандартных реквизитов из п.3 "Выбор параметров для добавления в файл" есть возможность распечатать КП (либо договор) с расставленными в нем по кнопке "Редактировать" параметрами. Шаблон будет распечатан с необходимым наполнением.

Обработ Инфостарт ку же произвольных полей, если таковые имеются в Вашем случае, необходимо прописать в программном коде расширения или в основной конфигурации(если Вы, также как и я, не знаете другого способа вывода таких полей)

Точка входа в добавление своего алгоритма обрабтехничскоеот Инфостарт ки произвольных параметров на момент создания этого функционала находилась в Общем модуле ШаблоныПечатиОфисныхДокументов в функции ПолучитьЗначенияНайденныхПараметров(). Чем более свежий релиз Вашей УНФ 1.6, тем более вероятность того, что точку входа в область описания параметров могли поменять разработ Инфостарт чики ПП. 

В нашем случае необходимо было выводить в шаблон печати заказа реквизиты табличной части и несколько произвольных реквизитов(рис. Доп параметры шаблона), для получения значения каждого из которых были разработ Инфостарт аны функции. К примеру, нужно было вывести сумму предоплаты под табличной частью. Для этого была описана функция, в которой запросом вытягивались нужные данные по оборотам регистра "РасчетыСПокупателями".

 
 Фрагмент программного кода по обрабтехничскоеот Инфостарт ке произвольных параметров

Функция ОписаниеПараметра_дс_запрос(ДополнительныеПараметры, ПараметрДокумента)
	
	ОписаниеНовогоПараметра = Неопределено;
	
	КоличествоСтрокВЗаказе = ДополнительныеПараметры.ЗаказПокупателя.Запасы.Количество();
	
	ТЗ_Запасы = ДополнительныеПараметры.ЗаказПокупателя.Запасы.Выгрузить();

	Если ПараметрДокумента = "дс_Запрос_ЗаказПокупателя_Предоплата" Тогда
		ОписаниеНовогоПараметра = ОписаниеПараметра_дс_Запрос_ЗаказПокупателя_Предоплата(ДополнительныеПараметры, ПараметрДокумента);
	ИначеЕсли ПараметрДокумента = "дс_Запрос_ЗаказПокупателя_ПредоплатаПрописью" Тогда
		ОписаниеНовогоПараметра = ОписаниеПараметра_дс_Запрос_ЗаказПокупателя_ПредоплатаПрописью(ДополнительныеПараметры, ПараметрДокумента);		

    //реквизиты табличной части обрабтехничскоеот Инфостарт аны по принципу ниже..
	ИначеЕсли Найти(ПараметрДокумента, "дс_тч_Номенклатура") Тогда	   		
		инд = Число(Сред(ПараметрДокумента, 19));
        Для индекс = инд по КоличествоСтрокВЗаказе цикл
	        инд = инд-1;
	        ОписаниеНовогоПараметра = ОписаниеПараметра_дс_Запрос_ЗаказПокупателя_ПараметрыТЧ_Запасы(инд, ТЗ_Запасы, ПараметрДокумента, "Номенклатура");                
	        Прервать;
		Конец пользователь Цикла;

    //. . .

 

По данной задаче есть нерешенная "проблема". Дело в том, что в шаблоне Word может не хватить строк для позиций заказа, а динамическое добавление строк в шаблоне не предусмотрено. 

Тестировалось на платфор обрабтехничскоеот Инфостарт киме 8.3.16 в феврале 2020г, на релизе УНФ (1.6.19.203).

Скриншоты


Стандартный механизм.jpg

Доп параметры шаблона.jpg

Файлы

Наименование Файл Версия Размер Кол. Скачив.
Шаблон печати с произвольными параметрами
.cfe 10,00Kb
9
.cfe 10,00Kb 9 Скачать

Полная версия

© ООО "Инфостарт", 2006-2023 www.infostart.ru