Как настроить порядок отображения разделов в расширении 1С?

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

При разработке расширений для конфигураций на платформе 1С:Предприятие 8.3 программисты часто сталкиваются с ситуацией, когда добавленные новые подсистемы автоматически отображаются в самом низу панели разделов. Это происходит даже в том случае, если в редакторе командного интерфейса расширения вы передвинули свой раздел в начало списка. Рассмотрим подробнее, почему так происходит, и разберем по шагам все доступные способы решения этой задачи — от простых манипуляций в конфигураторе до сложного программного управления. Для тех, кто ищет готовые решения по кастомизации рабочего пространства, рекомендуем обратить внимание на расширение «Мой интерфейс», которое позволяет добавлять настраиваемые пользователем разделы.

Причина проблемы: приоритеты платформы

Прежде всего, проанализируем ситуацию с точки зрения логики платформы. Когда мы добавляем расширение, система применяет механизм объединения интерфейсов. По умолчанию 1С выводит сначала все разделы основной конфигурации в том порядке, в котором они определены разработчиком типового решения, а затем добавляет разделы из расширений. Более того, платформа всегда отдает приоритет пользовательским настройкам. Если пользователь (или вы сами в процессе тестирования) хотя бы раз открывал программу, система сохранила состояние интерфейса в ХранилищеСистемныхНастроек. Любые изменения в конфигураторе после этого не будут видны до тех пор, пока настройки не будут сброшены к стандартным.

Способ 1. Управление через заимствование подсистем

Если мы хотим, чтобы наш раздел находился, например, между «Продажами» и «Закупками», недостаточно просто создать подсистему в расширении. Нам необходимо предоставить платформе контекст для сравнения. Разберем алгоритм действий:

  1. Откроем дерево метаданных основной конфигурации и найдем те подсистемы, относительно которых мы хотим позиционировать свой раздел.
  2. Нажмем правую кнопку мыши на нужной подсистеме и выберем пункт «Добавить в расширение». Обратите внимание, что заимствовать нужно только саму подсистему, состав объектов переносить не обязательно.
  3. Теперь перейдем в дерево метаданных нашего расширения. Нажмем правой кнопкой мыши на корневой узел расширения и выберем «Открыть командный интерфейс конфигурации».
  4. В открывшемся окне мы увидим не только свой раздел, но и заимствованные стандартные разделы. Теперь стрелочки вверх/вниз позволят нам установить нужный порядок.

Важный нюанс: раздел «Помощь» в некоторых типовых решениях генерируется программно или имеет жесткий приоритет. Если ваша цель — подняться выше него, убедитесь, что в списке командного интерфейса ваш раздел стоит выше всех заимствованных элементов.

Способ 2. Сброс настроек в режиме «Предприятие»

Выполнив настройки в конфигураторе, вы можете обнаружить, что в режиме пользователя ничего не изменилось. Выясним причину: это происходит из-за закэшированных настроек интерфейса. Для оперативного управления этими данными можно использовать специальный инструмент для просмотра и очистки хранилища настроек пользователя. Чтобы увидеть изменения стандартными средствами, необходимо выполнить следующие действия:

  1. Запустим 1С в режиме Предприятие.
  2. Нажмем на кнопку настройки панели разделов (обычно это иконка шестеренки или меню «Настройки — Настройка панели разделов»).
  3. В открывшемся окне нажмем кнопку «Установить стандартные настройки».

После этого система удалит ваши индивидуальные настройки из базы данных и подтянет ту структуру, которую мы только что настроили в конфигураторе расширения.

Способ 3. Программное управление через ХранилищеСистемныхНастроек

Если ваша задача — автоматически настроить интерфейс для всех пользователей без их участия, придется прибегнуть к программному коду. Платформа 1С хранит настройки интерфейса в специальном системном хранилище. Мы можем программно перезаписать эти данные, используя алгоритм сохранения настроек для всех пользователей, адаптированный под задачи интерфейса. Рассмотрим пример кода, который позволяет сохранить настройки командного интерфейса:


// Пример программной установки настроек интерфейса
ИмяПользователя = "ИвановИИ"; // Оставьте пустым для текущего пользователя
КлючОбъекта = "Общее/ПанельРазделов/НастройкиКомандногоИнтерфейса";

// Получаем текущие настройки (например, предварительно настроенные вручную)
НастройкиИнтерфейса = ХранилищеСистемныхНастроек.Загрузить(КлючОбъекта);

// Сохраняем настройки конкретному пользователю
ХранилищеСистемныхНастроек.Сохранить(КлючОбъекта, "", НастройкиИнтерфейса, , ИмяПользователя);

Проанализируем этот метод: объект НастройкиКомандногоИнтерфейса имеет сложную внутреннюю структуру. Программно «собрать» его с нуля крайне затруднительно из-за необходимости оперировать внутренними идентификаторами (GUID) метаданных. Самый надежный путь — один раз настроить интерфейс под «эталонным» пользователем, а затем программно разослать этот объект остальным сотрудникам.

Способ 4. Копирование настроек через БСП

Если ваша конфигурация создана на базе Библиотеки стандартных подсистем (БСП), задача упрощается. В БСП уже встроены механизмы тиражирования настроек. Чтобы скопировать интерфейс, выполните следующие шаги:

  1. Перейдем в раздел Администрирование — Настройки пользователей и прав.
  2. Выберем пункт «Копирование настроек».
  3. В качестве источника выберем пользователя с уже настроенной панелью разделов.
  4. В списке настроек выберем пункт «Внешний вид» (именно в нем хранятся позиции разделов).
  5. Укажем целевых пользователей и нажмем «Скопировать».

Рекомендации по версиям платформы

Стоит отметить, что начиная с версии 8.3.15, работа с командным интерфейсом расширений стала более предсказуемой. Если вы работаете на старых версиях платформы, рекомендуется проверить свойство расширения Использовать основные разделы конфигурации. Помимо порядка разделов, разработчикам часто требуется настроить доступность и видимость элементов формы для различных категорий пользователей, что также можно реализовать через расширения.

Резюмируя: самый правильный путь для разработчика — это заимствование ключевых подсистем в расширение и настройка их порядка в командном интерфейсе расширения с последующим сбросом пользовательских настроек (кнопка «Стандартные») для проверки результата.

← На главную