|
Не срабатывает метод ТребуетсяВыполнение | ☑ | ||
---|---|---|---|---|
0
fdv_83
17.02.21
✎
14:16
|
Здравствуйте, уважаемые форумчане.
Возникла такая проблема. В конфигурации имеется справочник "Графики обслуживания". В этом справочнике записывается расписание, по которому должно происходить обслуживание. Имеется также обработка, которая, согласно расписанию, создаёт документы на обслуживание. В ней используется следующий метод: ТребуетсяВыполнение = Расписание.ТребуетсяВыполнение(День,ПоследняяДатаВыполнения,); Но этот метод возвращает Истина на определённую дату (15 ноября). На остальные даты, на которые настроены расписания, возвращается Ложь. Не могу понять в чём проблема. Может есть какой-то нюанс? |
|||
1
НоваяВолна
17.02.21
✎
14:22
|
(0) Синтаксис:
ТребуетсяВыполнение(<ДатаДляПроверки>, <ДатаНачалаПоследнегоЗапуска>, <ДатаЗавершенияПоследнегоЗапуска>) Параметры: <ДатаДляПроверки> (необязательный) Тип: Дата. Дата, для которой нужно проверить расписание. Если дата не задана, используется текущая дата. |
|||
2
fdv_83
17.02.21
✎
14:30
|
(1) Этот момент я проверял. Туда передаётся дата. Ниже выдержка из отладки.
Расписание один день, по месяцам [Ноябрь ], 2-го числа месяца, 3-й день недели в месяце; один раз в день РасписаниеРегламентногоЗадания День 02.11.2021 0:00:00 Дата ТребуетсяВыполнение Ложь Булево ПоследняяДатаВыполнения 01.01.0001 0:00:00 Дата |
|||
3
fisher
17.02.21
✎
14:47
|
Могу предположить, что метод вычисляет только следующее выполнение относительно указанного предыдущего. Но это неточно.
|
|||
4
fisher
17.02.21
✎
14:49
|
Попробуй не передавать второй параметр.
|
|||
5
fisher
17.02.21
✎
14:58
|
15 ноября какого года? Но все равно не очень похоже на "2-е число месяца".
|
|||
6
fdv_83
17.02.21
✎
15:01
|
(5) Если я расписание поменяю на 15 ноября, то оно пройдёт
|
|||
7
fdv_83
17.02.21
✎
15:02
|
(4) Проверил. Но результат тот же.
|
|||
8
fisher
17.02.21
✎
15:03
|
Вопрос, по сути, стоит так: почему 15 ноября Истина. По-идее, вообще не должно выполняться никогда. Ну, вернее должно только когда 2 ноября будет средой. Если я правильно понял описание расписания :)
|
|||
9
fisher
17.02.21
✎
15:04
|
Хотя нет. Что такое "3-й день недели в месяце" - я не понимаю.
|
|||
10
fdv_83
17.02.21
✎
15:10
|
(8) Решилось. В расписании сделал реквизит день недели в месяце равным 0 и заработало.
|
|||
11
fisher
17.02.21
✎
15:12
|
Если я правильно понял описание ИТС, которое тоже невнятное, то "день недели в месяце" имеет смысл при указании выполнения по дням недели. Чтобы можно было сделать расписание типа "каждый второй понедельник месяца". Как оно срабатывало в твоем случае - решительно непонятно.
|
|||
12
fdv_83
17.02.21
✎
15:36
|
В моём случае "каждый третий понедельник месяца". Как раз 15 ноября 2021 - это третий понедельник месяца. Кажись, как то так.
|
|||
13
fisher
17.02.21
✎
15:55
|
(12) Так у тебя ж в (2) условие "2-го числа месяца" и ничего про понедельник?
|
|||
14
fdv_83
17.02.21
✎
16:17
|
(13) 2-го числа месяца - это 2 ноября (к примеру), 3-й день недели в месяце - дата должна принадлежать третьей неделе месяца. Поэтому 2 ноября 2021 не попадало под эти два условия, а 15 ноября 2021 попадало под эти условия.
|
|||
15
fisher
17.02.21
✎
17:00
|
(14) Я туплю, видимо. Каким образом 15 ноября 2021 попадает под условие "2-е число месяца"? Оно же 15-е? :)
|
|||
16
fdv_83
17.02.21
✎
17:12
|
(15) Я ранее писал, что, если расписание поменять на 15 ноября, то оно срабатывает (6)
|
|||
17
Йохохо
17.02.21
✎
17:21
|
"3-й день недели в месяце - дата должна принадлежать третьей неделе месяца" у меня был сосед, который, когда курил травку, всегда читал Ландавшица
|
|||
18
fisher
17.02.21
✎
17:43
|
(16) Дошло, где я затупил. Я (0) понял так, что когда ты расписание из (2) проверяешь на дате 15 ноября, то ТребуетсяВыполнение возвращает Истину. И на этом моменте выпал в осадок :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |