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