Версия для печати темы (http://pro1c.org.ua/index.php?s=fed6020d08fb48f2930bee088baee1dd&showtopic=37990)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование управляемых форм 1С 8.2 _ Передать и вставить значение в ФормыВыбора

Автор: Gigi 18.06.17, 12:16

Всем привет!
Сталкнулся с проблемой ... требуеться Ваша помощь.
Нужно два раза запустить ФормуВыбора и в самим всавленную поля пойска каждой вставитть нужное значения выбора элемента.
Внизу процедура кнопки.
И дело в том, что то, что обозначено коментарием: "ЗАПУСК 1" работает нормально. Т.е. когда форма открылась нужное значение успешно всавляеться в нужное поле Формы на верхней ее панели.
А уже во втором судчае (в месте обозначеном: "ЗАПУСК 2"), никак не получаеться получить то же самое, что и при ЗАПУСКЕ 1
Т.е. перемнные: Предупреждение(ОБЪЕКТимя+" -- "+знТочкаСнабжения); актуальны, но вторая: "ТочкаСнабжения" НУ НИКАК НЕ ВСТАВЛЯЕТЬСЯ в поле формы: "ТочкаСнабжения"
Не пойму в чем причина.
Расчитываю на Вашу помощь

&НаКлиенте
Процедура СубТочка_Выбрать(Команда)
Если Объект.Код = ""  Тогда
Предупреждение("Для определения суб-точек учета объект не сохранен!");
Перейти ~Выход;
Иначе
ОБЪЕКТимя=Объект.Найменование;
КонецЕсли;
//=============== ЗАПУСК 1 ============================
ФормаВыбор_ТочкаСнабжение=ПолучитьФорму("Справочник.ТОЧКА.ФормаВыбора",,ЭтаФорма);
ФормаВыбор_ТочкаСнабжение.ОбъектПринадлежности=ОБЪЕКТимя;
//-------------------------------------------
Выбор_ТочкаСнабжение = ФормаВыбор_ТочкаСнабжение.ОткрытьМодально();
//=====================================================
Если Выбор_ТочкаСнабжение <> Неопределено Тогда
//=============== ЗАПУСК 2 ============================
знВыборПолучить = ПолучитьФорму("Справочник.ТОЧКА.ФормаОбъекта", новый Структура("Ключ", Выбор_ТочкаСнабжение));
знТочкаСнабжения=знВыборПолучить.Объект.Найменование;
//################## ФРАГМЕНТ КОДА ДЛЯ ИСПРАВЛЕНИЯ #############################
ФормаВыбор_ТочкаПодключение = ПолучитьФорму("Справочник.ТОЧКА.ФормаВыбора",,); //ФормаВыбор_ТочкаПодключение = ПолучитьФорму("Справочник.ТОЧКА.Форма.ФормаВыбора",,);
//ТУТ ПОЛЕ ФормыВыбора: "ТочкаСнабжения", НУ НИКАК НЕ ХОЧЕТ ПРИНИМАТЬ ЗНАЧЕНИЕ ПЕРЕМЕННОЙ; "ТочкаСнабжения". НИКАК ЗАРАЗА!
//УЖЕ ПРИ ВТОРОМ ЗАПУСКЕ ФормыВыбора ПРОСТО ИГНОРИРУЕТ ЕЕ ... ПРОПУСКАЕТ
ФормаВыбор_ТочкаПодключение.ТочкаСнабжения=знТочкаСнабжения;
ФормаВыбор_ТочкаПодключение.Открыть();
Предупреждение(ОБЪЕКТимя+" -- "+знТочкаСнабжения);
//################## ФРАГМЕНТ КОДА ДЛЯ ИСПРАВЛЕНИЯ #############################
КонецЕсли;
//===========================================
~Выход:;
КонецПроцедуры

Буду очень признателен Вам!

Автор: Gigi 19.06.17, 8:30

Gigi @ Вчера, 13:16 * ,
Понял ошибку...
Для тех, которые тоже сталкивались...

&НаКлиенте
Процедура СубТочка_Выбрать(Команда)
Если Объект.Код = ""  Тогда
Предупреждение("Для определения суб-точек учета объект не сохранен!");
Перейти ~Выход;
КонецЕсли;
//================= ЗАПУСК 1==========================
ФормаВыбор_ТочкиСнабж=ПолучитьФорму("Справочник.ТОЧКА.ФормаВыбора",,ЭтаФорма);
//-------------------------------------------
ВыбранныйЭл_ТочкиСнабж = ФормаВыбор_ТочкиСнабж.ОткрытьМодально();
//-------------------------------------------
Если ВыбранныйЭл_ТочкиСнабж=Неопределено Тогда Перейти ~Выход; КонецЕсли;
//-------------------------------------------
ПараметрыЭлемента = Новый Структура("Ключ",ВыбранныйЭл_ТочкиСнабж);
ФормаОбъектаПолучить = ПолучитьФорму("Справочник.ТОЧКА.ФормаОбъекта", ПараметрыЭлемента);
            ТочкаСнабж_Имя=ФормаОбъектаПолучить.Объект.Наименование;
//==================== ЗАПУСК 2 =======================
ФормаВыбор_ТочкиПодключ = ПолучитьФорму("Справочник.ТОЧКА.ФормаВыбора",,ЭтаФорма);
ВыбранныйЭл_ТочкиПодключ = ФормаВыбор_ТочкиПодключ.ОткрытьМодально();
//-------------------------------------------
Если ВыбранныйЭл_ТочкиПодключ=Неопределено Тогда Перейти ~Выход; КонецЕсли;
//-------------------------------------------
ПараметрыЭлемента = Новый Структура("Ключ",ВыбранныйЭл_ТочкиПодключ);
ФормаОбъектаПолучить = ПолучитьФорму("Справочник.ТОЧКА.ФормаОбъекта", ПараметрыЭлемента);
            ТочкаПодключ_Имя=ФормаОбъектаПолучить.Объект.Наименование;
//=======================================================
Если ВыбранныйЭл_ТочкиСнабж<>Неопределено и ВыбранныйЭл_ТочкиПодключ<>Неопределено Тогда
Если Вопрос("Определить подключение учетной точки: «"+ТочкаПодключ_Имя+"» к точке учета: «"+ТочкаСнабж_Имя+"»?",РежимДиалогаВопрос.ДаНет,,,"Создение суб-точки учета")=КодВозвратаДиалога.Да Тогда
// Действие ....    
КонецЕсли;
КонецЕсли;
//=======================================================
~Выход:;
КонецПроцедуры

Если кто доработает то буду признателен.

Автор: Gangar 23.06.17, 7:32

через Оповестить() => ОбработкаОповещения() не предлагать?

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
http://pro1c.org.ua