Skip to content

Плановые начисления на дату

Сначала необходимо создать временную таблицу отборов, в которой будет 2 поля Сотрудник и Дата. Эти поля заполняем списком сотрудников, по которым необходимо получить начисления и дату актуальности. В примере ниже создается временная таблица ВТСотрудникиПериоды, в которую из формы через таблицу значений передаются сотрудники.

Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
ТЗ = РеквизитФормыВЗначение("Сотрудники", Тип("ТаблицаЗначений"));
Запрос.Текст =
"ВЫБРАТЬ
| Сотрудники.Сотрудник КАК Сотрудник,
| &Дата КАК Период
|ПОМЕСТИТЬ ВТСотрудникиПериоды
|ИЗ
| &ТЗ КАК Сотрудники";
Запрос.УстановитьПараметр("ТЗ", ТЗ);
Запрос.УстановитьПараметр("Дата", ТекущаяДатаСеанса());
Запрос.Выполнить();

Далее вызываем функцию общего модуля КадровыйУчетРасширенный.ЗапросВТПлановыеНачисленияСотрудников, которая вернет текст запроса для получения начислений:

ЗапросНачисления = КадровыйУчетРасширенный.ЗапросВТПлановыеНачисленияСотрудников(
, Истина // Только разрешенные
, "ВТНачисления" // Имя создаваемой ВТ
, "ВТСотрудникиПериоды" // Имя ВТ-отбора (создали выше)
, "Сотрудник, Период"); // Имя полей таблицы ВТ-отбора

Теперь полученный текст запроса необходимо передать в сам запрос. В менеджере временных таблиц такого запроса должна быть таблица отборов, которая была указана в качестве аргумента функции ЗапросВТПлановыеНачисленияСотрудников (в нашем случае ВТСотрудникиПериоды). Проще всего передать текст в уже имеющийся запрос:

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

В результате - Временная таблица со всеми начислениями сотрудников