0
Eeelena
22.02.19
✎
08:51
|
Здравствуйте.
Посоветуйте, пожалуйста как правильно построить запрос? Есть документ Ремонтный лист у него указывается дата начала и дата окончания ремонта. Мне нужно вычислить продолжительность часов на каждый день. Количество часов за весть период, это понятно, просто из одной даты вычесть другую. Но мне нужно именно на каждую дату периода. Например, дата начала ремонта 02.01.2019 08:00 окончание 05.01.2019 20:00 . Мне нужно получить количество часов на каждую дату периода ремонта. 02.01.2019 -16 часов
03.01.2019 -24 часа , 04.01.2019 -24 часа ,05.01.2019 -20 часов. Сам документ не делает никаких движений по регистрам, данные можно брать только из документа.
|
|
2
sqr4
22.02.19
✎
08:59
|
Получаешь таблицу дат, получаешь конец ремонта по принципу если КОнецДня(Дата) < Окончание Тогда КОнецДня(Дата) иначе Окончание.
а затем юзаешь разность дат.
И да, может пусть, этот док что то двигает)
|
|
3
catena
22.02.19
✎
09:09
|
Выбрать Регл.ДатаКалендаря как Д
Поместить т
из РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК Регл
где Регл.ДатаКалендаря МЕЖДУ НачалоПериода(&Дата1,День) И КонецПериода(&Дата2,день);
Выбрать
выбор когда началоПериода(&Дата1,день)=началоПериода(Д,день) тогда &Дата1 иначе началоПериода(Д,день) конец,
выбор когда конецПериода(&Дата2,день)=КонецПериода(Д,день) тогда &Дата2 иначе КонецПериода(Д,день) конец,
РазностьДат(выбор когда началоПериода(&Дата1,день)=началоПериода(Д,день) тогда &Дата1 иначе началоПериода(Д,день) конец
,выбор когда конецПериода(&Дата2,день)=КонецПериода(Д,день) тогда &Дата2 иначе ДобавитьКДате(КонецПериода(Д,день),секунда,1) конец
, час)
из т
|
|
4
dubraver
22.02.19
✎
09:12
|
Регл.ДатаКалендаря МЕЖДУ НачалоПериода(&Дата1,День) И КонецПериода(&Дата2,день)
Передавайте в параметры сразу началопериода и конец периода. Функции НачалоПериода и КонецПериода в запросе вносят доп. нагрузку на
|
|