Запрос по содержимому регистра

Запрос = СоздатьОбъект(“Запрос”);

// Проверка на дату, до точки актуальности (ТА)
Если (Дата1>ПолучитьДатуТА()) и (Дата2>ПолучитьДатуТА())
Тогда
Предупреждение(“Обе границы периода лежат за ТА !”+ “ Формирование невозможно !”,5);
Возврат;
КонецЕсли;

Если Дата2>=ПолучитьДатуТА() Тогда ТекстЗапроса=“Период с Дата1;”;
Иначе ТекстЗапроса=“Период с Дата1 по Дата2;”;
КонецЕсли;

// Основной текст запроса
ТекстЗапроса = ТекстЗапроса + “
|Реквизит=Регистр.ВидРегистра.Реквизит;
|Док = Регистр.ВидРегистра.ТекущийДокумент;
|Сумма=Регистр.ВидРегистра.Сумма;
|Количество=Регистр.ВидРегистра.Количество;
|Группировка Реквизит без групп;
|Группировка Док;
|Функция НачОст=НачОст(Количество);
|Функция Приход=Приход(Количество);
|Функция Расход=Расход(Количество);
|Функция КонОст=КонОст(Количество);
|Условие (Реквизит в ВыбРеквизит);”;

// Выполнение запроса
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Предупреждение(“Запрос по регистру не выполнился!”);
Возврат;
КонецЕсли;

// Группировки
Пока Запрос.Группировка(“Реквизит”) = 1 Цикл
Реквизит = Запрос.Реквизит;
Пока Запрос.Группировка(“Док”) = 1 Цикл
Док = Запрос.Док;
// Обработка полученных данных...
КонецЦикла;
КонецЦикла;

| опубликовано: 9 Май 2007, 17:54

Комментирование этой статьи закрыто