Как настроить доступность реквизита Подписан или Утвержден в 1С:Документооборот

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

В процессе работы с программным продуктом 1С:Документооборот администраторы и разработчики часто сталкиваются с ситуацией, когда пользователь, обладающий полными правами на изменение документа (например, являющийся его автором), не может отредактировать конкретный реквизит, такой как Утвержден или Подписан. Это происходит потому, что в системе 1С:ДО права на чтение и изменение объекта — это лишь первый уровень контроля. Второй, более тонкий уровень — это настройка доступности полей по состояниям. Рассмотрим подробно, как решить эту задачу и какие технические нюансы следует учитывать.

Разберем причину ограничения доступа

Проанализируем ситуацию: почему автор документа с правами на изменение наталкивается на блокировку отдельного поля? В 1С:Документооборот реализована многоуровневая модель безопасности. Даже если профиль групп доступа разрешает пользователю редактировать документ в целом, Матрица доступности полей может накладывать дополнительные ограничения в зависимости от того, на каком этапе жизненного цикла (в каком состоянии) находится документ.

Выясним причину такого поведения системы. Это сделано для того, чтобы после завершения определенных бизнес-процессов (например, после официального утверждения или регистрации) пользователи не могли случайным образом или намеренно изменить ключевые реквизиты, которые уже прошли проверку. Однако на этапе внедрения или при использовании упрощенных процессов часто возникает необходимость ручной корректировки этих данных.

Настройка доступности полей по состояниям

Для решения проблемы перейдем к основному механизму управления полями. В версиях 2.1 этот механизм находится в настройках вида документа. Выполним следующие шаги для восстановления доступа:

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

Разберем по шагам эффективную тактику настройки, предложенную в обсуждении. Если вы не уверены, в каком именно состоянии блокируется поле, сначала установите доступность для всех состояний. После того как вы убедитесь, что поле стало активным, начинайте поочередно снимать флаги с тех состояний, где редактирование точно не требуется (например, в состоянии Зарегистрирован). Это позволит методом исключения найти ту самую комбинацию, которая мешала работе пользователя.

Особенности архитектуры версий 2.1 и 3.0

Рассмотрим подробнее, как меняется логика работы в зависимости от версии программы, так как это критически важно для корректной настройки.

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

В версии 3.0: Разработчики существенно переработали этот механизм. Теперь доступность настраивается не просто в "Состояниях", а в рамках Правил работы с документами. Здесь мы можем задать доступность полей не только в привязке к этапу, но и для конкретных ролей. Например, можно разрешить редактирование поля Утвержден только Ответственному или только пользователю с ролью Делопроизводитель, при этом оставив его закрытым для всех остальных участников процесса.

Влияние регистрации документа на доступность полей

Проанализируем еще один важный фактор — регистрацию. Как только документу присваивается регистрационный номер, 1С:Документооборот включает режим "строгой отчетности". По умолчанию большинство полей становятся недоступными для редактирования, чтобы исключить расхождение между бумажным оригиналом и электронной карточкой.

Чтобы разрешить изменение реквизита в зарегистрированном документе, необходимо:

Использование разрезов доступа и рабочих групп

Выясним, могут ли настройки прав на уровне папок или рабочих групп влиять на видимость реквизитов. Если пользователь является автором, он по умолчанию входит в Рабочую группу документа. Однако, если администратор или автоматический процесс удалил его оттуда, или если были изменены права на папку, в которой лежит документ, права пользователя могут "схлопнуться" до уровня Только чтение.

В такой ситуации никакие настройки матрицы доступности полей не помогут, так как общий уровень прав Чтение всегда приоритетнее, чем разрешение на редактирование отдельного поля. Всегда проверяйте актуальный состав рабочей группы на закладке Безопасность в карточке документа.

Программные запреты и подписки на события

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


Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
    Если ЭтотОбъект.Состояние = Справочники.СостоянияДокументов.Утвержден 
         И НЕ ПользовательОбладаетРолью("ПолныеПрава") Тогда
        // Система может проверять, завершен ли процесс утверждения
        // Если процесс еще идет, ручное изменение будет заблокировано
    КонецЕсли;
КонецПроцедуры

Если вы столкнулись с подобным поведением, рекомендуется проверить, нет ли активных задач по процессу Утверждение. Лучшая практика для 1С:Документооборот — позволять системе самой управлять этими реквизитами через бизнес-процессы, а ручную правку оставлять только для исключительных случаев администраторам системы.

Резюме и рекомендации

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

  1. Убедимся, что у пользователя есть права на Изменение самого объекта (через профили групп доступа и права папок).
  2. Проверим Матрицу доступности полей по состояниям для конкретного вида документа.
  3. Если документ зарегистрирован, отдельно разрешим редактирование для состояния Зарегистрирован.
  4. В версии 3.0 проверим Правила обработки и настройки прав для конкретных ролей на этапах.

Таким образом, гибкая комбинация прав доступа и настроек доступности полей позволяет выстроить безопасную и удобную работу с документами в любой организации.

← На главную