HelpF.pro

Как получить Норму Дней и Норму Часов

Код 1C v 8.х
  // Отбирать нужно за 1 месяц
// Выводит: Сотрудник, Организация, Норма в часах, норма в днях
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| НАЧАЛОПЕРИОДА(Норма.ДатаКалендаря, МЕСЯЦ) КАК ПериодДействия,
| СотрудникиОрганизаций.Ссылка КАК Сотрудник,
| СотрудникиОрганизаций.ОбособленноеПодразделение КАК Организация,
| СУММА(ВЫБОР
| КОГДА Норма.ДатаКалендаря >= СотрудникиОрганизаций.ДатаПриемаНаРаботу
| И Норма.ДатаКалендаря <= СотрудникиОрганизаций.ДатаУвольнения
| ИЛИ Норма.ДатаКалендаря >= СотрудникиОрганизаций.ДатаПриемаНаРаботу
| И СотрудникиОрганизаций.ДатаУвольнения = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
| ТОГДА Норма.НормаВЧасах
| ИНАЧЕ 0
| КОНЕЦ) КАК НормаЧасов,
| СУММА(ВЫБОР
| КОГДА Норма.ДатаКалендаря >= СотрудникиОрганизаций.ДатаПриемаНаРаботу
| И Норма.ДатаКалендаря <= СотрудникиОрганизаций.ДатаУвольнения
| ИЛИ Норма.ДатаКалендаря >= СотрудникиОрганизаций.ДатаПриемаНаРаботу
| И СотрудникиОрганизаций.ДатаУвольнения = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
| ТОГДА Норма.НормаВДнях
| ИНАЧЕ 0
| КОНЕЦ) КАК НормаДней
|ИЗ
| (ВЫБРАТЬ
| СУММА(ВЫБОР
| КОГДА Норма.ВидДня = ЗНАЧЕНИЕ(Перечисление.ВидыДнейПроизводственногоКалендаря.Рабочий)
| ТОГДА 8
| ИНАЧЕ ВЫБОР
| КОГДА Норма.ВидДня = ЗНАЧЕНИЕ(Перечисление.ВидыДнейПроизводственногоКалендаря.Предпраздничный)
| ТОГДА 7
| ИНАЧЕ 0
| КОНЕЦ
| КОНЕЦ) КАК НормаВЧасах,
| Норма.ДатаКалендаря КАК ДатаКалендаря,
| ВЫБОР
| КОГДА Норма.ВидДня = ЗНАЧЕНИЕ(Перечисление.ВидыДнейПроизводственногоКалендаря.Рабочий)
| ТОГДА 1
| ИНАЧЕ ВЫБОР
| КОГДА Норма.ВидДня = ЗНАЧЕНИЕ(Перечисление.ВидыДнейПроизводственногоКалендаря.Предпраздничный)
| ТОГДА 1
| ИНАЧЕ 0
| КОНЕЦ
| КОНЕЦ КАК НормаВДнях
| ИЗ
| РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК Норма
| ГДЕ
| Норма.ДатаКалендаря МЕЖДУ &НачалоПериода И &КонецПериода
|
| СГРУППИРОВАТЬ ПО
| Норма.ДатаКалендаря,
| ВЫБОР
| КОГДА Норма.ВидДня = ЗНАЧЕНИЕ(Перечисление.ВидыДнейПроизводственногоКалендаря.Рабочий)
| ТОГДА 1
| ИНАЧЕ ВЫБОР
| КОГДА Норма.ВидДня = ЗНАЧЕНИЕ(Перечисление.ВидыДнейПроизводственногоКалендаря.Предпраздничный)
| ТОГДА 1
| ИНАЧЕ 0
| КОНЕЦ
| КОНЕЦ) КАК Норма,
| Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций
|
|СГРУППИРОВАТЬ ПО
| НАЧАЛОПЕРИОДА(Норма.ДатаКалендаря, МЕСЯЦ),
| СотрудникиОрганизаций.Ссылка,
| СотрудникиОрганизаций.ОбособленноеПодразделение";
Запрос.УстановитьПараметр("КонецПериода", Дата("31.05.2012 0:00:00"));
Запрос.УстановитьПараметр("НачалоПериода", Дата("01.05.2012 0:00:00"));

Результат = Запрос.Выполнить();
Выборка = Результат.Выгрузить();
Для каждого СтрокаТЗ Из Выборка Цикл
КонецЦикла;

Опубликовано на сайте: https://HelpF.pro
Прямая ссылка: https://HelpF.pro/faq8/view/1311.html