ЗУП 3 Кадровые данные сотрудника на каждый день периода

1. sybastik 05.05.21 02:41 Сейчас в теме
Добрый вечер, коллеги.

Есть задача - получить кадровые данные списку сотрудников за период на каждый день.

КадровыйУчет.КадровыеДанныеСотрудников подразумевает получение только на определенную дату. Не гонять же его в цикле.

Примеры, что находил тут, позволяют получать только кадровые изменения.
А мне нужен результат, аналогичный результату функции КадровыйУчет.КадровыеДанныеСотрудников в цикле..
Подскажите, как лучше сделать?
По теме из базы знаний
Найденные решения
2. burgomister 59 05.05.21 04:27 Сейчас в теме
https://forum.infostart.ru/forum9/topic8692/

Или вот:

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

     Запрос.УстановитьПараметр("НачДата", НачДата);
     Запрос.УстановитьПараметр("КонДата", КонДата);
     
     Выборка = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "НачИнтервала", "ВСЕ");
     Пока Выборка.Следующий() Цикл
         НоваяСтрока = тзИнтервалов.Добавить();
         НоваяСтрока.НачИнтервала = Выборка.НачИнтервала;
     КонецЦикла;
     
     Возврат  тзИнтервалов;
     
КонецФункции //ПолучитьТаблицуДатЗаПериод()
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. PhoenixAOD 62 05.05.21 07:19 Сейчас в теме
(1)В запросе, во временной таблице разбиваешь период по датам, и уже снюхиваешь с нужными тебе данными, погугли или тут поищи остатки на складах по датам
2. burgomister 59 05.05.21 04:27 Сейчас в теме
https://forum.infostart.ru/forum9/topic8692/

Или вот:

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

     Запрос.УстановитьПараметр("НачДата", НачДата);
     Запрос.УстановитьПараметр("КонДата", КонДата);
     
     Выборка = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "НачИнтервала", "ВСЕ");
     Пока Выборка.Следующий() Цикл
         НоваяСтрока = тзИнтервалов.Добавить();
         НоваяСтрока.НачИнтервала = Выборка.НачИнтервала;
     КонецЦикла;
     
     Возврат  тзИнтервалов;
     
КонецФункции //ПолучитьТаблицуДатЗаПериод()
Показать
4. sybastik 10.05.21 14:04 Сейчас в теме
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот