=== Заполнение набора данных вручную === {{ :wiki:1c:ckd:аморт_по_месяцам.erf |Пример отчета}} \\ Метод нужен когда набор необходимо предварительно обработать программно перед выводом пользователю, схема компоновки помогает пользователю наложить отборы в привычном режиме. * Готовим набор данных, параметры по которым будет отбор должны иметь правильный тип Выбрать "" КАК Месяц, "" КАК АмортПермия, Значение(Справочник.ОсновныеСредства) КАК ОС, 0 Как СуммаБУ, 0 КАК СуммаНУ * Дорабатываем модуль отчета СтандартнаяОбработка = Ложь; Менеджер = Новый МенеджерВременныхТаблиц; // здесь будет наша вр с именем набора данных, по которой система будет строить отчет НастройкиОтчета = КомпоновщикНастроек.ПолучитьНастройки(); Параметры.Вставить("НачалоПериода", Неопределено); Параметры.Вставить("КонецПериода", Неопределено); Для Каждого Эл Из НастройкиОтчета.ПараметрыДанных.Элементы Цикл Если Строка(Эл.Параметр) = "Период" Тогда Параметры.НачалоПериода = Эл.Значение.ДатаНачала; Параметры.КонецПериода = Эл.Значение.ДатаОкончания; КонецЕсли; КонецЦикла; // реализация отбора, пример кода отбора по номенклатуре как в списке так и одиночное значение Для Каждого Эл Из НастройкиОтчета.Отбор.Элементы Цикл Если Строка(Эл.ЛевоеЗначение) = "Номенклатура" Тогда Если Эл.Использование Тогда Если ТипЗнч(Эл.ПравоеЗначение) = Тип("СписокЗначений") Тогда Параметры.ОтборНоменклатураМассив = ?(Эл.ПравоеЗначение.Количество() >0,Эл.ПравоеЗначение,Неопределено); ИначеЕсли ТипЗнч(Эл.ПравоеЗначение) = Тип("СправочникСсылка.Номенклатура") Тогда МассивОтбор = Новый Массив; МассивОтбор.Добавить(Эл.ПравоеЗначение); Параметры.ОтборНоменклатураМассив = ?(Эл.ПравоеЗначение <> Справочники.Номенклатура.ПустаяСсылка(),МассивОтбор,Неопределено); КонецЕсли; КонецЕсли; КонецЕсли; КонецЦикла; // // Установим тексты запросов наборов данных: // НаборыДанных = СхемаКомпоновкиДанных.НаборыДанных; // НаборДанныхОбъединениеСхемыКомпоновкиДанных // Основной набор НаборыДанных.ОсновнойНабор.Запрос = ВернутьТекстЗапросаОсновногоНабора(); // Склады НаборыДанных.Склады.Запрос = ВернутьТекстЗапросаНаборСклады(); // переопределим запрос набора данных с указанием временной таблицы // // КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.ПолучитьНастройки(), ДанныеРасшифровки,, Тип("ГенераторМакетаКомпоновкиДанных")); // Здесь его используем ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных,, ДанныеРасшифровки, Истина,, Менеджер); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ДокументРезультат); ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);