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