В процессе работы с электронным документооборотом часто возникает ситуация, когда один из согласующих лиц ошибочно нажимает кнопку «Не согласовано», либо меняет свое решение после проведения дополнительных консультаций. Однако система 1С:Документооборот (особенно версии 2.1) блокирует возможность прямого редактирования визы, если процесс согласования уже завершен или документ перешел в статус «Не согласован». При попытке изменить поле в карточке визы пользователь видит подсказку: «Изменять визу можно только для документов "на согласовании"».
Рассмотрим подробнее, как решить эту задачу различными методами — от «быстрых правок» в базе данных до методологически верных способов, предусмотренных логикой программы.
С точки зрения методологии 1С, наиболее правильный путь — отправить документ на повторный цикл согласования. Многие пользователи опасаются, что это запустит процесс заново для всех десяти или двадцати подписантов, что приведет к лишним уведомлениям и затягиванию сроков. Разберем, как этого избежать.
Проанализируем алгоритм действий при запуске повторного цикла:
Комплексный процесс, список участников может быть заблокирован для редактирования настройками шаблона. Чтобы это исправить, администратору необходимо зайти в Шаблон комплексного процесса, найти действие «Согласование» и установить флаг «Разрешить изменять состав участников».Нужно учитывать, что при таком подходе старые визы уйдут в архив. Чтобы Лист согласования выглядел корректно, в настройках формирования отчета следует выбирать режим формирования актуальных виз. Если же требуется поднять старые визы из архива, это можно сделать программно или с помощью консоли запросов, но обычно в этом нет необходимости, так как система хранит историю циклов.
Если запуск нового процесса нежелателен, можно прибегнуть к административным методам правки данных. Рассмотрим ситуацию, когда документ «завис» в состоянии «Не согласован», и поле результата визы недоступно для изменения. Выясним причину: доступность полей в интерфейсе завязана на реквизит Состояние документа.
Для решения проблемы выполним следующие шаги:
РегистрСведений.ТекущиеСостоянияДокументов.Важно: Данные для печатных форм берутся из справочника Визы согласования. Поэтому одного изменения регистра недостаточно — нужно убедиться, что изменен именно объект в справочнике виз. Если вы правите данные программно, используйте следующий подход:
// Пример программного изменения результата визы
ВизаОбъект = СсылкаНаВизу.ПолучитьОбъект();
ВизаОбъект.РезультатСогласования = Перечисления.РезультатыСогласования.Согласовано;
ВизаОбъект.ДатаИсполнения = ТекущаяДата();
ВизаОбъект.Записать();
Для администраторов наиболее безопасным инструментом является стандартная обработка «Групповое изменение реквизитов». Она позволяет изменять данные напрямую в объектах, минуя некоторые проверки экранных форм, но сохраняя при этом целостность ссылочных данных.
Посмотрим, как настроить отбор:
Результат согласования и устанавливаем значение «Согласовано».Удалена (установить в Ложь), если виза была помечена как неактуальная при прерывании процесса.После выполнения обработки рекомендуем принудительно обновить состояние документа. В коде 1С за это отвечает специализированная процедура. Если вы программист, можно вызвать её из внешней обработки:
// Вызов бизнес-логики обновления состояния
ДокументооборотПраваДоступа.ОбновитьСостояниеДокумента(СсылкаНаДокумент);
Проанализируем изменения в новой версии программы. В 3.0 архитектура работы с процессами была пересмотрена. Появилось понятие участников действия, и работа с ними стала более гибкой. Если документ не согласован, система позволяет повторить действие только для тех участников, которые высказались «Против».
В версии 3.0 процесс не завершается жестко, как в 2.1, а переходит на итерацию «Обработка результата». На этом этапе автор может направить задачу повторно конкретному лицу. Если же документ уже окончательно переведен в статус «Согласован» или «Отклонен», то механизмы административной правки остаются схожими с описанными выше (через справочник Визы и регистры состояний), однако структура объектов стала сложнее из-за введения Действий.
Часто после ручных манипуляций пользователи жалуются, что в печатной форме Листа согласования отображается «каша» из старых и новых решений. Разберем, как этого избежать:
Дата и Комментарий в объекте визы. Старый гневный комментарий «Категорически против!» при статусе «Согласовано» будет выглядеть странно.Текущие состояния документов влияет на отображение статуса в списках и карточках, а справочник Визы — на отчетность и юридическую значимость. Поэтому данные в этих местах всегда должны быть синхронизированы.Таким образом, мы рассмотрели как «правильный» путь через интерфейс (повторный цикл с редактированием состава участников), так и «технический» путь через прямую правку объектов. Выбор метода зависит от строгости политик безопасности в вашей организации и необходимости сохранения истории изменений.