1с как установить владельца реквизита формы

от admin

Как задать владельца формы?

Платформа 8.3
Обычные формы
Нужно передать в открываемую форму "ФормаБ" (в какой-либо из параметров) форму "ФормаА", из которой открытие происходит.
Чтобы в случае выполнения каких-либо условий пред закрытием формы "ФормаБ" выполнить один из методов формы А. А конкретнее — обновить табличное поле формы А.
Мне казалось для передачи идеально подходит "ВладелецФормы", однако что-то не могу совладать с ним.

Что не правильно делаю?

(5) Нет, ну почему же, владельца задать можно. Подчинённая форма закроется вместе с формой-владельцем.

Чем тебе поможет владелец в подчинённой форме?

(4) Спасибо, так и сделал.. Довольно удобно впринципе и учитывая "Подчинённая форма закроется вместе с формой-владельцем. " — так даже безопаснее в плане потери введенной информации пользователя при случайном нажатии Esc когда в фокусе по необъяснимым причинам форма — владелец.

(7)Хотел доступ к методам ". экспорт" формы-владельца из подчиненной получить. Но по пути (4) гораздо удобнее и предпочтительнее, благодарю за помощь!

1С. Тематические записки. им xzorkiix

По 4 и 5 разбираюсь. Скорее всего будет позже продолжением к статье.

Про 4 — профиксил. Добавлен массив-«сборщик» элементов которые следует «подчинять» вновь созданному. (см. параметр МассивПодчиненных )

Если Справочники . ТипВсеСсылки (). СодержитТип ( ТипЗнч ( ЗначениеРеквизита )) Тогда

// Размещение элемента
Родитель = Элемент . Родитель ;

Для Каждого Владелец Из ЗначениеРеквизита . Метаданные (). Владельцы Цикл

ЗаголовокВладельца = Владелец . РасширенноеПредставлениеОбъекта ;
ЗаголовокВладельца = ?( ПустаяСтрока ( ЗаголовокВладельца ), Владелец . ПредставлениеОбъекта , ЗаголовокВладельца );
ЗаголовокВладельца = ?( ПустаяСтрока ( ЗаголовокВладельца ), Владелец . Имя , ЗаголовокВладельца );

ПреффиксТипаСсылки = ?( Метаданные . Справочники . Содержит ( Владелец ), «СправочникСсылка.» , «ПланВидовХарактеристикСсылка.» );
ОписаниеТипаВладельца = Новый ОписаниеТипов ( ПреффиксТипаСсылки + Владелец . Имя );

ИмяРеквизитаВладельца = Элемент . Имя + «__Владелец» ;

// добавим реквизит формы и связанный с ним элемент
РеквизитВладельца = ДобавитьВРеквизитыФормы ( Форма , ИмяРеквизитаВладельца , ОписаниеТипаВладельца ,, ЗаголовокВладельца ,Истина);
ЭлементВладельца = ДобавитьЭлементНаФорму ( Форма , ИмяРеквизитаВладельца , Тип ( «ПолеФормы» ), Родитель , ИмяРеквизитаВладельца );

// значение нового реквизита
Форма [ РеквизитВладельца . Имя ] = ЗначениеРеквизита . Владелец ;

// переместим «вперёд» элемент владельца
Форма . Элементы . Переместить ( ЭлементВладельца , Родитель , Элемент );

// установим связь <Элемента> с <РеквизитВладельца>
ЗадатьСвязьЭлементаФормы ( Элемент , «Отбор.Владелец» , РеквизитВладельца . Имя );

Если ТипЗнч ( МассивПодчиненных ) <> Тип ( «Массив» ) Тогда МассивПодчиненных = Новый Массив КонецЕсли;

Для Каждого ЗаписьМассива Из МассивПодчиненных Цикл
ЗадатьСвязьЭлементаФормы ( Форма . Элементы [ ЗаписьМассива ], РеквизитВладельца . Имя , РеквизитВладельца . Имя );
КонецЦикла;

Читать:
Как отключить альт таб

МассивПодчиненных . Добавить ( Элемент . Имя );

Если НайтиВсехВладельцев = Истина Тогда
ДобавитьСвязанныйЭлементВладельцаНаФорму ( Форма , ЭлементВладельца , НайтиВсехВладельцев , МассивПодчиненных );
КонецЕсли;

Прервать;
КонецЦикла;
КонецЕсли;

Функция ДобавитьВРеквизитыФормы ( Форма , Имя , Тип , Путь = Неопределено, Заголовок = Неопределено, СохраняемыеДанные = Неопределено) Экспорт

Реквизит = Новый РеквизитФормы ( Имя , Тип , Путь , Заголовок , СохраняемыеДанные );

МассивРеквизитов = Новый Массив ;
МассивРеквизитов . Добавить ( Реквизит );
Форма . ИзменитьРеквизиты ( МассивРеквизитов );

Функция ДобавитьЭлементНаФорму ( Форма , Имя , ТипЭлемента , Родитель = Неопределено, ПутьКДанным = Неопределено) Экспорт

Элемент = Форма . Элементы . Добавить ( Имя , ТипЭлемента , Родитель );
Элемент . Вид = ВидПоляФормы . ПолеВвода ;
Элемент . ПутьКДанным = ПутьКДанным ;

Процедура ЗадатьСвязьЭлементаФормы ( Элемент , Имя , ПутьКДанным , ИзменениеЗначения = Неопределено, ЗамещатьРанееУстановленные = Истина) Экспорт

МассивСвязи = Новый Массив ;

Если ТипЗнч ( ИзменениеЗначения ) <> Тип ( «РежимИзмененияСвязанногоЗначения» ) Тогда
ИзменениеЗначения = РежимИзмененияСвязанногоЗначения . Очищать ;
КонецЕсли;

Если ЗамещатьРанееУстановленные <> Истина Тогда
СкопироватьМассив ( Элемент . СвязиПараметровВыбора , МассивСвязи );
КонецЕсли;

МассивСвязи . Добавить (Новый СвязьПараметраВыбора ( Имя , ПутьКДанным , ИзменениеЗначения ));

Элемент . СвязиПараметровВыбора = Новый ФиксированныйМассив ( МассивСвязи );

Процедура СкопироватьМассив ( Источник , Приемник ) Экспорт

Для Каждого ЗаписьМассива Из Источник Цикл Приемник . Добавить ( ЗаписьМассива ) КонецЦикла;

Справочник
Метод ИспользоватьВладельца()

Метод ИспользоватьВладельца() имеет следующий синтаксис:

А также альтернативный англоязычный синтаксис:

Параметры

Описание параметров метода ИспользоватьВладельца() :

1 — пользователь может изменить владельца интерактивно (значение по умолчанию)
0 — пользователь не может изменить установленного владельца

Возвращаемое значение

Справочник — ссылка на текущий элемент справочника-владельца

Описание

Метод ИспользоватьВладельца() устанавливает владельца для подчиненного справочника. Возвращает значение текущего владельца (на момент до исполнения метода).

Для объектов типа Справочник , созданных функцией СоздатьОбъект(), используется для:

  • организации выборки элементов справочника, подчиненных определенному владельцу. Метод следует использовать до вызова методов ВыбратьЭлементы() и ВыбратьЭлементыПоРеквизиту(), формирующих выборку;
  • организации выбора элемента справочника, подчиненного определенному владельцу, в форме выбора, открываемой программно. Метод следует использовать до вызова метода Выбрать(), генерирующего форму выбора. Доступно использование параметра МожноИзменять ;
  • автоматической установки владельца новым элементам подчиненного справочника. Метод следует использовать до вызова метода Новый() или НоваяГруппа(), создающих новый объект данного типа;

Для реквизитов типа Справочник , размещенных в диалогах и формах, устанавливает текущего владельца, в пределах которого будет осуществляться интерактивный выбор в форме выбора при нажатии пользователем кнопки выбора (…). Доступно использование параметра МожноИзменять .

Похожие статьи