Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Передача данных между формами
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
l2d808
7,7
Добрый день уважаемое сообщество. Поздравляю Вас с празником. Прошу помочь с ответом на вопрос:
У меня есть две формы. Одна открывается с другой модально.
ТМЦ = СоздатьОбъект("Справочник.ТМЦ");
Если ТМЦ.НайтиЭлемент(ТекущийЭлемент())=1 Тогда
    ОткрытьФормуМодально("Справочник.СоставПродукции");
КонецЕсли;

На Форме с которой я открываю, Есть ТЗ. После того как я вношу изменения во второй форме
(ОткрытьФормуМодально("Справочник.СоставПродукции")wink.gif и закрываю ее, на первой форме ТЗ должна обновится.
Обработка обновления выглядит так:
Процедура измСостав()  
    Состав.УдалитьСтроки();
    спр = СоздатьОбъект("Справочник.СоставПродукции");
    ТМЦ = ТекущийЭлемент();
    спр.ИспользоватьВладельца(тмц.ТекущийЭлемент());
    спр.ВыбратьЭлементы();  
    Пока Спр.ПолучитьЭлемент()>0 Цикл
        Состав.НоваяСтрока();
        Состав.ТМЦ=спр.Затрата;
        Состав.Количество=спр.кво;
        Состав.Измеритель=спр.БазЕдиница;
        
    КонецЦикла;
КонецПроцедуры

Как это реализовать.
takefive
один из вариантов - использовать механизм подбора

Процедура Сформировать()
    Перем КонтекстФормы;
    ОткрытьПодбор("Справочник.СоставПродукции","ФормаСписка",КонтекстФормы,0);
    КонтекстФормы.ИспользоватьВладельца(ТМЦ);
КонецПроцедуры

Процедура ОбработкаПодбора(Выбор,КонтекстФормы)
    Список.ДобавитьЗначение(Выбор,СокрЛП(Выбор));
КонецПроцедуры


ваш код тоже должен сработать. Строчку добавьте...

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

ТМЦ = СоздатьОбъект("Справочник.ТМЦ");
Если ТМЦ.НайтиЭлемент(ТекущийЭлемент())=1 Тогда
    ОткрытьФормуМодально("Справочник.СоставПродукции");
    измСостав();
КонецЕсли;


при открытии модально работа процедуры приостанавливаеться до закрытия формы


 ! 

Правила, п. 1, 12
 
Домовик
еще с переменной ТМЦ путаница. если подставить текст процедуры ИзмСостав() получается:

ТМЦ = СоздатьОбъект("Справочник.ТМЦ");
Если ТМЦ.НайтиЭлемент(ТекущийЭлемент())=1 Тогда
    ОткрытьФормуМодально("Справочник.СоставПродукции");
    Состав.УдалитьСтроки();
    спр = СоздатьОбъект("Справочник.СоставПродукции");
    ТМЦ = ТекущийЭлемент();
    спр.ИспользоватьВладельца(тмц.ТекущийЭлемент());
    спр.ВыбратьЭлементы();  
    Пока Спр.ПолучитьЭлемент()>0 Цикл
        Состав.НоваяСтрока();
        Состав.ТМЦ=спр.Затрата;
        Состав.Количество=спр.кво;
        Состав.Измеритель=спр.БазЕдиница;
        
    КонецЦикла;
КонецЕсли;
alex040269
можно возвращать данные через параметр формы.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.