ЗУП 3.1 Как получить запросом больничные сотрудников
В собственных отчетах часто нужно получить количество дней больничных сотрудников, вот пример получения больничных из отчета СостоянияСотрудников.
ВЫБРАТЬ РАЗРЕШЕННЫЕ
СостоянияСотрудников.Период КАК Период,
СостоянияСотрудников.ДействуетДо КАК ДействуетДо,
СостоянияСотрудников.Сотрудник КАК Сотрудник,
ВЫБОР
КОГДА СостоянияСотрудников.ВидВремени = ЗНАЧЕНИЕ(Справочник.ВидыИспользованияРабочегоВремени.ПустаяСсылка)
ТОГДА СостоянияСотрудников.Состояние
ИНАЧЕ СостоянияСотрудников.ВидВремени
КОНЕЦ КАК Состояние,
ВЫБОР
КОГДА СостоянияСотрудников.Период > &НачалоПериода
ТОГДА СостоянияСотрудников.Период
ИНАЧЕ &НачалоПериода
КОНЕЦ КАК НачалоПодсчета,
ВЫБОР
КОГДА СостоянияСотрудников.ДействуетДо < &ОкончаниеПериода
И СостоянияСотрудников.ДействуетДо <> ДАТАВРЕМЯ(1, 1, 1)
ТОГДА СостоянияСотрудников.ДействуетДо
ИНАЧЕ &ОкончаниеПериода
КОНЕЦ КАК ОкончаниеПодсчета,
СостоянияСотрудников.ОкончаниеПредположительно КАК ОкончаниеПредположительно
ИЗ
РегистрСведений.СостоянияСотрудников КАК СостоянияСотрудников
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Сотрудники КАК Сотрудники
ПО (СостоянияСотрудников.Сотрудник = Сотрудники.Ссылка)
ГДЕ
СостоянияСотрудников.Период < &ОкончаниеПериода
И (СостоянияСотрудников.ДействуетДо >= &НачалоПериода
ИЛИ СостоянияСотрудников.ДействуетДо = ДАТАВРЕМЯ(1, 1, 1))
И СостоянияСотрудников.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияСотрудника.Болезнь)