2025-05-14 08:57:53 +05:00

3.1 KiB
Raw Blame History

title, slug
title slug
ВТ «Плановые начисления» сотрудников на дату примеры-сниппеты-бсп-и-типовые-зуп/вт-плановые-начисления-сотрудников-на-дату

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

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

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

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

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

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

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