При работе в программе 1С:Зарплата и управление персоналом 3.1 (ЗУП 3) пользователи часто сталкиваются с ситуацией, когда им назначаются задачи (например, в рамках процессов согласования или кадрового документооборота), но при открытии формы задачи кнопки Выполнено или Отменено оказываются заблокированными. При этом пользователь может «Принять задачу к исполнению» или даже выполнить её непосредственно из списка, не открывая саму карточку. Разберем подробно, почему так происходит, как устроена внутренняя логика системы и какие настройки прав необходимо проверить.
Для начала проанализируем, как задачи реализованы в типовых конфигурациях на базе Библиотеки стандартных подсистем (БСП), к которым относится и ЗУП 3. В системе существуют два принципиально разных объекта метаданных, которые работают в связке:
Проблема, описанная в теме, заключается в том, что для простого просмотра задачи достаточно прав на чтение ЗадачаИсполнителя. Но для нажатия кнопки Выполнено система должна внести изменения не только в саму задачу (установить признак выполнения), но и в связанный с ней бизнес-процесс, чтобы он мог перейти на следующий этап. Если у пользователя отсутствуют права на Изменение объекта БизнесПроцессы.Задание, платформа автоматически блокирует элементы управления в форме задачи, переводя её в режим «Только просмотр».
Выясним причину странного поведения системы: почему из списка выполнить задачу можно, а из формы — нет? Рассмотрим этот механизм подробнее.
В форме списка команда «Выполнить» часто реализована как вызов серверного метода, который напрямую меняет статус объекта ЗадачаИсполнителя. Если программный код этой команды не содержит жесткой проверки прав на родительский бизнес-процесс (или выполняет запись в привилегированном режиме), действие проходит успешно.
В форме задачи срабатывает стандартный платформенный механизм. При открытии формы система проверяет права доступа текущего пользователя ко всем реквизитам и связанным объектам. Обнаружив отсутствие права на редактирование БизнесПроцесс.Задание, форма блокирует запись данных. Это стандартная защита целостности данных 1С: нельзя разрешить действие, которое порождает изменения в объекте, на который у пользователя нет прав.
Если вы столкнулись с подобной блокировкой кнопок, проанализируем ситуацию по шагам и выполним следующие настройки:
Работа с бизнес-процессами заданий (в метаданных она может называться Изменение бизнес-процессов заданий). Именно эта роль дает легитимное право на модификацию владельца задачи.Администрирование и мониторинг задач (или аналогичный). Если кнопки станут активными — причина подтверждена: не хватало прав на метаданные бизнес-процесса.Важно учитывать, что даже при наличии прав на «Изменение» в метаданных, доступ может блокироваться механизмом RLS. Посмотрим, как это работает в контексте задач:
Система проверяет, является ли пользователь Исполнителем данной конкретной задачи. Если задача назначена на «Группу исполнителей» (ролевая адресация), кнопки выполнения могут быть недоступны до тех пор, пока пользователь не нажмет Принять к исполнению. В этот момент задача персонализируется, и права доступа на редактирование записи закрепляются за конкретным сотрудником.
Если в вашей организации используется сложная схема прав, убедитесь, что в настройках RLS для объекта БизнесПроцесс.Задание прописаны условия, позволяющие исполнителям редактировать свои процессы. Типовой шаблон ограничения обычно выглядит следующим образом:
ГДЕ Автор = &ТекущийПользователь
ИЛИ Исполнитель = &ТекущийПользователь
ИЛИ НомерИТд В (ВЫБРАТЬ... из ГруппыИсполнителей)
Если вы обнаружили, что проблема является следствием ошибки в релизе (как упоминалось в сообщении 7 на форуме), когда права проверяются некорректно именно в форме, можно прибегнуть к программной корректировке. Рассмотрим пример того, как можно принудительно разрешить доступ к командам в модуле формы задачи:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// Проверяем, является ли пользователь исполнителем
Если Объект.Исполнитель = ПараметрыСеанса.ТекущийПользователь Тогда
// Принудительно устанавливаем доступность кнопок,
// если стандартная проверка их заблокировала
ЭтаФорма.ТолькоПросмотр = Ложь;
Элементы.ФормаВыполнить.Доступность = Истина;
КонецЕсли;
КонецПроцедуры
Однако помните, что изменение типовых конфигураций — это крайняя мера. В большинстве случаев проблема решается корректной настройкой профилей групп доступа и добавлением роли на изменение бизнес-процесса Задание.
Подводя итог, отметим: выполнение задачи в 1С:ЗУП 3 — это комплексная операция. Чтобы кнопки «Выполнено» и «Отменено» были активны, пользователю необходимы:
ЗадачаИсполнителя.БизнесПроцесс.Задание.Проанализируйте настройки прав в вашей базе, добавьте недостающие роли БСП, и функционал бизнес-процессов начнет работать корректно.