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