Иллюстрированный самоучитель по языку системы 1С:Предприятие

Операторы языка запросов

Применение конструкции "С … По …" приводит к тому, что выборка записей из журнала расчетов проводится по времени действия записей журнала расчетов, определяемых реквизитами журнала расчетов "ДатаНачала" и "ДатаОкончания", а не временем их ввода в журнал. Более подробно о двойственности временного представления журналов расчетов см. выше, в главе "Работа с Журналами расчетов".

Замечание
Работа запроса с журналами расчетов, с использованием конструкции "Период С … По …", аналогична выборке записей в журнале расчетов, организуемой при помощи метода журнала расчетов ВыбратьПериод. С другой стороны, запрос, использующий конструкцию "С … По …", аналогичен выборке, организуемой при помощи метода журнала расчетов ВыбратьЗаписи
.

Пример:

*

Процедура РасчЛистки()

Перем Запрос, Флаг;

Перем ДатаНач, ДатаКон;

ЖР = СоздатьОбъект{"ЖурналРасчетов.Зарплата");

Нач = ЖР.НачалоТекущегоПериода();

Кон = ЖР.КонецТекущегоПериода();

//Создание объекта типа Запрос

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

Флаг = Запрос.Выполнить(

"//{{ЗАПРОС(РасчЛистки)

|Период С ДатаНач По ДатаКон; // выборка по расчетным периодам!

|Рез = ЖурналРасчетов.Зарплата.Результат;

|Расч = ЖурналРасчетов.Зарплата.ВидРасч;

|Дни = ЖурналРасчетов.Зарплата.Дни;

|Сотр = ЖурналРасчетов.Зарплата.Объект;

|Группировка Сотр без групп;

|Группировка Расч;

|функция Сум = Сумма(Рез);

|функция Дней = Сумма(Дни);

|Условие(Рез о 0);

|"//}}ЗАПРОС

);

// ...

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

*

//Создание объекта типа Запрос

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

// ниже формируется текст запроса с выборкой по времени

// действия записей журнала расчетов, а не по расчетным периодам!

ТекстЗапроса =

"//{{ЗАПРОС(Сформировать)

|С ДатаНач По ДатаКон;

|Рез = ЖурналРасчетов.Зарплата.Результат;

|Сотр = ЖурналРасчетов.Зарплата.Объект;

|ПЖ = ЖурналРасчетов.Зарплата.ПериодРегистрации;

|Группировка Сотр без групп;

|Группировка ПЖ;

|Функция Сум = Сумма(Рез);

"//}}ЗАПРОС

;

Флаг = Запрос.Выполнить(ТекстЗапроса);

// ...
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.