[РЕШЕНО] Получить значения из формы

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Peroman, 19 апр 2018.

  1. TopicStarter Overlay
    Peroman
    Offline

    Peroman Профессионал в 1С

    Регистрация:
    26 май 2009
    Сообщения:
    1.028
    Симпатии:
    28
    Баллы:
    54
    Всем доброго времени суток.

    Есть:
    Дополнительная обработка. У неё есть две формы. Основная форма и дополнительная форма
    На доп. форме есть ТЗ, которое заполняется в обработчике ПриОткрытии().

    Нужно:
    Из основной формы, вызвать доп. форму, выбрать строку, в ТЗ доп. формы и при нажатии кнопки доп. формы Выполнить, передать выбранное значение, в основную форму и закрыть доп. форму.
  2. web.num
    Offline

    web.num Опытный в 1С Команда форума

    Регистрация:
    6 окт 2011
    Сообщения:
    941
    Симпатии:
    6
    Баллы:
    29
    ОкрытьФорму(п1,п2,п3,п4,п5,п6, Новый ОписаниеОповещения("ПроцедураПриЗакрытииДопФормы", ЭтотОбъект))
    При закрытии доп формы у тебя должен выполняться код в процедуре "ПроцедураПриЗакрытииДопФормы", вторым твоим параметром все данные которые ты соберешь при нажатии кнопки доп формы, в которой у тебя будет стандартная процедура Закрыть(), в которую ты передашь свои данные, т.е вот так: Закрыть(ЗначениеВыбраннойСтроки); Это все описано под 8.3 УФ
    Peroman нравится это.
  3. TopicStarter Overlay
    Peroman
    Offline

    Peroman Профессионал в 1С

    Регистрация:
    26 май 2009
    Сообщения:
    1.028
    Симпатии:
    28
    Баллы:
    54
    Код:
            СтруктураПараметров = Новый Структура("МассивОбъектов", МассивОбъектов);
            ОткрытьФорму("ВнешняяОбработка.ПаспортаКачестваВПФ.Форма.ФормаВыбораПаспорта", СтруктураПараметров);
    
    Я решил немного по другому задачу. Я передал МассивОбъектов в параметры доп. формы и остальные действия делаю уже в ней.
  4. Сметанин
    Offline

    Сметанин

    Регистрация:
    Вторник
    Сообщения:
    3
    Симпатии:
    0
    Баллы:
    1
    Всем привет. Аналогичная задача. На форме есть таблица, в одной из колонок хранится список значений (булевских). При нажатии на кнопку выбора в этой колонке открывается вспомогательная форма с флажками и должны значения флажков сохраняться в колонку таблицы первой формы. Не получается.
    В основной форме:
    Код:
    &НаКлиенте
    Процедура ТаблицаСчетовСубконтоНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
        СтандартнаяОбработка = Ложь;
        ПараметрыФормы = Новый Структура("Счет,Субконто", Элементы.ТаблицаСчетов.ТекущиеДанные.Счет, Элементы.ТаблицаСчетов.ТекущиеДанные.Субконто);
        ОткрытьФорму("ВнешнийОтчет.СравнениеОборотов.Форма.ФормаСубконто", ПараметрыФормы, ТаблицаСчетов, , , , Новый ОписаниеОповещения("ПроцедураПриЗакрытииДопФормы", ЭтотОбъект));
    КонецПроцедуры
    
    &НаКлиенте
    Процедура ПроцедураПриЗакрытииДопФормы(Значение, СЗ) Экспорт
        Элементы.ТаблицаСчетов.ТекущиеДанные.Субконто = СЗ;   
    КонецПроцедуры
    
    В вспомогательной:
    Код:
    &НаКлиенте
    Процедура ОК(Команда)
        СЗ = Новый СписокЗначений;
        СЗ.Добавить(ФлагСубконто1);
        СЗ.Добавить(ФлагСубконто2);
        СЗ.Добавить(ФлагСубконто3);
        Закрыть(СЗ);
    КонецПроцедуры
    В отладчике смотрю СЗ передается Неопределено
  5. Сметанин
    Offline

    Сметанин

    Регистрация:
    Вторник
    Сообщения:
    3
    Симпатии:
    0
    Баллы:
    1
    Предельно упростил пример. Создал обработку с 2 формами, на каждой создал строковый реквизит и кнопку. Хочу чтобы из вспомогательной формы передавалось значение реквизита в основную.
    В основной форме:
    Код:
    &НаКлиенте
    Процедура Команда1(Команда)
        ОткрытьФорму("ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма1", , , , , , Новый ОписаниеОповещения("ПроцедураПриЗакрытииДопФормы", ЭтотОбъект));
    КонецПроцедуры
    
    &НаКлиенте
    Процедура ПроцедураПриЗакрытииДопФормы(Значение, Стр) Экспорт
        Реквизит1 = Стр;   
    КонецПроцедуры
    В вспомогательной:
    Код:
    &НаКлиенте
    Процедура Команда1(Команда)
        Закрыть(Реквизит1);
    КонецПроцедуры
    
    ЧЯДНТ?
  6. Сметанин
    Offline

    Сметанин

    Регистрация:
    Вторник
    Сообщения:
    3
    Симпатии:
    0
    Баллы:
    1
    Получилось через Оповестить()
    В вспомогательной форме:
    Код:
    Оповестить("Стр", Реквизит1);
    В Основной:
    Код:
    &НаКлиенте
    Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
        Если ИмяСобытия = "Стр" Тогда
            Реквизит1 = Параметр;
        КонецЕсли;
    КонецПроцедуры