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

Подсчет времени в 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

Поиск