Как вынести кнопку "Структура подчиненности" на панель формы в 1С

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

При работе в современных конфигурациях, таких как «1С:Комплексная автоматизация», ERP или Управление торговлей, пользователи часто сталкиваются с неудобством интерфейса. Чтобы посмотреть связанную цепочку документов, им приходится делать лишние клики: открывать подменю Отчеты и только там искать пункт Структура подчиненности (или Связанные документы). Проанализируем ситуацию и разберем несколько способов, как вынести эту кнопку на видное место — непосредственно в командную панель формы.

Способ 1: Обучение пользователей горячим клавишам

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

Научим пользователей просто нажимать сочетание Ctrl+Shift+S, находясь в форме списка (например, «Заказы клиента») или в самом документе. Во многих случаях этого оказывается достаточно, и пользователи быстро привыкают к быстрому вызову отчета, за что потом говорят спасибо.

Способ 2: Пользовательская настройка формы (без программирования)

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

Разберем по шагам, как вынести кнопку штатными средствами:

  1. Откройте нужную форму списка или документа (например, список заказов).
  2. В правом верхнем углу нажмите кнопку Еще и выберите пункт Изменить форму....
  3. В открывшемся дереве элементов найдите и разверните группу Командная панель.
  4. Найдите подменю Отчеты и внутри него команду Структура подчиненности (в новых релизах БСП она может называться Связанные документы).
  5. Захватите эту команду мышкой и перетащите ее выше — прямо в корень группы Командная панель.
  6. В правой части окна настроек (в свойствах элемента) убедитесь, что свойство Положение в командной панели установлено так, чтобы кнопка гарантированно отображалась на виду.
  7. Нажмите ОК.

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

Способ 3: Программный вывод средствами БСП (Подключаемые команды)

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

Проанализируем механику: генерация команд происходит в модуле формы, обычно в обработчике ПриСозданииНаСервере. Туда передаются параметры размещения. Чтобы переопределить стандартное размещение, нам необходимо вмешаться в вызов процедур вида ПодключаемыеКоманды.ПриСозданииНаСервере или МенюОтчеты.ПриСозданииНаСервере.

В параметрах размещения разработчик может программно переопределить контейнер, указав вместо стандартного подменю «Отчеты» основную командную панель формы. Таким образом, механизм БСП сам отрисует кнопку в нужном нам месте.

Способ 4: Использование расширений конфигурации (Безопасный метод)

Поскольку проблема массовая, а снимать конфигурацию с поддержки ради одной кнопки нецелесообразно, разберем современный подход — использование расширений (Patch).

Мы можем создать небольшое расширение, в котором позаимствуем форму списка нужного документа. Выясним последовательность действий:

  1. Добавляем форму в расширение.
  2. Создаем собственную команду в форме и выносим ее на командную панель в виде кнопки с понятной иконкой.
  3. В обработчике нажатия этой кнопки мы программно вызываем типовой механизм открытия структуры подчиненности.

Посмотрим на примерный код обработчика, который можно использовать в расширении для вызова типового отчета БСП по связанным документам:


&НаКлиенте
Процедура Расш1_СтруктураПодчиненности(Команда)
    
    Если Элементы.Список.ТекущаяСтрока = Неопределено Тогда
        Возврат;
    КонецЕсли;
    
    ПараметрыОткрытия = Новый Структура("Предмет", Элементы.Список.ТекущаяСтрока);
    ОткрытьФорму("ОбщаяФорма.СвязанныеДокументы", ПараметрыОткрытия, ЭтаФорма);
    
КонецПроцедуры

Этот способ является наиболее гибким и безопасным. Он позволяет сразу решить проблему во всех необходимых документах, не ломая типовые механизмы БСП и сохраняя возможность беспроблемного обновления конфигурации.

← На главную