Как задать владельца формы?
Платформа 8.3
Обычные формы
Нужно передать в открываемую форму "ФормаБ" (в какой-либо из параметров) форму "ФормаА", из которой открытие происходит.
Чтобы в случае выполнения каких-либо условий пред закрытием формы "ФормаБ" выполнить один из методов формы А. А конкретнее — обновить табличное поле формы А.
Мне казалось для передачи идеально подходит "ВладелецФормы", однако что-то не могу совладать с ним.
Что не правильно делаю?
(5) Нет, ну почему же, владельца задать можно. Подчинённая форма закроется вместе с формой-владельцем.
Чем тебе поможет владелец в подчинённой форме?
(4) Спасибо, так и сделал.. Довольно удобно впринципе и учитывая "Подчинённая форма закроется вместе с формой-владельцем. " — так даже безопаснее в плане потери введенной информации пользователя при случайном нажатии Esc когда в фокусе по необъяснимым причинам форма — владелец.
(7)Хотел доступ к методам ". экспорт" формы-владельца из подчиненной получить. Но по пути (4) гораздо удобнее и предпочтительнее, благодарю за помощь!
1С. Тематические записки. им xzorkiix
По 4 и 5 разбираюсь. Скорее всего будет позже продолжением к статье.
Про 4 — профиксил. Добавлен массив-«сборщик» элементов которые следует «подчинять» вновь созданному. (см. параметр МассивПодчиненных )
Если Справочники . ТипВсеСсылки (). СодержитТип ( ТипЗнч ( ЗначениеРеквизита )) Тогда
// Размещение элемента
Родитель = Элемент . Родитель ;
Для Каждого Владелец Из ЗначениеРеквизита . Метаданные (). Владельцы Цикл
ЗаголовокВладельца = Владелец . РасширенноеПредставлениеОбъекта ;
ЗаголовокВладельца = ?( ПустаяСтрока ( ЗаголовокВладельца ), Владелец . ПредставлениеОбъекта , ЗаголовокВладельца );
ЗаголовокВладельца = ?( ПустаяСтрока ( ЗаголовокВладельца ), Владелец . Имя , ЗаголовокВладельца );
ПреффиксТипаСсылки = ?( Метаданные . Справочники . Содержит ( Владелец ), «СправочникСсылка.» , «ПланВидовХарактеристикСсылка.» );
ОписаниеТипаВладельца = Новый ОписаниеТипов ( ПреффиксТипаСсылки + Владелец . Имя );
ИмяРеквизитаВладельца = Элемент . Имя + «__Владелец» ;
// добавим реквизит формы и связанный с ним элемент
РеквизитВладельца = ДобавитьВРеквизитыФормы ( Форма , ИмяРеквизитаВладельца , ОписаниеТипаВладельца ,, ЗаголовокВладельца ,Истина);
ЭлементВладельца = ДобавитьЭлементНаФорму ( Форма , ИмяРеквизитаВладельца , Тип ( «ПолеФормы» ), Родитель , ИмяРеквизитаВладельца );
// значение нового реквизита
Форма [ РеквизитВладельца . Имя ] = ЗначениеРеквизита . Владелец ;
// переместим «вперёд» элемент владельца
Форма . Элементы . Переместить ( ЭлементВладельца , Родитель , Элемент );
// установим связь <Элемента> с <РеквизитВладельца>
ЗадатьСвязьЭлементаФормы ( Элемент , «Отбор.Владелец» , РеквизитВладельца . Имя );
Если ТипЗнч ( МассивПодчиненных ) <> Тип ( «Массив» ) Тогда МассивПодчиненных = Новый Массив КонецЕсли;
Для Каждого ЗаписьМассива Из МассивПодчиненных Цикл
ЗадатьСвязьЭлементаФормы ( Форма . Элементы [ ЗаписьМассива ], РеквизитВладельца . Имя , РеквизитВладельца . Имя );
КонецЦикла;
МассивПодчиненных . Добавить ( Элемент . Имя );
Если НайтиВсехВладельцев = Истина Тогда
ДобавитьСвязанныйЭлементВладельцаНаФорму ( Форма , ЭлементВладельца , НайтиВсехВладельцев , МассивПодчиненных );
КонецЕсли;
Прервать;
КонецЦикла;
КонецЕсли;
Функция ДобавитьВРеквизитыФормы ( Форма , Имя , Тип , Путь = Неопределено, Заголовок = Неопределено, СохраняемыеДанные = Неопределено) Экспорт
Реквизит = Новый РеквизитФормы ( Имя , Тип , Путь , Заголовок , СохраняемыеДанные );
МассивРеквизитов = Новый Массив ;
МассивРеквизитов . Добавить ( Реквизит );
Форма . ИзменитьРеквизиты ( МассивРеквизитов );
Функция ДобавитьЭлементНаФорму ( Форма , Имя , ТипЭлемента , Родитель = Неопределено, ПутьКДанным = Неопределено) Экспорт
Элемент = Форма . Элементы . Добавить ( Имя , ТипЭлемента , Родитель );
Элемент . Вид = ВидПоляФормы . ПолеВвода ;
Элемент . ПутьКДанным = ПутьКДанным ;
Процедура ЗадатьСвязьЭлементаФормы ( Элемент , Имя , ПутьКДанным , ИзменениеЗначения = Неопределено, ЗамещатьРанееУстановленные = Истина) Экспорт
МассивСвязи = Новый Массив ;
Если ТипЗнч ( ИзменениеЗначения ) <> Тип ( «РежимИзмененияСвязанногоЗначения» ) Тогда
ИзменениеЗначения = РежимИзмененияСвязанногоЗначения . Очищать ;
КонецЕсли;
Если ЗамещатьРанееУстановленные <> Истина Тогда
СкопироватьМассив ( Элемент . СвязиПараметровВыбора , МассивСвязи );
КонецЕсли;
МассивСвязи . Добавить (Новый СвязьПараметраВыбора ( Имя , ПутьКДанным , ИзменениеЗначения ));
Элемент . СвязиПараметровВыбора = Новый ФиксированныйМассив ( МассивСвязи );
Процедура СкопироватьМассив ( Источник , Приемник ) Экспорт
Для Каждого ЗаписьМассива Из Источник Цикл Приемник . Добавить ( ЗаписьМассива ) КонецЦикла;
Справочник
Метод ИспользоватьВладельца()
Метод ИспользоватьВладельца() имеет следующий синтаксис:
А также альтернативный англоязычный синтаксис:
Параметры
Описание параметров метода ИспользоватьВладельца() :
| 1 | — пользователь может изменить владельца интерактивно (значение по умолчанию) |
| 0 | — пользователь не может изменить установленного владельца |
Возвращаемое значение
Справочник — ссылка на текущий элемент справочника-владельца
Описание
Метод ИспользоватьВладельца() устанавливает владельца для подчиненного справочника. Возвращает значение текущего владельца (на момент до исполнения метода).
Для объектов типа Справочник , созданных функцией СоздатьОбъект(), используется для:
- организации выборки элементов справочника, подчиненных определенному владельцу. Метод следует использовать до вызова методов ВыбратьЭлементы() и ВыбратьЭлементыПоРеквизиту(), формирующих выборку;
- организации выбора элемента справочника, подчиненного определенному владельцу, в форме выбора, открываемой программно. Метод следует использовать до вызова метода Выбрать(), генерирующего форму выбора. Доступно использование параметра МожноИзменять ;
- автоматической установки владельца новым элементам подчиненного справочника. Метод следует использовать до вызова метода Новый() или НоваяГруппа(), создающих новый объект данного типа;
Для реквизитов типа Справочник , размещенных в диалогах и формах, устанавливает текущего владельца, в пределах которого будет осуществляться интерактивный выбор в форме выбора при нажатии пользователем кнопки выбора (…). Доступно использование параметра МожноИзменять .