Почему в 1С:ЗУП 3 недоступны кнопки выполнения задач и как это исправить?

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

При работе в программе 1С:Зарплата и управление персоналом 3.1 (ЗУП 3) пользователи часто сталкиваются с ситуацией, когда им назначаются задачи (например, в рамках процессов согласования или кадрового документооборота), но при открытии формы задачи кнопки Выполнено или Отменено оказываются заблокированными. При этом пользователь может «Принять задачу к исполнению» или даже выполнить её непосредственно из списка, не открывая саму карточку. Разберем подробно, почему так происходит, как устроена внутренняя логика системы и какие настройки прав необходимо проверить.

Архитектура подсистемы задач: Задачи vs Бизнес-процессы

Для начала проанализируем, как задачи реализованы в типовых конфигурациях на базе Библиотеки стандартных подсистем (БСП), к которым относится и ЗУП 3. В системе существуют два принципиально разных объекта метаданных, которые работают в связке:

  1. ЗадачаИсполнителя — это объект, который мы видим в списке «Мои задачи». Он содержит информацию о том, кто должен выполнить работу, в какие сроки и по какому предмету.
  2. БизнесПроцесс.Задание — это «владелец» задачи. Именно он управляет жизненным циклом: определяет, что будет после выполнения задачи, куда процесс двинется дальше и какие условия должны быть соблюдены.

Проблема, описанная в теме, заключается в том, что для простого просмотра задачи достаточно прав на чтение ЗадачаИсполнителя. Но для нажатия кнопки Выполнено система должна внести изменения не только в саму задачу (установить признак выполнения), но и в связанный с ней бизнес-процесс, чтобы он мог перейти на следующий этап. Если у пользователя отсутствуют права на Изменение объекта БизнесПроцессы.Задание, платформа автоматически блокирует элементы управления в форме задачи, переводя её в режим «Только просмотр».

Различие в поведении формы списка и формы задачи

Выясним причину странного поведения системы: почему из списка выполнить задачу можно, а из формы — нет? Рассмотрим этот механизм подробнее.

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

В форме задачи срабатывает стандартный платформенный механизм. При открытии формы система проверяет права доступа текущего пользователя ко всем реквизитам и связанным объектам. Обнаружив отсутствие права на редактирование БизнесПроцесс.Задание, форма блокирует запись данных. Это стандартная защита целостности данных 1С: нельзя разрешить действие, которое порождает изменения в объекте, на который у пользователя нет прав.

Пошаговое решение проблемы с правами доступа

Если вы столкнулись с подобной блокировкой кнопок, проанализируем ситуацию по шагам и выполним следующие настройки:

  1. Проверка базовых ролей. Убедимся, что у пользователя включены профили, содержащие роли для работы с задачами. В ЗУП 3 это обычно профили «Кадровик» или «Расчетчик», но их может быть недостаточно для работы с произвольными заданиями.
  2. Добавление специфических ролей БСП. Проверьте наличие роли Работа с бизнес-процессами заданий (в метаданных она может называться Изменение бизнес-процессов заданий). Именно эта роль дает легитимное право на модификацию владельца задачи.
  3. Использование профиля администрирования задач. Если создание кастомных ролей затруднено, попробуйте временно назначить пользователю профиль Администрирование и мониторинг задач (или аналогичный). Если кнопки станут активными — причина подтверждена: не хватало прав на метаданные бизнес-процесса.

Роль механизма RLS (Ограничение прав на уровне записей)

Важно учитывать, что даже при наличии прав на «Изменение» в метаданных, доступ может блокироваться механизмом RLS. Посмотрим, как это работает в контексте задач:

Система проверяет, является ли пользователь Исполнителем данной конкретной задачи. Если задача назначена на «Группу исполнителей» (ролевая адресация), кнопки выполнения могут быть недоступны до тех пор, пока пользователь не нажмет Принять к исполнению. В этот момент задача персонализируется, и права доступа на редактирование записи закрепляются за конкретным сотрудником.

Если в вашей организации используется сложная схема прав, убедитесь, что в настройках RLS для объекта БизнесПроцесс.Задание прописаны условия, позволяющие исполнителям редактировать свои процессы. Типовой шаблон ограничения обычно выглядит следующим образом:


ГДЕ Автор = &ТекущийПользователь
ИЛИ Исполнитель = &ТекущийПользователь
ИЛИ НомерИТд В (ВЫБРАТЬ... из ГруппыИсполнителей)

Программное исправление (для разработчиков)

Если вы обнаружили, что проблема является следствием ошибки в релизе (как упоминалось в сообщении 7 на форуме), когда права проверяются некорректно именно в форме, можно прибегнуть к программной корректировке. Рассмотрим пример того, как можно принудительно разрешить доступ к командам в модуле формы задачи:


&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    // Проверяем, является ли пользователь исполнителем
    Если Объект.Исполнитель = ПараметрыСеанса.ТекущийПользователь Тогда
        // Принудительно устанавливаем доступность кнопок, 
        // если стандартная проверка их заблокировала
        ЭтаФорма.ТолькоПросмотр = Ложь;
        Элементы.ФормаВыполнить.Доступность = Истина;
    КонецЕсли;
КонецПроцедуры

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

Резюме

Подводя итог, отметим: выполнение задачи в 1С:ЗУП 3 — это комплексная операция. Чтобы кнопки «Выполнено» и «Отменено» были активны, пользователю необходимы:

Проанализируйте настройки прав в вашей базе, добавьте недостающие роли БСП, и функционал бизнес-процессов начнет работать корректно.

← На главную