Имя: Пароль:
1C
 
Как получить ссылку на клиенте в команде ОповещениияОЗакрытии?
0 arsik
 
гуру
02.07.26
15:43
Открываю форму нового элемента на клиенте.Указываю процедуру оповещения о закрытии.
В процедуру попадает, но в "РезультатЗакрытия" всегда пусто.

Можно как то это обойти без изменения формы объекта?

&НаКлиенте
Процедура КомандаСоздатьМодель(Команда)
	
	ПараметрыМодели = ПолучитьПараметрыМодели();

	ОписаниеОповещения = Новый ОписаниеОповещения("КомандаСоздатьМодельОкончание", ЭтотОбъект, ПараметрыМодели);

	ОткрытаяФорма = ОткрытьФорму("Справочник.Модели.Форма.ФормаЭлемента", , ЭтаФорма,,,, ОписаниеОповещения, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
	ЗаполнитьЗначенияСвойств(ОткрытаяФорма.Объект, ПараметрыМодели);
	
КонецПроцедуры

&НаКлиенте
Процедура КомандаСоздатьМодельОкончание(РезультатЗакрытия, ДополнительныеПараметры) Экспорт
	//КАК ТУТ ПОЛУЧИТЬ ССЫЛКУ НА СОЗДАННЫЙ ЭЛЕМЕНТ
КонецПроцедуры
1 paramedic
 
02.07.26
15:50
Откуда форма справочника Модели узнает о ваших хотелках как-то получить значение при ее закрытии?
2 arsik
 
гуру
02.07.26
15:51
(1) Это я понимаю. Есть какие то обходные пути?
3 KJlag
 
02.07.26
15:51
вроде делал чтото такое. ссылка не в ДополнительныеПараметры.Форма.Объект.Ссылка
или ДополнительныеПараметры.Объект.Ссылка ?
4 arsik
 
гуру
02.07.26
15:53
Как еще можно создать объект, заполнить его и открыть пользователю? Что бы в результате в оповещении мне ссылку вернуло. Может параметр какой то есть?
5 Fragster
 
гуру
02.07.26
15:54
нужно в параметрах открытия передать "режимвыбора" истина
6 Fragster
 
гуру
02.07.26
15:55
ну и вместо ЗаполнитьЗначенияСвойств использовать паратметр "ЗначенияЗаполнения"
7 Fragster
 
гуру
02.07.26
15:57
или Основание если в модуле объекта есть прописанная ОбработкаЗаполнения
8 Fragster
 
гуру
02.07.26
15:57
в СП много полезного по пути Интерфейс (управляемый) -> Форма клиентского приложения -> Расширение ххх
9 arsik
 
гуру
02.07.26
16:02
(6) Не не работает. И значение заполнения тоже. Или как то я не так что то делаю?
	ПараметрыОткрытия = Новый Структура("ЗначенияЗаполнения, РежимВыбора", ПараметрыМодели, Истина);
	ОткрытаяФорма = ОткрытьФорму("Справочник.Модели.Форма.ФормаЭлемента", ПараметрыОткрытия, ЭтаФорма,,,, ОписаниеОповещения, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
10 H A D G E H O G s
 
02.07.26
16:24
&НаКлиенте
Процедура ПередЗакрытием(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка)
    ЭтаФорма.Закрыть(Объект.Ссылка);
КонецПроцедуры

В РезультатЗакрытия будет ссылка
11 paramedic
 
02.07.26
16:32
(10) Так-то любой сможет.
Вопрос был "без изменения формы".))
12 H A D G E H O G s
 
02.07.26
16:34
(11) А, да, не дочитал.
13 Fragster
 
гуру
02.07.26
16:34
(9) режим выбора работает:
&НаКлиенте
Процедура Команда1(Команда)
    ПараметрыОткрытия = Новый Структура("РежимВыбора, ЗначенияЗаполнения", Истина, Новый Структура("Наименование", "Превед"));
    ОткрытьФорму("Справочник.Номенклатура.ФормаОбъекта", ПараметрыОткрытия, ЭтаФорма, , , , ,)
КонецПроцедуры

&НаКлиенте
Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора)
    Сообщить(ВыбранноеЗначение);
КонецПроцедуры


а вот почему не работает ЗначенияЗаполнения - работает для реквизитов, у которых стоит "заполнять из данных заполнения", кроме наименования. оно встает из параметра "ТекстЗаполнения".

если передать структуру в "Основание", то все реквизиты с галочками "заполнять из данных заполнения" заполняются.
14 arsik
 
гуру
02.07.26
16:44
(13) Скорее всего у тебя в форме есть метод при закрытии в котором передается ссылка.
Сделал так но не нравится.
&НаКлиенте
Процедура АвтомобилиМодельСоздание(Элемент, СтандартнаяОбработка)
	
	СтандартнаяОбработка = ложь;

	ПараметрыМодели = ПолучитьПараметрыМодели();
	ПараметрыОткрытия = Новый Структура("РежимВыбора", Истина);
	ОткрытаяФорма = ОткрытьФорму("Справочник.Модели.Форма.ФормаЭлемента", ПараметрыОткрытия, Элемент,,,,, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
	
	ЗаполнитьЗначенияСвойств(ОткрытаяФорма.Объект, ПараметрыМодели);

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

&НаКлиенте
Процедура АвтомобилиМодельОбработкаВыбора(Элемент, ВыбранноеЗначение, ДополнительныеДанные, ВыборДобавлением, СтандартнаяОбработка)
	
	
КонецПроцедуры
15 Garykom
 
гуру
02.07.26
16:48
(0) Получить в переменную и открыть форму списка в режиме выбора
Через переменную неким образом из формы списка можно попробовать сразу создание нового элемента чтобы отработало
Ну или пофиг, пусть сами нажмут создать и затем после сохранения выберут
16 Fragster
 
гуру
02.07.26
16:48
>Скорее всего у тебя в форме есть метод при закрытии в котором передается ссылка.

нет такого там, в обработку выбора попадает
17 Fragster
 
гуру
02.07.26
17:00
у тебя это все в таблице, может там какая особенность с этим, лови событие выше (на форме или на таблице)
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший