ЗУП 3.1 Как получить запросом больничные сотрудников

В собственных отчетах часто нужно получить количество дней больничных сотрудников, вот пример получения больничных из отчета СостоянияСотрудников.

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

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *