Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
29 мар 2024, 13:06

Подсчет времени в 1с

Автор demon3, 23 янв 2014, 12:51

0 Пользователей и 1 гость просматривают эту тему.

demon3

Задача такова. нужно высчитать время между заполнениями двух реквизитов. тоесть один реквизит заполнен,время пошло,второй заполнен время остановилось . и чтобы время считалось не календарное а к примеру рабочее,если прошел день,то посчиталось 8 часов к примеру а не 24 часа. подскажите,как это реализовать?
Помог ответом, скажи спасибо

Vit1501

можно сделать подобие регистра сведений "производственный календарь" (как в типовых конфах) фиксировать время заполнение первого реквизита, время заполнения второго реквизита, а потом запросом посчитать количество рабочих часов ( ресурс регистра производственный календарь) в интервале между этими двумя датами

demon3

Цитата: Vit1501 от 23 янв 2014, 13:38
можно сделать подобие регистра сведений "производственный календарь" (как в типовых конфах) фиксировать время заполнение первого реквизита, время заполнения второго реквизита, а потом запросом посчитать количество рабочих часов ( ресурс регистра производственный календарь) в интервале между этими двумя датами

ну сделал я регистр сведений с одним ресурсов- рабочий день,тип число. поставил 8 часов,регистр независимый без периодичности. зафиксировал время заполнения реквизита.  получилось к примеру 22 часа. какое условие щас сделать чтобы подсчитать количесто рабочего времени? должно получиться 8 часов а не 22 часа к примеру
Помог ответом, скажи спасибо

Vit1501

вообщето в типовых этот регистр состоит не только из одного ресурса. Я бы предложил вариант периодический регистр с одним ресурсом РабочихЧасов ( тип число). Регистр изначально заполняется например на год вперед. На каждый день указывается количество рабочих часов. Тогда в запросе можно будет выбрать записи у которых период лежит в определенном интервале и просуммировать ресурс
Добавлено: 23 янв 2014, 14:46


А если еще ввести измерение График, то можно будет получать количество рабочих часов в разрезе разных графиков работ))) Включите фантазию))

demon3

я не понимаю, как высчитать количество рабочих часов с точки зрения кода. кстати отчет по часам делается на скд. к примеру затрачено времени 22 часа.как мне высчитать что по факту всего 8 часов затрачено?регистр я сделал и ввел значения на год вперед. но он тут ниче не дает!подскажите дураку)
Помог ответом, скажи спасибо

Vit1501

Пример заполнения регистра:
Период   количествоРабочихЧасов
01.01.2014   
02.01.2014   
03.01.2014   
04.01.2014   
05.01.2014   
06.01.2014   
07.01.2014   
08.01.2014   
09.01.2014   8
10.01.2014   8
11.01.2014   
12.01.2014   
13.01.2014   8
14.01.2014   8
15.01.2014   8
16.01.2014   
17.01.2014   
18.01.2014   8
19.01.2014   8
20.01.2014   8
21.01.2014   8
22.01.2014   8
Тепрь запросом выбери все записи из этого регистра где период лежит в интервале  между ДатаЗаполненияПервогоРеквизита и ДатаЗаполненияВторогоРеквизита числом и в итогах запроса проссумируй поле Количество рабочик часов и обработай результат запроса. Мне осталось тебе только готовый код выложить...

demon3

Цитата: Vit1501 от 23 янв 2014, 16:15
Пример заполнения регистра:
Период   количествоРабочихЧасов
01.01.2014   
02.01.2014   
03.01.2014   
04.01.2014   
05.01.2014   
06.01.2014   
07.01.2014   
08.01.2014   
09.01.2014   8
10.01.2014   8
11.01.2014   
12.01.2014   
13.01.2014   8
14.01.2014   8
15.01.2014   8
16.01.2014   
17.01.2014   
18.01.2014   8
19.01.2014   8
20.01.2014   8
21.01.2014   8
22.01.2014   8
Тепрь запросом выбери все записи из этого регистра где период лежит в интервале  между ДатаЗаполненияПервогоРеквизита и ДатаЗаполненияВторогоРеквизита числом и в итогах запроса проссумируй поле Количество рабочик часов и обработай результат запроса. Мне осталось тебе только готовый код выложить...
обработать то я обработаю. а потом то что делать? количество часов я получил в документе между заполнениями реквизитов. из запроса получил сумму. дальше как высчитать? код мне писать не надо,просто подсказкой  помогите
Помог ответом, скажи спасибо

Vit1501

Задача стоит расчитать количество рабочих часов между ДатаЗаполненияПервогоРеквизита И ДатаЗаполненияВторогоРеквизита ? Если да, то результат запроса и будет искомое количество часов. Предположим ДатаЗаполненияПервогоРеквизита = 09.01.2014, ДатаЗаполненияВторогоРеквизита = 13.01.2014 Тогда запрос вернет 24 ( 9 число 8 часов, 10 число 8 часов и 13 число 8 часов) часов. Что и требовалось получить

demon3

Цитата: Vit1501 от 23 янв 2014, 17:31
Задача стоит расчитать количество рабочих часов между ДатаЗаполненияПервогоРеквизита И ДатаЗаполненияВторогоРеквизита ? Если да, то результат запроса и будет искомое количество часов. Предположим ДатаЗаполненияПервогоРеквизита = 09.01.2014, ДатаЗаполненияВторогоРеквизита = 13.01.2014 Тогда запрос вернет 24 ( 9 число 8 часов, 10 число 8 часов и 13 число 8 часов) часов. Что и требовалось получить
это понятно все. задача немного в другом. имеется два реквизита. когда первый заполняется, ставится текущая дата,когда второй заполняется,ставится текущая дата, а потом из одно даты вычитается другая функцией РАЗНОСТЬДАТ, и выводится результат в виде количества часов! и вот,нужно чтобы количество часов вычислялось не из 24 часового дня,а из рабочего дня,тоесть 8 часового дня. тоесть, если получился результат РазностьюДат 23 часа,между заполнением реквизитов,то должно выводиться не 23 часа,а сколько часов потратилось во время часового дня,тоесть программа должна вывести результат к примеру 8 часов,а не 23. вот что нужно реализовать,вот  это и спрашиваю,как это сделать!?дайте подсказку)
Помог ответом, скажи спасибо

Vit1501

ну тогда в регистре ПроизводственныйКалендарь вместо ресурса КоличествоРабочихЧасов сделай два ресурса ДанаНачалаСмены (тип дата и время) и ДатаОкончанияСмены (тип дата и время) и также запросом можно получить разностьдат только там нужно подумать какие даты подставлять (если И ДатаЗаполненияПервогоРеквизита И ДатаЗаполннияВторогоРеквизита Лежат между ДатаНачалаСмены и ДатаОкончанияСМены то тебе нужна разность дат ДатаНачалаСМены и ДатыОкончанияСмены. Если Обе не лежат, тогда разностьдат датаНачалаСмены и ДатаОкончанияСМены и т д

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск