1. user1345957 21.05.20 14:41 Сейчас в теме

Метод ПолучитьФорму. Управляемые формы.

Как использовать метод получить форму, если у меня есть 2 формы: главная (справочник.пользователи.регистрация; Регистрация это форма элемента) и подчиненная форма (общая форма Главная). Я хочу получить доступ к элементам из главной формы к подчиненной.

Форма = ПолучитьФорму("ОбщаяФорма.Главная");
Найденные решения
10. SeiOkami 1460 22.05.20 12:28 Сейчас в теме
(9) вы хотите включить видимость кнопки "Мой профиль" после нажатии на кнопку "Регистрация" ?

Тогда лучше использовать другой приём:

1. В форме регистрации добавляем событие формы ПослеЗаписи() и пишем код:

&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
	
	Оповестить("Регистрация");
	
КонецПроцедуры


2. В главной форме добавляем событие формы ОбработкаОповещения и пишем в нём код:

&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
	
	Если ИмяСобытия = "Регистрация" Тогда
		Элементы.КнопкаМойПрофиль.Видимость = Истина;
	КонецЕсли;
	
КонецПроцедуры
Показать


В результате, когда пользователь нажмёт Записать (в вашем случае это "Регистрация"), то форма регистрации выполнит оповещение всех открытых форм.
Главная форма примет это оповещение и изменит видимость кнопки.
user1345957; +1 Ответить
Остальные ответы
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
2. VmvLer 21.05.20 15:16 Сейчас в теме
Слишком много главных. Главный, как правило, только один.
А тут седьмая вода киселе вместо постановки задачи.

Подозреваю, что можно получить доступ через владельца формы, но без более четкого изложения советовать большее грешно.
3. user1345957 21.05.20 16:39 Сейчас в теме
(2) как именно получить доступ через владельца формы? Пример кода пожалуйста.
4. SeiOkami 1460 21.05.20 20:56 Сейчас в теме
(3) для получения доступа к свойствам, элементам, реквизитам и методам владельца формы необходимо обращаться к ВладелецФормы

Пример кода:

&НаКлиенте
Процедура ПриОткрытии(Отказ)
	
	Для Каждого ЭлементВладельца Из ВладелецФормы.Элементы Цикл
		Сообщить(ЭлементВладельца.Имя);
	КонецЦикла;
	
КонецПроцедуры
Показать


Стоит понимать, что обращение к владельцу формы доступно только на клиенте. Если же нужно обрабатывать данные владельца формы на сервере, то необходимо их на сервер передать.

Всё зависит от вашей задачи. Пока что всё очень размыто и непонятно.
5. user1345957 21.05.20 22:38 Сейчас в теме
(4) А владелец формы кем является ? Главной формой ? Как получить элементы, реквизиты подчиненной формы ?
6. SeiOkami 1460 22.05.20 06:43 Сейчас в теме
(5) владелец формы задаётся при её открытии. В методе ОткрытьФорму() или ПолучитьФорму()

Если нужно обратиться к подчинённой форме, то это нужно делать сразу после метода ПолучитьФорму()


ОбщаяФорма = ПолучитьФорму("ОбщаяФорма.Главная");
Сообщить(ОбщаяФорма.Элементы.Количество());

user1345957; +1 Ответить
7. user1345957 22.05.20 08:12 Сейчас в теме
(6) в моем случае должна меняться видимость подчиненный кнопки.
Но я не могу получить доступ к элементам подчиненной формы.
Мне казалось что будет тогда так после метода получитьформу:
ОбщаяФорма.элементы.имяэлементаподчиненнойформы.

Или как тогда?
8. SeiOkami 1460 22.05.20 08:36 Сейчас в теме
(7) вот так должно работать:

ОбщаяФорма = ПолучитьФорму("ОбщаяФорма.Главная");
ОбщаяФорма.Открыть();
ОбщаяФорма.Элементы.МояКнопка.Видимость = Ложь;


Но лучше такие действия делать внутри самой формы "Главная".
Передавать в неё параметры, а в ней в ПриСозданииНаСервере() отключать видимость кнопки
platon_; user1345957; +2 Ответить
9. user1345957 22.05.20 10:59 Сейчас в теме
(8) На главной форме у меня происходит запись через кнопку регистрация потому что действия кнопки регистрация ЗаписатьИЗакрыть.
А какие тогда нужно передавать параметры?
Прикрепленные файлы:
10. SeiOkami 1460 22.05.20 12:28 Сейчас в теме
(9) вы хотите включить видимость кнопки "Мой профиль" после нажатии на кнопку "Регистрация" ?

Тогда лучше использовать другой приём:

1. В форме регистрации добавляем событие формы ПослеЗаписи() и пишем код:

&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
	
	Оповестить("Регистрация");
	
КонецПроцедуры


2. В главной форме добавляем событие формы ОбработкаОповещения и пишем в нём код:

&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
	
	Если ИмяСобытия = "Регистрация" Тогда
		Элементы.КнопкаМойПрофиль.Видимость = Истина;
	КонецЕсли;
	
КонецПроцедуры
Показать


В результате, когда пользователь нажмёт Записать (в вашем случае это "Регистрация"), то форма регистрации выполнит оповещение всех открытых форм.
Главная форма примет это оповещение и изменит видимость кнопки.
user1345957; +1 Ответить
12. user1345957 22.05.20 12:38 Сейчас в теме
(10) А имясобытия это просто самостоятельно заданный параметр ?
13. SeiOkami 1460 22.05.20 12:41 Сейчас в теме
(12) да, я просто обозвал его "Регистрация".
Можете назвать как угодно.
+ почитайте описание метода в Синтаксис-Помощнике. Можно передавать какое-нить значение, если нужно:

11. SeiOkami 1460 22.05.20 12:33 Сейчас в теме
(9) а что за странные формы у вас такие?
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист 1С
Новороссийск
зарплата от 70 000 руб.
Полный день

Ведущий программист 1С
Санкт-Петербург
зарплата от 130 000 руб.
Полный день

Специалист 1 категории (Программист 1С ФЗД)
Фрязино
зарплата от 110 000 руб.
Полный день

Специалист 1 категории (Программист 1С)
Фрязино
зарплата от 110 000 руб.
Полный день

Автор новостных обзоров на тему 1С и бухучета
Санкт-Петербург
По совместительству