При работе в современных конфигурациях, таких как «1С:Комплексная автоматизация», ERP или Управление торговлей, пользователи часто сталкиваются с неудобством интерфейса. Чтобы посмотреть связанную цепочку документов, им приходится делать лишние клики: открывать подменю Отчеты и только там искать пункт Структура подчиненности (или Связанные документы). Проанализируем ситуацию и разберем несколько способов, как вынести эту кнопку на видное место — непосредственно в командную панель формы.
Прежде чем вмешиваться в интерфейс программно или настраивать формы, рассмотрим самый простой и быстрый вариант, не требующий вообще никаких настроек. В типовых конфигурациях 1С для вызова структуры подчиненности предусмотрена комбинация клавиш.
Научим пользователей просто нажимать сочетание Ctrl+Shift+S, находясь в форме списка (например, «Заказы клиента») или в самом документе. Во многих случаях этого оказывается достаточно, и пользователи быстро привыкают к быстрому вызову отчета, за что потом говорят спасибо.
Если горячие клавиши не подходят, посмотрим на штатный механизм платформы, который позволяет каждому пользователю (или администратору для всех) перенастроить интерфейс под себя.
Разберем по шагам, как вынести кнопку штатными средствами:
После этих действий кнопка появится прямо на панели, и пользователи смогут открывать дерево связей в один клик.
Если требуется сделать это централизованно для всех пользователей и жестко зафиксировать в конфигурации, рассмотрим программный подход. В конфигурациях, построенных на базе Библиотеки стандартных подсистем (БСП), формирование подменю и вывод таких команд работает через механизмы подключаемых команд.
Проанализируем механику: генерация команд происходит в модуле формы, обычно в обработчике ПриСозданииНаСервере. Туда передаются параметры размещения. Чтобы переопределить стандартное размещение, нам необходимо вмешаться в вызов процедур вида ПодключаемыеКоманды.ПриСозданииНаСервере или МенюОтчеты.ПриСозданииНаСервере.
В параметрах размещения разработчик может программно переопределить контейнер, указав вместо стандартного подменю «Отчеты» основную командную панель формы. Таким образом, механизм БСП сам отрисует кнопку в нужном нам месте.
Поскольку проблема массовая, а снимать конфигурацию с поддержки ради одной кнопки нецелесообразно, разберем современный подход — использование расширений (Patch).
Мы можем создать небольшое расширение, в котором позаимствуем форму списка нужного документа. Выясним последовательность действий:
Посмотрим на примерный код обработчика, который можно использовать в расширении для вызова типового отчета БСП по связанным документам:
&НаКлиенте
Процедура Расш1_СтруктураПодчиненности(Команда)
Если Элементы.Список.ТекущаяСтрока = Неопределено Тогда
Возврат;
КонецЕсли;
ПараметрыОткрытия = Новый Структура("Предмет", Элементы.Список.ТекущаяСтрока);
ОткрытьФорму("ОбщаяФорма.СвязанныеДокументы", ПараметрыОткрытия, ЭтаФорма);
КонецПроцедуры
Этот способ является наиболее гибким и безопасным. Он позволяет сразу решить проблему во всех необходимых документах, не ломая типовые механизмы БСП и сохраняя возможность беспроблемного обновления конфигурации.