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

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

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


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


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