Tapas77789
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору //******************************************* // Процедура генерации запроса Сформировать. // Функция ПолучитьНакладные() Перем Запрос, ТекстЗапроса, ИтТМЦ; ИтТМЦ = СоздатьОбъект("ТаблицаЗначений"); ИтТМЦ.НоваяКолонка("Культура"); ИтТМЦ.НоваяКолонка("Урочище"); ИтТМЦ.НоваяКолонка("ТМЦ"); ИтТМЦ.НоваяКолонка("Кво"); Нач = НачПериода; Кон = НачПериода; Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(Сформировать) |Период с Нач по Кон; |МестоХранения = Документ.ПеремещениеУрочище.МестоХранения; |Культура = Документ.ПеремещениеУрочище.Культура; |Урочище = Документ.ПеремещениеУрочище.Урочище; |ТМЦ = Документ.ПеремещениеУрочище.ТМЦ; |КвоТМЦ = Документ.ПеремещениеУрочище.Кво; |Функция КвоСумма = Сумма(КвоТМЦ); |Группировка МестоХранения без групп; |Группировка Культура без групп; |Группировка Урочище без групп; |Группировка ТМЦ без групп; |Условие(МестоХранения = ВыбМестоХранения); |"//}}ЗАПРОС ; // Если ошибка в запросе, то выход из процедуры Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат ИтТМЦ; КонецЕсли; Пока Запрос.Группировка(1) = 1 Цикл // Заполнение полей МестоХранения Пока Запрос.Группировка(2) = 1 Цикл // Заполнение полей Культура Пока Запрос.Группировка(3) = 1 Цикл // Заполнение полей Урочище Пока Запрос.Группировка(4) = 1 Цикл // Заполнение полей ТМЦ ИтТМЦ.НоваяСтрока(); ИтТМЦ.Культура = Запрос.Культура; ИтТМЦ.Урочище = Запрос.Урочище; ИтТМЦ.ТМЦ = Запрос.ТМЦ; ИтТМЦ.Кво = Запрос.КвоСумма; КонецЦикла; КонецЦикла; КонецЦикла; КонецЦикла; Возврат ИтТМЦ; КонецФункции Процедура Сформировать() ИтТМЦ = ПолучитьНакладные(); ИтТМЦ.Свернуть("Культура,Урочище,ТМЦ","Кво"); ИтТМЦ.Сортировать("Культура+,Урочище+,ТМЦ+"); ИтКультура = СоздатьОбъект("ТаблицаЗначений"); ИтУрочище = СоздатьОбъект("ТаблицаЗначений"); ИтТМЦ.Выгрузить(ИтУрочище); ИтУрочище.Свернуть("Культура,Урочище","Кво"); ИтУрочище.Сортировать("Культура+,Урочище+"); ИтТМЦ.Выгрузить(ИтКультура); ИтКультура.Свернуть("Культура","Кво"); ИтКультура.Сортировать("Культура+"); Таб = СоздатьОбъект("Таблица"); Таб.ВывестиСекцию("Шапка"); ИтКультура.ВыбратьСтроки(); Пока ИтКультура.ПолучитьСтроку() = 1 Цикл Таб.ВывестиСекцию("Культура"); ИтУрочище.ВыбратьСтроки(); Пока ИтУрочище.ПолучитьСтроку() = 1 Цикл Если ИтУрочище.Культура = ИтКультура.Культура Тогда Таб.ВывестиСекцию("Урочище"); КонецЕсли; ИтТМЦ.ВыбратьСтроки(); Пока ИтТМЦ.ПолучитьСтроку() = 1 Цикл Если (ИтТМЦ.Культура = ИтКультура.Культура) И (ИтТМЦ.Урочище = ИтУрочище.Урочище) Тогда Таб.ВывестиСекцию("ТМЦ"); КонецЕсли; КонецЦикла; КонецЦикла; КонецЦикла; Таб.Защита(1); Таб.Показать("Накладні"); КонецПроцедуры Процедура ПриОткрытии() НачПериода = ТекущаяДата(); КонецПроцедуры | Всего записей: 70 | Зарегистр. 26-05-2008 | Отправлено: 12:17 29-02-2016 | Исправлено: Tapas77789, 12:43 29-02-2016 |
|