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