Обновить форму из которой вызывается вторая форма.

1. Metabos 29 30.05.24 10:12 Сейчас в теме
УФ. Есть форма справочника, на ней по кнопке подбирается номенклатура. И после добавления номенклатуры первая форма не обновляется, т.е. после добавления номенклатуры форму надо переоткрыть, чтобы было видно, что добавили. Что можно сделать?
По теме из базы знаний
Найденные решения
5. Metabos 29 30.05.24 12:41 Сейчас в теме
(4) Знаете, у меня получилось одной строкой ЭтаФорма.Элементы.Список.Обновить() в ОбработкаВыбора.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. vladimir_korshun 87 30.05.24 11:23 Сейчас в теме
3. Metabos 29 30.05.24 11:29 Сейчас в теме
(2) А как открыть вторую форму как подчинённую?
У меня открывается просто по ОткрытьФорму()
4. vladimir_korshun 87 30.05.24 11:30 Сейчас в теме
Первая форма, откуда открыываем
&НаКлиенте
Процедура КомандаОткрытьВторуюФорму(Команда)
    Оп = Новый ОписаниеОповещения("ВыполнитьПослеЗакрытияФормы", ЭтаФорма);
    
    ПараметрыФормы = Новый Структура("Проверка", "Это проверка"); //Это параметры, которые передаются в открываемую форму
    ОткрытьФорму("ОбщаяФорма.ФормаВторая", ПараметрыФормы, ЭтаФорма, ЭтаФорма.УникальныйИдентификатор, , ,Оп);
КонецПроцедуры

&НаКлиенте
Процедура ВыполнитьПослеЗакрытияФормы(РезультатЗакрытия, ДопПараметры) Экспорт //Эта процедура будет дергаться, когда открываемая форма закроется
    Если ТипЗнч(РезультатЗакрытия) = Тип("Структура") Тогда //Получаем параметры из подчиненной формы и проходим их, делаем с ними, что нам надо
        Для каждого Парам Из РезультатЗакрытия Цикл
            Сообщение = Новый СообщениеПользователю;
            Сообщение.Текст = "Парам: " + Парам.Ключ + " значение " + Парам.Значение;
            Сообщение.Сообщить();
        КонецЦикла;
    КонецЕсли;
КонецПроцедуры 
Показать


Ниже, вторая форма
&НаСервере //Тут обязательно на Сервере, так как Параметры доступны только там
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    Сообщение = Новый СообщениеПользователю;
    Сообщение.Текст = Строка(Параметры.Проверка); //Получаем параметры по их ключу, можно добавить проверку, вообще они там есть, а то если форма открывается без параметров тут будет падать в ошибку.
    Сообщение.Сообщить();
КонецПроцедуры

&НаКлиенте
Процедура КомандаЗакрыть(Команда) //Закрываем форму какой-нибудь своей командой, надо доработать, если вдруг юзер закроет форму крестиком, то параметрв в обратку не передадутся
    СписокПараметров = Новый Структура;
    СписокПараметров.Вставить("Параметр1", "Значение параметра 1");
    СписокПараметров.Вставить("Параметр2", "Значение параметра 2");
    Закрыть(СписокПараметров); //Передаем параметры в обратку в главную форму.
КонецПроцедуры

Показать
5. Metabos 29 30.05.24 12:41 Сейчас в теме
(4) Знаете, у меня получилось одной строкой ЭтаФорма.Элементы.Список.Обновить() в ОбработкаВыбора.
6. scarl1n 12 30.05.24 13:58 Сейчас в теме
(5)Ну если это форма элемента / документа, то лучше, я думаю, будет использовать метод Прочитать().
7. Metabos 29 30.05.24 14:13 Сейчас в теме
8. scarl1n 12 30.05.24 14:19 Сейчас в теме
(7)Для случая, когда у вас несколько реквизитов изменилось, но если у вас кнопка открывает форму только для изменения одного реквизита, то передача его в качестве владельца и обработка его события ОбработкаВыбора() будет оптимальна.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот