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