1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
// Часто при создании дополнительных расчетов необходимо в расчете это получить &НаСервере Функция СреднемесячноеКоличествоЧасов(Год) Запрос = Новый Запрос; Запрос.УстановитьПараметр("Год",Год); Запрос.УстановитьПараметр("РабочийДень", Перечисления.ВидыДнейПроизводственногоКалендаря.Рабочий); Запрос.УстановитьПараметр("ПредпраздничныйДень", Перечисления.ВидыДнейПроизводственногоКалендаря.Предпраздничный); Запрос.Текст = "ВЫБРАТЬ | СУММА(ВЫБОР | КОГДА РегламентированныйПроизводственныйКалендарь.ВидДня =РабочийДень | ТОГДА 1 | ИНАЧЕ 0 | КОНЕЦ) КАК ЧислоРабочихДней, | СУММА(ВЫБОР | КОГДА РегламентированныйПроизводственныйКалендарь.ВидДня =ПредпраздничныйДень | ТОГДА 1 | ИНАЧЕ 0 | КОНЕЦ) КАК ЧислоПредпраздничныхДней |ИЗ | РегистрСведений.ДанныеПроизводственногоКалендаря КАК РегламентированныйПроизводственныйКалендарь |ГДЕ | РегламентированныйПроизводственныйКалендарь.Год =Год"; ВыборкаКалендаря = Запрос.Выполнить().Выбрать(); Если ВыборкаКалендаря.Следующий() тогда ЧислоРабочихДнейВГоду = ?(ВыборкаКалендаря.ЧислоРабочихДней = NULL, 0, ВыборкаКалендаря.ЧислоРабочихДней); ЧислоПредпраздничныхДнейВГоду = ?(ВыборкаКалендаря.ЧислоПредпраздничныхДней= NULL, 0, ВыборкаКалендаря.ЧислоПредпраздничныхДней); Иначе ЧислоРабочихДнейВГоду = 0; ЧислоПредпраздничныхДнейВГоду = 0; КонецЕсли; СреднеМесячное = Окр((ЧислоРабочихДнейВГоду*8+ЧислоПредпраздничныхДнейВГоду*7)/12,2); Возврат СреднеМесячное; КонецФункции |