Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Форма выбора не возвращает значение

Форма выбора не возвращает значение
Я
   Родом из детства
 
09.08.21 - 14:44
Всем здравствуйте!
Имеется обработка (управляемая форма). На форме обработки добавляю кнопку для множественного выбора документов(их потом добавляют в таблицу).
Обработчик кнопки:
&НаКлиенте
Процедура Импорт(Команда)
    ПараметрыВыбора = Новый Структура;
    ПараметрыВыбора.Вставить("РежимВыбора",Истина);
    ПараметрыВыбора.Вставить("МножественныйВыбор",Истина);
    
    ОбработкаВыбора = Новый ОписаниеОповещения("ПриЗакрытииФормыВыбора", ЭтаФорма);
    
    ОткрытьФорму("Документ.ЗаказПокупателя.ФормаВыбора",ПараметрыВыбора,Команда, , , , ОбработкаВыбора);
КонецПроцедуры

&НаКлиенте
Процедура ПриЗакрытииФормыВыбора(Значение, ДопПараметры) Экспорт
    
    Если Значение = Неопределено Тогда  ///Если ничего не выбрать - вернется пустое значение (Неопределено)
        Возврат;
    КонецЕсли;
    
    МассивДокументов = Значение ///Если Множественный Выбор - то вернется массив

КонецПроцедуры
//////////////////////////
Форма Документ.ЗаказПокупателя.ФормаВыбора - обычная. В неё не добавлял никаких обработчиков. Отладкой не попадаю в в процедуру "ПриЗакрытииФормыВыбора"(это модуль формы обработки)
Что я делаю не так?)
   ДенисЧ
 
1 - 09.08.21 - 14:50
Попробуй оповещение в форме поймать
   Родом из детства
 
2 - 09.08.21 - 14:56
(1) Не ловится(. Мб нужно что-то писать в модуле формы выбора?
   ads55
 
3 - 09.08.21 - 15:02
(2) ОбработкаВыбора = Новый ОписаниеОповещения("ПриЗакрытииФормыВыбора", ЭтаФорма, "ПодборДокументов");
   Родом из детства
 
4 - 09.08.21 - 15:06
(3) не помогло
   ads55
 
5 - 09.08.21 - 15:13
(4) а обработка оповещения родительской формы что говорит?
   Родом из детства
 
6 - 09.08.21 - 15:18
(5) в нее не входит точка останова
   hhhh
 
7 - 09.08.21 - 15:18
(4) в ОткрытьФорму() забыл владельца ЭтаФорма указать. Укажи, тогшда это оповещение выброси нахрен в мусорное ведро, а результат будешь ловить в стандартной ОбработкаВыбора.
   Мультук
 
8 - 09.08.21 - 15:20
(0) Обработка. Одна кнопка. УТ 11.4 "Сообщить" выводит выбранные заказы


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


&НаКлиенте
Процедура ПриЗакрытииФормыВыбора(Значение, ДопПараметры) Экспорт
    Если ТипЗнч(Значение) = Тип("Массив") Тогда
        Для каждого эл из Значение Цикл
            Сообщить(эл);
        КонецЦикла;    
    Иначе
        Сообщить(Значение);
    КонецЕсли;    
КонецПроцедуры
   ads55
 
9 - 09.08.21 - 15:20
(6) ОбработкаОповещения() на родительской форме есть?
   Родом из детства
 
10 - 09.08.21 - 15:22
(7) это я тестил, там была "ЭтаФорма" - тоже не работало...
   Родом из детства
 
11 - 09.08.21 - 15:23
(9) нет
   ads55
 
12 - 09.08.21 - 15:26
(11) уже можно добавить :)
   Родом из детства
 
13 - 09.08.21 - 15:28
(12) а нужно ли? Оповещение ведь, по идее, все-равно принимается
   Родом из детства
 
14 - 09.08.21 - 15:30
(13) хотя, для отладки можно
   Родом из детства
 
15 - 09.08.21 - 15:31
В обработку оповещения на родительской форме не попадает
   hhhh
 
16 - 09.08.21 - 16:11
(10) забыл в вызываемой форме ОповеститьОВыборе() походу
   hhhh
 
17 - 09.08.21 - 16:13
(16) делаешь в вызываемой форме ОповеститьОВыборе   , а в вызывающей   ОбработкаВыбора.
   Родом из детства
 
18 - 09.08.21 - 16:14
(16) хм, мб
   Родом из детства
 
19 - 09.08.21 - 16:59
Короче, суть была в ином - виновник - параметр "ДопПараметры", в процедуре, которую вызывает оповещение после закрытия формы выбора.
Процедура ДобавитьЗаказы(Значение, ДопПараметры) Экспорт - так не работало
Процедура ДобавитьЗаказы(Значение, ДопПараметры = неопределено) Экспорт - так заработало

Список тем форума
 
Независимо от того, куда вы едете — это в гору и против ветра!
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.