Каталог решений - [Памятка]. Формирование отчета СКД в управляемых формах. Нестандартные способы

[Памятка]. Формирование отчета СКД в управляемых формах. Нестандартные способы

[Памятка]. Формирование отчета СКД в управляемых формах. Нестандартные способы

В наличии

Пригодится при формировании отчета СКД нестандартным способом.

Категория:

Описание

1. Использование Набора данных и загрузка в него Таблицы значений.

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
	
	СтандартнаяОбработка = Ложь;	
	

	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	Номенклатура.Ссылка КАК Номенклатура
		|ИЗ
		|	Справочник.Номенклатура КАК Номенклатура";
	
	Результат = Запрос.Выполнить();
	
	Если Результат.Пустой() Тогда
		Сообщить("Данных нет!");
		Возврат;	
	КонецЕсли;
	
	ТЗ = Результат.Выгрузить();	
	НаборДанных = Новый Структура();
	НаборДанных.Вставить("Таблица", ТЗ);
		
	НастройкиСКД = КомпоновщикНастроек.ПолучитьНастройки();

	КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;

	Макет = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиСКД, ДанныеРасшифровки);

	ПроцессорКомпоновкиСКД = Новый ПроцессорКомпоновкиДанных;

	ПроцессорКомпоновкиСКД.Инициализировать(Макет,НаборДанных, ДанныеРасшифровки);

	ДокументРезультат.Очистить();

	ПроцессорВыводаСКД = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;

	ПроцессорВыводаСКД.УстановитьДокумент(ДокументРезультат);

	ПроцессорВыводаСКД.Вывести(ПроцессорКомпоновкиСКД);
		
КонецПроцедуры

Чтобы корректно отображались настройки отчета делаем следующее:

 

2. Пробежаться по сформированному Табличному документу. Получить ссылки на документ и отправить их на печать.
 

Для примера: В первом столбце сформированного отчета находятся документы заказы покупателя.

&НаКлиенте
Процедура ПакетнаяПечать(Команда)
	
	ВысотаТаблицы1 = ОтчетТабличныйДокумент.ВысотаТаблицы;
	ШиринаТаблицы1 = ОтчетТабличныйДокумент.ШиринаТаблицы;
	
	Массивобъектов = ПолучитьДокументы(ВысотаТаблицы1);

	Если Массивобъектов.Количество() > 1 Тогда
		Для Каждого Массив1 Из МассивОбъектов Цикл
			УправлениеПечатьюКлиент.ВыполнитьКомандуПечатиНаПринтер( 
			"Документ.ЗаказПокупателя", 
			"ПФ_MXL_Заказ", 
			Массив1, 
			);
		КонецЦикла;	
	КонецЕсли;	
		
КонецПроцедуры

&НаСервере
Функция ПолучитьДокументы(ВысотаТаблицы1)

	Массивобъектов = Новый Массив;
	
	Для Ном = 5 По ВысотаТаблицы1 Цикл
		ПолеКомпоновки = ОтчетТабличныйДокумент.Область("R"+СтрЗаменить(Ном," ","")+"C1");
		ОтчетДанныеРасшифровки1 = ПолучитьИзВременногоХранилища(ОтчетДанныеРасшифровки);
		Если ПолеКомпоновки.Расшифровка <> Неопределено И ТипЗнч(ОтчетДанныеРасшифровки1.Элементы[ПолеКомпоновки.Расшифровка].ПолучитьПоля()[0].Значение) = Тип("ДокументСсылка.ЗаказПокупателя") Тогда
			Док = ОтчетДанныеРасшифровки1.Элементы[ПолеКомпоновки.Расшифровка].ПолучитьПоля()[0].Значение;
			Если ЗначениеЗаполнено(Док) И Док.Проведен Тогда
				Массив1 = Новый Массив;
				Массив1.Добавить(Док);
				Массивобъектов.Добавить(Массив1);
			КонецЕсли;	
		КонецЕсли;
	КонецЦикла;
	
	Возврат Массивобъектов;

КонецФункции

3. Установить параметры в модуле отчета

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
	
	
	Параметр = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Номенклатура"));
	Если Параметр <> Неопределено Тогда
		Параметр.Значение = Справочники.Номенклатура.НайтиПоКоду("012354");
		Параметр.Использование = Истина;
	КонецЕсли;	
	
КонецПроцедуры

4. Заголовок в отчете СКД

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
   ЗначениеЗаголовка = КомпоновщикНастроек.Настройки.ПараметрыВывода.
   НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Заголовок"));
      
   ДатаДок = КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Получить(0).Значение.Дата;  
   ДатаДок = Формат(ДатаДок,  "ДФ=dd.MM.yyyy");
   
   ЗначениеЗаголовка.Значение="Остатки товаров на "+ДатаДок;
   ЗначениеЗаголовка.Использование = Истина;
КонецПроцедуры

 

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