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