Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Возврат параметра при закрытии формы
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.3
AnryMc
Капитально туплю сегодня - помогите!!!

Форма Обработки 1
Программно открывается Обработка 2
&НаКлиенте
    
    ПараметрыФормы = Новый Структура("", "");
    
    ОписаниеОповещения = Новый ОписаниеОповещения("ЗакрытаФормаОбработки2", ЭтотОбъект, ПараметрыФормы);
    
    ОткрытьФорму("Обработка.Обработка2.Форма", ПараметрыФормы,,,,,ОписаниеОповещения);


В Обработке 2 устанавливается НужныйРеквизит

Форма Обработки 2 - закрывается

В Обработке 1 выполняется Оповещение
&НаКлиенте
Процедура ЗакрытаФормаОбработки2(Результат, ДополнительныеПараметры) Экспорт
    
    ...
//Как здесь узнать установленный в Обработке 2 НужныйРеквизит
    
КонецПроцедуры


КАК???


andr_andrey
AnryMc @ Сегодня, 11:07 необходимо зарегистрироваться для просмотра ссылки ,
Потрібно вказати в параметрах закриття при закритті форми:

Закрыть(<ПараметрЗакрытия>)

<ПараметрЗакрытия> (необязательный)
Тип: Произвольный.
Параметр закрытия формы, открытой в модальном режиме. Это значение будет возвращено как результат метода, открывающего форму модально.
В режиме отказа от модальности параметр передается в процедуру, описанную параметром ОписаниеОповещенияОЗакрытии метода ОткрытьФорму или свойством формы ОписаниеОповещенияОЗакрытии.
AnryMc
Цитата(andr_andrey @ 11.04.24, 14:10) необходимо зарегистрироваться для просмотра ссылки
Закрыть(<ПараметрЗакрытия>)



А где это "всунуть" в Обработке 2, и как поймать в Обработке 1 в обработке Оповещения?
takefive
Вариант с оповещением...
//процедуры нужно привязать к событиям, действиям...
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
    //Сообщить("ИмяСобытия: " + ИмяСобытия + ", тип: " + ТипЗнч(ИмяСобытия));
    //Сообщить("Параметр: "   + Параметр   + ", тип: " + ТипЗнч(Параметр));
    //Сообщить("Источник: "   + Источник   + ", тип: " + ТипЗнч(Источник));
    Если ИмяСобытия = "ДиалогФорм" Тогда
        Объект.Дата = Параметр.Дата;
    КонецЕсли;
КонецПроцедуры

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

//Нужно указать владельца формы - третий параметр
&НаКлиенте
Процедура ОткрытьНастройки(Команда)
    ФормаНастроек = ПолучитьФорму("ВнешняяОбработка.ДвеФормы.Форма.ФормаНастройки",,ЭтаФорма);
    ФормаНастроек.Открыть();
КонецПроцедуры
AnryMc


Цитата(AnryMc @ 11.04.24, 11:07) необходимо зарегистрироваться для просмотра ссылки
Капитально туплю сегодня - помогите!!!


Цитата(takefive @ 11.04.24, 16:22) необходимо зарегистрироваться для просмотра ссылки
Вариант с оповещением...


Что и где?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.