Имя: Пароль:
1C
1С v8
Отбор в форме выбора 100500-й раз
0 qazaz
 
04.07.19
18:46
Приветствую,

Есть вроде бы простая много раз обсуждавшаяся задачка - отбор в форме выбора.

Делаю как обычно:
     В реквизит ...УстановитьДействие("НачалоВыбора",...
     В процедуре этого действия СтандартнаяОбработка=Ложь; и открываю форму выбора с отбором.

Замечаю что выглядит все как-то странно, форма выбора открывается дважды.
Отключаю открытие формы выбора со своим отбором и вижу что форма выбора таки открывается.

Ставлю везде где только можно СтандартнаяОбработка=Ложь чтоб просто отловить откуда она открывается -  не помогло.

Конфигурация УХ, документ с МегаТаблицей на форме. Эта МегаТаблица формируется из общих модулей.
У меня единственная мысль что где-то еще моему реквизиту назначена еще какая-то процедура на НачалоВыбора.

Можно навесить одному реквизиту несколько процедур на одно событие?
Если да о как их найти?

Ну и может еще чего посоветуете?

Спасибо
1 Вафель
 
04.07.19
18:47
а если закомментировать и оставить только
СтандартнаяОбработка=Ложь
2 Fragster
 
гуру
04.07.19
18:49
СтандартнаяОбработка с опечаткой написано?
3 qazaz
 
04.07.19
18:54
(1) так и делал, только СтандартнаяОбработка=Ложь оставлял
(2) копировал из параметров процедуры, попробую щас еще разок
4 qazaz
 
04.07.19
19:05
(2), перепроверил, не помогло.
Причем СтандартнаяОбработка=Ложь отрабатывает в ...ОбработкаВыбора
Т.е. выбор не происходит)

А ...НачалоВыбора сцуко происходит.
5 Жан Пердежон
 
04.07.19
19:26
запусти замер производительности, посмотри какой код выполняется
6 Жан Пердежон
 
04.07.19
19:31
в любом случае лучше б код показал
7 qazaz
 
04.07.19
20:09
(6) Вот (модуль формы)

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
     много чего и это:

     Элементы["КроссТаблица_ИзмерениеСтрока_Организация"].УстановитьДействие("НачалоВыбора", "ОУ_КроссТаблицаОрганизацияНачалоВыбора");
        Элементы["КроссТаблица_ИзмерениеСтрока_Организация"].УстановитьДействие("НачалоВыбораИзСписка",
     "ОУ_КроссТаблицаОрганизацияНачалоВыбораИзСписка");
        Элементы["КроссТаблица_ИзмерениеСтрока_Организация"].УстановитьДействие("ОбработкаВыбора",
     "ОУ_КроссТаблицаОрганизацияОбработкаВыбора");

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

&НаКлиенте
Процедура ОУ_КроссТаблицаОрганизацияНачалоВыбора(Элемент, СтандартнаяОбработка)
    
    СтандартнаяОбработка = Ложь;
    
КонецПроцедуры    

&НаКлиенте
Процедура ОУ_КроссТаблицаОрганизацияНачалоВыбораИзСписка(Элемент, СтандартнаяОбработка)
    
    СтандартнаяОбработка = Ложь;

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

&НаКлиенте
Процедура ОУ_КроссТаблицаОрганизацияОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
    
    //СтандартнаяОбработка = Ложь;
        
КонецПроцедуры

Причем в ОУ_КроссТаблицаОрганизацияОбработкаВыбора если включить СтандартнаяОбработка = Ложь она работает.
8 qazaz
 
04.07.19
20:14
(5) Ковырну замер, спс.
9 qazaz
 
04.07.19
20:46
Отладчиком прилетаю в ОУ_КроссТаблицаОрганизацияНачалоВыбора и там СтандартнаяОбработка таки Ложь.
И когда жму "продолжить отладку" открывается ФормаСписка.
10 qazaz
 
05.07.19
20:15
Частично помогло отключение СтандартнойОбработки в процедуре КроссТаблицаВыбор (отключения СтандартнойОбработки в НачалоВыбора реквизита не хватало).
Частичность состоит в том что если перейти в соседнюю колонку КроссТаблицы со СтандартнымиОбработками и вернутся в нужную колонку то там опять будет СтандартнаяОбработка)
11 hhhh
 
05.07.19
22:19
(9) попробуй так

Процедура ОУ_КроссТаблицаОрганизацияНачалоВыбораИзСписка(Элемент, Хренотень, СтандартнаяОбработка)
12 qazaz
 
09.07.19
09:30
Спс, попробую, но по-моему когда все отключал в НачалоВыбораИзСписка у меня вообще не заходило.