В начало

 «Остатки товаров» с запросом

 

            Есть регистр накопления «ОстаткиТоваров», нужно сформировать отчет.

            В данном отчете макет и запрос к регистру сведений сделаем сами.

Макет отчета «»ОстаткиТоваров» имеет 2 области: Шапка и СтрокаТаблицы. В шапке находится строка типа шаблон для ввода даты отчета. В области «СтрокаТаблицы» имеются 2 поля типа параметр: Номенклатура и Количество.

Рис. 1. Макет отчета «ОстаткиТоваров»

 

            На форме отчета расположены следующие реквизиты: «ДатаОтчета» с типом Дата и «ТабДок» типа Табличный документ. На закладке «Команды» свойств формы отчета создана команда «Сформировать».

Рис. 2. Форма отчета «ОстаткиТоваров»

 

            В модуле формы нужно написать пару процедур, одну с запросом НаСервереБезКонтекста, другую чтобы вызвать первую.

 

Листинг 1. Процедуры в модуле формы

&НаСервереБезКонтекста

Процедура СформироватьОтчет (ТабДок, ДатаОтчета)

            Макет = Отчеты.ОстаткиТоваров.ПолучитьМакет ("Макет");

            Область_Ш = Макет.ПолучитьОбласть("Шапка");

            Область_С = Макет.ПолучитьОбласть("СтрокаТаблицы");

           

            ТабДок.Очистить();

           

            Область_Ш.Параметры.ДатаОтчета = ДатаОтчета;

            ТабДок.Вывести(Область_Ш);

           

            Запрос = Новый Запрос;

            Запрос.Текст = "ВЫБРАТЬ

                            |       Номенклатура,

                            |       КоличествоОстаток

                            |ИЗ

                            |       РегистрНакопления.ОстаткиТоваров.Остатки(&ДатаОтчета, )";

            Запрос.УстановитьПараметр("ДатаОтчета", ДатаОтчета);                                            

            Результат = Запрос.Выполнить();

            Выборка = Результат.Выбрать();

            Пока Выборка.Следующий() Цикл

                        Область_С.Параметры.Номенклатура = Выборка.Номенклатура;

                        Область_С.Параметры.Количество = Выборка.КоличествоОстаток;

                        ТабДок.Вывести(Область_С);

            КонецЦикла;   

           

КонецПроцедуры

 

 

&НаКлиенте

Процедура Сформировать(Команда)

            СформироватьОтчет(ТабДок, ДатаОтчета);

КонецПроцедуры

 

            В результате должен получиться корявенький отчет как на рис. 3, который нужно еще дорабатывать и дорабатывать.

 

Рис. 3. Сам отчет