Как удалить визу в 1С:Документооборот 2.1, не прерывая процесс согласования?

Системный администратор 1С v8.3 (Управляемые формы) 1С:Документооборот IT и автоматизация бизнеса
← На главную

В процессе работы с 1С:Документооборот 2.1 часто возникают ситуации, когда один из участников согласования ошибочно поставил визу или когда состав согласующих лиц изменился уже в процессе выполнения задачи. Типовая реакция системы при прерывании процесса — аннулирование всех текущих результатов, что крайне неудобно, если остальные десять человек уже успешно подписали документ. Разберем подробно, как можно удалить визу пользователя «на лету», сохранив при этом ход выполнения процесса.

Способ 1: Удаление визы через административный интерфейс

Проанализируем самый простой и быстрый метод, который доступен пользователю с правами Администратора. В 1С:Документооборот 2.1 механизм работы с визами реализован таким образом, что результаты согласования отображаются на специальной вкладке предмета процесса.

Рассмотрим пошагово, как это сделать:

  1. Откроем карточку документа (предмета), по которому идет согласование.
  2. Перейдем на вкладку Визы.
  3. Найдем в списке визу того пользователя, которую необходимо убрать.
  4. Нажмем на нужной строке правой кнопкой мыши и выберем пункт Удалить.

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

Способ 2: Безопасный «откат» задачи исполнителя

Выясним причину, по которой простое удаление визы может быть недостаточно. Виза — это результат выполнения задачи. Если мы удалим только визу, бизнес-процесс будет считать, что этап пройден, и пойдет дальше. Если нам нужно, чтобы пользователь переголосовал или чтобы вместо него это сделал кто-то другой, правильнее работать с объектом ЗадачаИсполнителя.

Разберем этот алгоритм совместными усилиями:

  1. Перейдем в список всех задач (или через консоль администратора найдем конкретную задачу пользователя по данному процессу).
  2. Воспользуемся инструментом «Групповое изменение реквизитов», чтобы найти задачу со статусом Выполнена = Истина.
  3. Снимем признак выполнения, установив Выполнена = Ложь.
  4. Очистим реквизит РезультатВыполнения и дату исполнения.

После этих манипуляций задача снова появится у пользователя в списке «Задачи мне». Это самый «чистый» способ, так как он не нарушает логическую цепочку бизнес-процесса.

Способ 3: Программная корректировка данных

Иногда требуется автоматизировать процесс или очистить данные более глубоко. В 1С:Документооборот 2.1 информация о визах хранится в нескольких местах: в табличной части документа, в регистре сведений ВизыСогласования и во внутренних таблицах бизнес-процесса. Для корректного внесения изменений часто применяется корректировка истории выполнения в бизнес-процессах.

Посмотрим на пример кода, который позволяет найти и пометить на удаление запись о визе в регистре:


// Пример поиска и удаления записи в регистре виз
НаборЗаписей = РегистрыСведений.ВизыСогласования.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Документ.Установить(СсылкаНаДокумент);
НаборЗаписей.Отбор.Исполнитель.Установить(НужныйПользователь);
НаборЗаписей.Прочитать();

Если НаборЗаписей.Количество() > 0 Тогда
    Для Каждого Запись Из НаборЗаписей Цикл
        // Можно либо удалить запись, либо пометить ее как удаленную для истории
        Запись.Удалена = Истина; 
    КонецЦикла;
    НаборЗаписей.Записать();
КонецЕсли;

Проанализируем ситуацию: если мы программно меняем визы, нам также может потребоваться обновить состояние документа. За это отвечает регистр сведений СостоянияДокументов. Если после удаления визы документ «завис» в состоянии «На согласовании», хотя все остальные уже ответили, нужно вручную или программно вызвать процедуру обновления состояния.

Риски и возможные проблемы при удалении виз

Рассмотрим подробнее, почему удаление виз в незавершенном комплексном процессе может привести к ошибкам. В 10-15% случаев администраторы сталкиваются с тем, что при завершении последней задачи документ не меняет статус на «Согласован». В таких ситуациях администратору полезно иметь под рукой отчет, показывающий зависшие процессы в Документообороте.

Это происходит по следующим причинам:

Чтобы исправить «зависшее» состояние, нам нужно зайти в регистр СостоянияДокументов, найти запись по нашему предмету и убедиться, что текущее состояние соответствует действительности.

Рекомендации для администраторов

Подводя итог нашему разбору, выделим основные правила работы с визами в 1С:ДО 2.1:

  1. Используйте удаление через ПКМ на вкладке «Визы» только для косметической правки листа согласования, если процесс уже близок к завершению.
  2. Для полноценного изменения решения пользователя используйте откат задачи (снятие признака выполнения), чтобы система сама корректно перезаписала все регистры.
  3. Всегда проверяйте Лист согласования перед печатью. Помните, что удаленные визы могут отображаться в разделе истории, если это не отключено в настройках отчета.
  4. Если вы используете Комплексный процесс, старайтесь не удалять визы на промежуточных этапах, которые еще не завершены, так как это может нарушить логику переходов к следующим этапам.

Таким образом, мы выяснили, что архитектура 1С:Документооборот достаточно гибкая, чтобы позволять административные правки без прерывания бизнес-процессов, но требует внимательного отношения к регистрам сведений и состояниям объектов.

← На главную