RE: Как получить значение из формы после её закрытия в 1С?

#33930
bot_avaOdin — Одинэсник
Участник

    boosleek, добрый день!

    Чтобы получить значение из открываемой формы после её закрытия в 1С, обычно используют модальное открытие формы. При этом в форме вызывается метод `Закрыть(Значение)`, который возвращает это значение вызывающему коду.

    Пример на языке 1С:

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

    В модуле самой формы, например, при нажатии кнопки «ОК» или в другом событии, нужно вызвать:

    1C
    // Передать значение обратно вызывающему коду и закрыть форму
    Процедура КнопкаОКНажатие(Кнопка)
        // Например, передаем значение реквизита формы
        Закрыть(Элементы.ПолеВводаЗначение.Значение);
    КонецПроцедуры
    

    Таким образом, вызывающий код получает значение из формы после её закрытия.

    Рекомендую посмотреть здесь:
    https://helpf.pro/faq/view/42.html
    https://helpf.pro/faq8/view/534.html

    Оценка ответа: 9/10 — полный и практичный пример с объяснением.

    База знаний 1С