Просто оставлю это здесь.
ЗУП 3.1.25.36 (возможно и другие)
Проблема :
Широко используется процедура
УчетРабочегоВремениРасширенный.СоздатьВТДанныеУчетаВремениИСостоянийСотрудников(МенеджерВременныхТаблиц, ТолькоРазрешенные, ПараметрыПолученияДанных) Экспорт
Данные по месяцам не соответствуют данным за квартал. То есть данные за 01.01.2023 - 31.03.2023 больше суммы за 01,02,03
Место ошибки:
УчетРабочегоВремениРасширенный.ЗапросВТДанныеУчетаВремениИСостоянийСотрудников
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| Сотрудники.Сотрудник,
| СостоянияСотрудников.Состояние,
| СостоянияСотрудников.Период,
| ВЫБОР
| КОГДА СостоянияСотрудников.ДействуетДо = ДАТАВРЕМЯ(1, 1, 1)
| ИЛИ СостоянияСотрудников.ДействуетДо > &ДатаОкончания
| ТОГДА ВЫБОР
| КОГДА &ОтноситьПереходящуюЧастьСменыКДнюНачала
| ТОГДА ДОБАВИТЬКДАТЕ(&ДатаОкончания, ДЕНЬ, 1)
| ИНАЧЕ &ДатаОкончания
| КОНЕЦ
| ИНАЧЕ СостоянияСотрудников.ДействуетДо
| КОНЕЦ,
| СостоянияСотрудников.ВидВремени
|ИЗ
| ВТСотрудникиМесяцы КАК Сотрудники //ВТСотрудникиМесяцы содержит 3 записи по сотруднику
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СостоянияСотрудников КАК СостоянияСотрудников
| ПО Сотрудники.ГоловнойСотрудник = СостоянияСотрудников.Сотрудник
//8123460++ при запросе за квартал задваиваются сотрудники с отклонениями
// | И (СостоянияСотрудников.Период > &ДатаНачала)
//нужно так
| И (СостоянияСотрудников.Период > Сотрудники.ДатаНачала)
//8123460--
| И Сотрудники.ДатаНачала <= СостоянияСотрудников.Период
| И (ДОБАВИТЬКДАТЕ(Сотрудники.ДатаОкончания, ДЕНЬ, 1) >= СостоянияСотрудников.Период)
| И (СостоянияСотрудников.Состояние <> ЗНАЧЕНИЕ(Перечисление.СостоянияСотрудника.Увольнение))
| И (СостоянияСотрудников.Состояние <> ЗНАЧЕНИЕ(Перечисление.СостоянияСотрудника.Работа))
| И (СостоянияСотрудников.Состояние <> ЗНАЧЕНИЕ(Перечисление.СостоянияСотрудника.РаботаВОтпускеПоУходуЗаРебенком))
Показать