Как передать значение обработно на форму

1. Raideres 7 15.09.20 14:17 Сейчас в теме
У меня есть форма с табличной частью отгрузкатоваров я с этой формы передаю на ФормаПроверкаКоличестваТоваровВДокументе

а как вернуть с ФормаПроверкаКоличестваТоваровВДокументе обратно ?


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

    КонецЕсли;
    Если Отказ Тогда
        Возврат;
    КонецЕсли;
    
    ОткрытьФормуПроверкиУпаковкиИсправленияКоличества(Форма);

КонецПроцедуры

&НаКлиенте
Процедура ОткрытьФормуПроверкиУпаковкиИсправленияКоличества(Знач Форма)
    
    
    ПараметрыФормы = Новый Структура;
	ПараметрыФормы.Вставить("ДокументАМОтгрузкаТоваров", Форма.Объект.Ссылка);
	//ПараметрыФормы.Вставить("РежимИсправления", ?(Действие = "Проверка", Ложь, Истина));
    Форма.РазблокироватьДанныеФормыДляРедактирования();
    ОткрытьФорму("Документ.АМ_ОтгрузкаТоваров.Форма.ФормаПроверкаКоличестваТоваровВДокументе",ПараметрыФормы, Форма);
    
   // Форма.Закрыть();

КонецПроцедуры
Показать
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. FatPanzer_Job 5 15.09.20 14:24 Сейчас в теме
На основной форме открываете форму проверки с оповещением. В обработчике оповещения обрабатываете результат проверки
&НаКлиенте
Процедура ОткрытьФормуПроверкиУпаковкиИсправленияКоличества(Знач Форма)
    
    
    ПараметрыФормы = Новый Структура;
    ПараметрыФормы.Вставить("ДокументАМОтгрузкаТоваров", Форма.Объект.Ссылка);

    Оповещение = Новый ОписаниеОповещения("ПослеПроверкиКоличества", Форма);
    ОткрытьФорму("Документ.АМ_ОтгрузкаТоваров.Форма.ФормаПроверкаКоличестваТоваровВДокументе",ПараметрыФормы, Форма,..., Оповещение);
    
   // Форма.Закрыть();

КонецПроцедуры

&НаКлиенте
Процедура ПослеПроверкиКоличества(РезультатПроверки, ДопСведения = Неопределено) Экспорт

КонецПроцедуры
Показать


На форме проверки формируете необходимые данные для возврата и :
Закрыть(РезультатПроверки)
3. SlavaKron 15.09.20 14:59 Сейчас в теме
В принципе, ничего передавать не надо. Контекст формы документа доступен в форме проверки через ВладелецФормы. Контекст закрытой формы проверки возвращается через дополнительные параметры.
&НаКлиенте
Процедура ОткрытьФормуПроверкиУпаковкиИсправленияКоличества(Команда)
	
	ФормаПроверки = ПолучитьФорму("Документ.АМ_ОтгрузкаТоваров.Форма.ФормаПроверкаКоличестваТоваровВДокументе", , ЭтотОбъект);
	
	ДополнительныеПараметры = Новый Структура("ФормаПроверки", ФормаПроверки);
	
	ОповещениеОЗакрытии = Новый ОписаниеОповещения("ОткрытьФормуПроверкиУпаковкиИсправленияКоличестваЗавершение­", ЭтотОбъект, ДополнительныеПараметры);
	ФормаПроверки.ОписаниеОповещенияОЗакрытии = ОповещениеОЗакрытии;
	ФормаПроверки.Открыть();
	
КонецПроцедуры

&НаКлиенте
Процедура ОткрытьФормуПроверкиУпаковкиИсправленияКоличестваЗавершение(РезультатВопроса, ДополнительныеПараметры) Экспорт
    
    ФормаПроверки = ДополнительныеПараметры.ФормаПроверки;
    
	// ФормаПроверки - контекст закрытой формы проверки
	
КонецПроцедуры
Показать
4. FatPanzer_Job 5 15.09.20 15:12 Сейчас в теме
(3) Вопрос религии. Я считаю, что если существует "форма проверки", то именно она и должна выдавать готовый результат проверки. А не свой контекст... Инструмент должен выдавать результат, а не набор инструкций.
7. SlavaKron 15.09.20 15:42 Сейчас в теме
(4) В целом согласен, но данный прием позволяет избежать создание дополнительных сущностей для передачи данных.
9. FatPanzer_Job 5 15.09.20 15:53 Сейчас в теме
(7) Да, согласен. Но в данном случае мы ограничиваем себя клиентским контекстом для работы с данными закрываемой формы.
5. Raideres 7 15.09.20 15:13 Сейчас в теме
(3) Slava получается я тупо могу так передать?
этаформа.ВладелецФормы.Объект.ОтгружаемыеТовары.Загрузить(Товары.выгрузить());
6. FatPanzer_Job 5 15.09.20 15:18 Сейчас в теме
(5) Нет. Загрузить-Выгрузить возможно только на сервере. А ВладелецФормы доступен только на клиенте.
8. SlavaKron 15.09.20 15:45 Сейчас в теме
(5) Как уже сказали в (6) не получится. Непонятно зачем вы меняете объект в форме проверки, а не в процедуре оповещения о закрытии.
Если структура коллекций одинаковая, можно использовать метод КопироватьДанныеФормы.
Оставьте свое сообщение
Вопросы с вознаграждением