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