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