@qrnm

Как программно полноценно закрыть задачу в 1С:ДО 3?

Пишу доп. обработчик бизнес событий для 1С:ДО3. Этот обработчик закрывает задачу "ОЖИДАНИЕ СКАНИРОВАНИЯ" комплексного процесса обработки входящей :
1. Работает по событию "Создание файла".
2. Переходит к документу-владельцу файла.
3. Получает задачи, предметом которых является этот документ.
4. Находит через RegExp задачу, которая содержит в своем имени "ОЖИДАНИЕ СКАНИРОВАНИЯ", получает её.
5. Закрывает полученную задачу.

Так вот. Задача закрывается через метод "Задача.ВыполнитьЗадачу()", комплексный процесс переходит к следующему этапу, и если провалиться в задачу, то можно увидеть в статусе, что она закрыта.

Проблема заключается в том, что видимо не все признаки "выполненности задачи" заполняются методом который я использую и в разделе документа "обработка" у задачи остается состояние "На исполнении", и в левом крайнем столбце
отображается соответсвующая пиктограмма И по прохождению всех этапов процесса он не завершается.

Здесь изображен нормально завершенный процесс, обработанный вручную.
6369da8f5298b712876310.png

Здесь изображен процесс, в котором пункт 6 завершен обработчиком.
6369dcae62776643734550.png

Скрин кода.
6369dc295ecc6289707818.png
  • Вопрос задан
  • 519 просмотров
Пригласить эксперта
Ответы на вопрос 2
@VitalyChaikin
в Запросе нет необходимости фильтровать по Наименование если есть сам Предмет;
ГДЕ ЗадачаИсполнителяПредметы.Предмет = &Документ
Перед Задача.ВыполнитьЗадачу(); желательно вставить
Сообщить("До выполнения: " + СокрЛП(Задача.Выполнена));  // <<<< проконтролировать
Если НЕ Задача.Выполнена Тогда // <<<< пишем более безопасный код ! кто знает что там будет за глюк ...
  Задача.ВыполнитьЗадачу();

чтобы убедиться что задача требует выполнения ... в остальном все в порядке, должно работать ...
Ответ написан
@Dementor
программист, архитектор, аналитик
Базы ДО нет под рукой. Но по памяти следующие мысли:
1) В общих модулях по предмету (владелец-файла) есть функция, которая возвращает текущие задачи - это чтобы свой велосипед с поиском не делать.
2) По описанию проблемы какая-то путаница между задачами общего комплексного процесса и задачами вложенного процесса. Когда на руках будут правильные задачи, то при их закрытии ошибка должна уйти. И закрывать задачу тоже лучше с помощью функций общего модуля (подсмотреть цепочку по нажатию на кнопку "Выполнить задачу").
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы