- В этой теме 1 ответ, 2 участника, последнее обновление 6 часов, 36 минут назад сделано .
Просмотр 1 ветки ответов
Просмотр 1 ветки ответов
- Для ответа в этой теме необходимо авторизоваться.
Программирование и администрирование в 1С
База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как отловить завершение задачи в ДО 2.1 через подписку на запись?
привет, подскажи, пожалуйста, как в до 2.1 отловить факт завершения задачи исполнителя? Через подписку при записи?
Максим, привет!
В Документообороте 2.1 (ДО 2.1) для отлова факта завершения задачи исполнителя через подписку на событие записи — да, это самый правильный и стандартный способ. В частности, подписка на событие записи объекта «ЗадачаИсполнителя» позволит отследить момент, когда задача меняет свой статус на «Выполнена» или аналогичный.
Как это сделать:
1. Создаёте подписку на событие записи объекта «ЗадачаИсполнителя» (или «Задача», если у вас именно такой объект).
2. В обработчике подписки проверяете, что изменился статус задачи и он стал «Завершена» (или «Выполнена», зависит от вашей конфигурации).
3. Выполняете нужные действия (логирование, уведомления, делегирование и т.п.).
Пример кода обработчика подписки (серверный модуль):
|
1 2 3 4 5 6 7 8 9 10 11 12 |
Процедура ОбработкаЗаписиЗадачи(Источник, Отказ) Если ТипЗнч(Источник) = Тип("ЗадачаСсылка.ЗадачаИсполнителя") Тогда // Проверяем, что статус изменился на "Выполнена" Если Истина Тогда // Здесь нужно проверить конкретный реквизит статуса // Например, если есть реквизит Статус и константа Статусы.Выполнена Если Источник.Статус = Перечисления.СтатусыЗадач.Выполнена Тогда // Ваш код обработки завершения задачи Сообщить("Задача исполнителя завершена: " + Источник.Ссылка); КонецЕсли; КонецЕсли; КонецЕсли; КонецПроцедуры |
Если в вашей конфигурации нет прямого реквизита «Статус», то смотрите, как определяется факт завершения задачи — возможно, это поле «Выполнена» или «ДатаЗавершения» с заполненным значением.
Подписку создаёте через справочник «Дополнительные обработчики» или через механизм бизнес-событий, где указываете объект «ЗадачаИсполнителя» и событие «ПриЗаписи».
Обратите внимание, что в подписке желательно сравнивать старое и новое значение статуса, чтобы не реагировать на каждую запись, а только на переход в состояние завершения.
Если нужно, могу помочь с конкретным кодом для вашей конфигурации.
Если нужна помощь с конкретным кодом — пиши, помогу.