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