Книга: Разработка интерфейса прикладных решений на платформе "1С:Предприятие 8"
Назад: Открытие и запуск отчета
Дальше: Глава 3.4. Преобразование прикладных данных в данные формы

Переопределение открываемой формы

Иногда бывает нужно открывать различные формы в зависимости от выполнения каких-либо условий. Например, для элемента справочника Товары нужно открывать разные формы для собственно товара и для услуги.

Примечание

Пример можно посмотреть в демонстрационной базе «Открытие форм», в модуле менеджера справочника Товары.

Для решения этой задачи в модуле менеджера объекта следует создать обработчик события ОбработкаПолученияФормы. В этом обработчике нужно выполнить все необходимые проверки и принять решение о том, какую форму следует открывать. И соответствующим образом переопределить параметр обработчика ВыбраннаяФорма (листинг 3.20).

Листинг 3.20. Обработчик «ОбработкаПолученияФормы» в модуле менеджера

Процедура ОбработкаПолученияФормы(ВидФормы, Параметры, ВыбраннаяФорма, ДополнительнаяИнформация, СтандартнаяОбработка)

 

Если Параметры.Свойство("Ключ") Тогда

Если ВидФормы = "ФормаОбъекта" И Параметры.Ключ.Родитель.Наименование = "Услуги" Тогда

ВыбраннаяФорма = "Справочник.Товары.Форма.ПроизвольнаяФормаТовара";

СтандартнаяОбработка = Ложь;

 

КонецЕсли;

 

КонецЕсли;

 

КонецПроцедуры

В этом обработчике (для существующих товаров) сначала проверяется, что открывается форма объекта (параметр ВидФормы = “ФормаОбъекта”). Ссылка на объект передается в структуре параметров открываемой формы (Параметры.Ключ).

Поскольку у товара нет специального реквизита, определяющего его вид, будем считать, что все услуги собраны в отдельной папке справочника с наименованием «Услуги».

Если элемент справочника находится в этой папке, то мы переопределяем параметр ВыбраннаяФорма. Тем самым указываем форму, которая должна быть открыта вместо формы объекта – ПроизвольнаяФормаТовара. И параметр СтандартнаяОбработка устанавливаем в значение Ложь.

В результате для услуг будет открыта произвольная форма товара, основная форма товара будет открываться только для товаров, не содержащихся в папке «Услуги». Ну и, естественно, для вновь создаваемых товаров (у которых свойство Ключ в структуре параметров формы не определено) мы никаких проверок не делаем.

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

Назад: Открытие и запуск отчета
Дальше: Глава 3.4. Преобразование прикладных данных в данные формы