При разработке управляемых форм в платформе 1С:Предприятие 8.3 разработчики часто сталкиваются с задачей точной настройки интерфейса под требования пользователя. Одной из неочевидных проблем является попытка отредактировать свойства системных групп командной панели или панели навигации, таких как Важное, Обычное, См. также или Перейти. В конфигураторе на вкладке Командный интерфейс у этих групп отсутствуют привычные свойства, включая всплывающую подсказку и заголовок.
Разберем детально, почему так происходит на уровне платформы 1С, и рассмотрим практические способы решения этой задачи.
Проанализируем архитектуру управляемой формы в 1С:Предприятии. В редакторе формы существуют две принципиально разные сущности:
Подсказка, Заголовок, ОтображениеПодсказки, Видимость и др.).Если в режиме 1С:Предприятие открыть диалог Все действия — Изменить форму и просто очистить текст в поле Подсказка у группы Важное, платформа расценит это как отмену пользовательской настройки и при следующем открытии формы автоматически вернет стандартную подсказку по умолчанию.
Наиболее корректный с точки зрения разработки подход — полный отказ от стандартного платформенного автозаполнения командного интерфейса и создание пользовательской структуры команд в дереве элементов формы.
Разберем по шагам, как это реализовать:
ФормаКоманднаяПанель (или командную панель формы) и открываем его палитру свойств.Автозаполнение = Ложь). В результате стандартные системные группы и команды перестанут генерироваться автоматически.Заголовок и собственную Подсказка (или оставляем поле пустым). Для свойства ОтображениеПодсказки можно установить значение Не отображать.Если конфигурацию нельзя снимать с поддержки или требуется быстро скорректировать отображение без изменения метаданных, можно воспользоваться механизмом пользовательских настроек формы:
Посмотрим на пример программного переноса пользовательских настроек между пользователями или базами данных с использованием объекта ХранилищеСистемныхНастроек:
// Пример сохранения и загрузки настроек формы программно
КлючОбъекта = "Справочник.Номенклатура.Форма.ФормаЭлемента/НастройкиФормы";
КлючНастроек = "Основная";
// Получаем сохраненную настройку текущего пользователя
ТекущиеНастройки = ХранилищеСистемныхНастроек.Загрузить(КлючОбъекта, КлючНастроек, , ИмяПользователяИсточника);
Если ТекущиеНастройки <> Неопределено Тогда
// Копируем настройку целевому пользователю
ХранилищеСистемныхНастроек.Сохранить(КлючОбъекта, КлючНастроек, ТекущиеНастройки, , ИмяПользователяПриемника);
КонецЕсли;
Если в группе Важное нет ни одной активной команды, платформа автоматически скрывает эту группу при обычной работе пользователя. Она отображается только в окне настройки Изменить форму.
Чтобы гарантировать, что лишние команды не попадут в интерфейс: