2025-04-17 15:53:09 +05:00

3.1 KiB
Raw Blame History

title, slug
title slug
ВТ «Плановые начисления» сотрудников на дату primery-snippety-bsp-i-tipovye-zup/vt-planovye-nachisleniya-sotrudnikov-na-datu

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

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

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

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

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

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

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