|
Помогите рассчитать плановую дату окончания работ | ☑ | ||
---|---|---|---|---|
0
EVGA
24.01.20
✎
11:18
|
Всем добрый день.
Задача рассчитать плановую дату окончания работ. Имеем: Дата время начала работ, Количество трудозатрат в часах (целое число, без минут). график пятидневка с 9 до 18. Нужно посчитать дату и время окончания работы с учетом графика (выходные и праздничные дни выкидываем). Наверняка в типовых есть подобная функция, но не могу найти, может кто-нибудь помочь? |
|||
1
p-soft
24.01.20
✎
11:30
|
есть такая штука, как производственный календарь.
но вообще, шпаргалки и списывать контрольную у соседа - это плохо! |
|||
2
8 bit
24.01.20
✎
11:31
|
(0) Ну поищи где-нибудь в ЗиК-е, где отпуск считается. Использование производственного календаря для определения выходных, праздничных и сокращенных дней тебе поможет.
|
|||
3
Deon
24.01.20
✎
11:34
|
(2) Сомневаюсь, что там есть расчет в часах с учетом времени смены
|
|||
4
piter3
24.01.20
✎
11:35
|
(3) Ну готовое вряд ли будет сразу
|
|||
5
8 bit
24.01.20
✎
11:35
|
(3) а надо в конкретный модуль и в конкретную строку носом его ткнуть? Пусть хоть палец о палец ударит для решения своей задачи.
|
|||
6
Deon
24.01.20
✎
11:38
|
(0) В любом случае, для решения задачи достаточно регистра ПроизводственныйКалендарь, который везде есть
|
|||
7
EVGA
24.01.20
✎
11:41
|
(5) Я знаю как производить расчеты по производственному календарю, но у меня его нет в конфигурации, а добавлять новые регистры нельзя. Приходится городить велосипед. Чтобы этого не делать, пытался найти процедуру подходящую. может в каких-нибудь конфах есть что-то подобное
|
|||
8
p-soft
24.01.20
✎
11:46
|
(7) без отдельной структуры данных не получится рассчитать рабочие дни.
в стандартных конфигурациях используется производственный календарь. |
|||
9
p-soft
24.01.20
✎
11:48
|
хотя, рабочие дни можно получить приблизительно, заполнив по данным открытых сервисов.
|
|||
10
Deon
24.01.20
✎
11:50
|
(7) Можно в цикле ломиться в интернет и спрашивать, рабочий день или нет https://isdayoff.ru/20200124. Но это, конечно, так себе вариант
|
|||
11
Кодер
24.01.20
✎
11:52
|
Пока ОстатокПлановыхЧасов > 0 ЦЫКЛ
Если ДеньНедели(ОчереднойДень) < 6 Тогда Секунд = 24*60*60; ПлановаяДата = ПлановаяДата + Секунд; ОчереднойДень = ПлановаяДата + Секунд; ОстатокПлановыхЧасов = Макс(0, ОстатокПлановыхЧасов - Секунд); КонецЦыкла; |
|||
12
EVGA
24.01.20
✎
11:52
|
(9) у меня есть итилиум, в нем подобная функция есть, но она с префиксом и вся перепиленная, считает неправильно. Написал свою, считает как следует, но это очередной костыль. хочу заменить эту ересь на что-то, что в типовых присутствует(если присутствует)
|
|||
13
dka80
24.01.20
✎
12:10
|
(11) переносы выходных дней тоже через "<6" проверять?
|
|||
14
dka80
24.01.20
✎
12:11
|
В производственном календаре выходные суббота, воскресенье да еще несколько праздничных дней. Занеси эти праздничные дни в свою обработку а далее как в (11)
|
|||
15
dka80
24.01.20
✎
12:13
|
Еще сокращенные дни нужно учесть. Но их тоже несколько
|
|||
16
EVGA
24.01.20
✎
12:17
|
Я понял, что не существует готового метода. либо с производственным календарем, либо свой костыль
|
|||
17
Кодер
24.01.20
✎
12:20
|
(16) Я тебе именно под твои требования набросал код функции. Если хочешь время рассчитывать, правь предпоследнюю строку. Для начала хватит, а нюансов там будет на диссертацию.
|
|||
18
piter3
24.01.20
✎
12:20
|
Еще локальные праздники территорий так сказать
|
|||
19
dka80
24.01.20
✎
12:22
|
(12) думаю в ERP есть. В модуле, где планирование происходит
|
|||
20
EVGA
24.01.20
✎
12:26
|
(17) Благодарю за помощь, но прямо под твоим кодом я написал, что я свою функцию сделал и что она считает так, как мне надо. Вопрос был не в том - как написать свой собственный костыль, а в том - где взять типовой механизм, если таковой имеется.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |