Есть простенький отчет по взаиморасчетам с контрагентами. Справочник контрагентов был одноуровневый, сейчас понадобилось сделать 2-уровневым. Что дописать в текст Модуля, чтобы отчет при выборе папки выбирал котрагентов только из нее?
В диалоге КАгент - Справочник.Контрагенты
Цитата:
Процедура Взаиморасчеты()
Перем Запрос, ТекстЗапроса, Таб,Опл;
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Взаиморасчеты)
|Период с ВыбНачПериода по ВыбКонПериода;
|
|Контрагент = Регистр.Взаиморасчеты.Контрагент;
|Сумма = Регистр.Взаиморасчеты.Сумма;
|Функция СуммаНачОст = НачОст(Сумма);
|Функция СуммаПриход = Приход(Сумма);
|Функция СуммаРасход = Расход(Сумма);
|Функция СуммаКонОст = КонОст(Сумма);
|Группировка Контрагент без групп;
|"//}}ЗАПРОС
;
Если Дет=0 Тогда
ТекстЗапроса=ТекстЗапроса+"Группировка Документ;";
КонецЕсли;
Если КАгент.Выбран()=1 Тогда
ТекстЗапроса=ТекстЗапроса+"Условие (Контрагент=КАгент);";
КонецЕсли;
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Взаиморасчеты");
Таб.ВывестиСекцию("Заголовок");
Состояние("Заполнение выходной таблицы...");
Пока Запрос.Группировка("Контрагент") = 1 Цикл
Таб.ВывестиСекцию("Контрагент");
Если Дет=0 Тогда
Пока Запрос.Группировка("Документ") = 1 Цикл
Таб.ВывестиСекцию("Документ");
КонецЦикла;
КонецЕсли;
КонецЦикла;
// Заполнение полей "Итого"
Таб.ВывестиСекцию("Итого");
// Вывод заполненной формы
Таб.ТолькоПросмотр(1);
Таб.Показать("Взаиморасчеты","");
КонецПроцедуры
ВыбНачПериода=ТекущаяДата();
ВыбКонПериода=ТекущаяДата();
|