Каталог решений - Параметры для дополнительных отчетов и обработок БСП

Параметры для дополнительных отчетов и обработок БСП

Параметры для дополнительных отчетов и обработок БСП

В наличии

Еще один вариант передачи параметров во внешние обработки БСП. Параметры привязываются к командам дополнительной обработки и хранятся в элементе справочника.

Категория:

Описание

Данный подход подойдет для конфигураций с БСП. Реализацию разделим на три этапа.

Этап 1.  Внесение изменений в конфигурацию (неприятный этап). Добавление табличной части в справочник  "ДополнительныеОтчетыИОбработки"

Этап 2. Добавление табличной части на форму Дополнительной обработки с настройкой обработчиков событий для связки параметров с командами. Для этого можно использовать механизм расширений конфигурации и выглядеть например как на картинке.

Этап 3. Использование параметров непосредственно во внешней обработке. Рассмотрю на примере внешней печатной формы.

  1.  Добавим в обработку табличную часть аналогично созданной на  Этапе 1 за исключением реквизита "Идентификатор" (можно скопировать и удалить лишний реквизит)   
  2.   Получение параметров. В ВПФ их можно получить в  экспортной процедуре ПЕЧАТЬ.. Для этого нам нужна ссылка на  дополнительную обработку и имя команды. Ссылку получим из   ПараметрыВывода.ДополнительнаяОбработкаСсылка, а имя команды из КоллекцияПечатныхФорм. Полученные параметры добавим в созданную Табличную часть.. Пример процедуры ПЕЧАТЬ.      
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
	
	ПараметрыВывода.ДоступнаПечатьПоКомплектно = Истина;
	ДополнительнаяОбработкаСсылка = ПараметрыВывода.ДополнительнаяОбработкаСсылка;
	ПараметрыОтбора = Новый Структура;
	
	Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "СчетФактураТ") Тогда
		ПараметрыОтбора.Вставить("Идентификатор", "СчетФактураТ");
        НайденныеСтроки = ДополнительнаяОбработкаСсылка.Сити_Параметры.НайтиСтроки(ПараметрыОтбора);
		Если НайденныеСтроки.Количество() > 0 Тогда
			Для Каждого Строка Из НайденныеСтроки Цикл
				НовыйПараметр = Сити_Параметры.Добавить();
				НовыйПараметр.Имя      = Строка.Имя;
				НовыйПараметр.Значение = Строка.Значение;
			КонецЦикла;
		КонецЕсли;	
		
		УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм,"СчетФактураТ", "Счет-фактура",
		ПечатьСчетовФактур981(МассивОбъектов, ОбъектыПечати, "ТекстЗапроса"));
	ИначеЕсли УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "СчетФактураД") Тогда
		//
	ИначеЕсли УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "СчетФактура981") Тогда
		//
	КонецЕсли;
	
КонецПроцедуры
  1. Использование параметров в печатной форме.
Процедура ВывестиСчетФактуруВТабличныйДокумент(ТабДокумент, Макет, ВыборкаСФ, ЭтоУниверсальныйПередаточныйДокумент = Ложь)
	
    //.....
    //..... 
	
	ОбластьМакета = Макет.ПолучитьОбласть("Подвал");
	
    //Передача параметров в Табличный документ 
	СтрутураПараметровВПФ = Новый Структура;	
	Для Каждого Строка Из Сити_Параметры Цикл
		СтрутураПараметровВПФ.Вставить(строка.Имя, Строка.Значение);
	КонецЦикла;	
    ОбластьМакета.Параметры.Заполнить(СтрутураПараметровВПФ);
	
	ТабДокумент.Вывести(ОбластьМакета);
	
КонецПроцедуры

 

has been added to your cart:
Оформление заказа