Найти в Дзене

1С: Как выбрать форму объекта налету

Это первая, но не последняя статья по программированию в 1С. Да, я замешан и в таком, запачкан, так сказать. Хочется напеть строки из арии, кажется Мистер Икс(?): - Да, пишу в 1С! Так что же! Пусть меня обзовут АйТишником.
- Как они от меня далеки, далеки - Никогда не дадут руки. Ну, почти так. Мы то знаем, что мы программисты? Или нет? И еще, я буду писать только то, что знаю, сам использую в работе и только для управляемого приложения. Хех, всегда было не по себе от этого названия, типа, в УПП я писал для диких не управляемых форм? ))) Я бы назвал формы безопасными – так больше подходит. Но, на вопрос почему, ответ у 1Сников только один – потому что. В любом случае, мы копи-пастеры рукастые, гребем больше, кидаем дальше, пока летит, получаем зарплату. Вот, как раз, пример для подражания Вам, дорогие мои коллеги. Бывает, что надо в зависимости от данных или функциональных опций или погоды или положения Луны отображать ту или иную форму объекта. Для того, чтобы принять решение в какой

Это первая, но не последняя статья по программированию в 1С. Да, я замешан и в таком, запачкан, так сказать. Хочется напеть строки из арии, кажется Мистер Икс(?):

- Да, пишу в 1С! Так что же! Пусть меня обзовут АйТишником.
- Как они от меня далеки, далеки - Никогда не дадут руки.

Ну, почти так.

Мы то знаем, что мы программисты? Или нет? И еще, я буду писать только то, что знаю, сам использую в работе и только для управляемого приложения. Хех, всегда было не по себе от этого названия, типа, в УПП я писал для диких не управляемых форм? ))) Я бы назвал формы безопасными – так больше подходит. Но, на вопрос почему, ответ у 1Сников только один – потому что.

В любом случае, мы копи-пастеры рукастые, гребем больше, кидаем дальше, пока летит, получаем зарплату. Вот, как раз, пример для подражания Вам, дорогие мои коллеги.

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

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

Если ВидФормы = "ФормаОбъекта" Тогда

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

ВидОперации = Параметры.Ключ.ВидОперации;

ИначеЕсли Параметры.Свойство("ЗначенияЗаполнения")

И Параметры.ЗначенияЗаполнения.Свойство("ВидОперации") Тогда

ВидОперации = Параметры.ЗначенияЗаполнения.ВидОперации;

Иначе

ВызватьИсключение("Не указан вид операции!");

КонецЕсли;

Если ВидОперации = Перечисления.МоиВидыОпераций.ВидОперации1 Тогда

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

ВыбраннаяФорма = "Документ.МойДокумент.Форма.ИзменениеОперации1";

ИначеЕсли ВидОперации = Перечисления. МоиВидыОпераций. ВидОперации2Тогда

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

ВыбраннаяФорма = "Документ. МойДокумент.Форма. ИзменениеОперации2";

КонецЕсли;

КонецЕсли;

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

Здесь мы смотрим в переданный процедуре параметр «ВидФормы» - это строка. Для разных объектов бывают разные формы. Например, для документов: ФормаДокумента, ФормаСписка, ФормаВыбора. Для справочника… Ну, Вы поняли же, не первый день в конфигураторе?

Далее, получаем ВидОперации из данных самого объекта. Есть небольшой нюанс записан объект или создается. У меня в примере он создается через заполнение.

Когда мы уже определились с необходимой формой и видом операции, то можно определить какая именно форма нужна. Её имя передается в параметре процедуры «ВыбраннаяФорма» в виде строки со стандартным представлением, как если бы Вы получали форму на клиенте в управляемом приложении.

Желаю удачи и отсутствия трудовых подвигов в виду отсутствия в их необходимости. Работайте по плану, без авралов и нервотрепки. Заходите ко мне, может еще что узнаете. Кидайте вопросы и примеры в коментах.