Имя: Пароль:
1C
1С v8
ПриАктивизацииОбласти() в поле табличного документа
0 AlexNecro
 
30.10.12
06:25
Проблема следующая:
на форме два поля табличного документа, при щелчке по области в одном из них, раскрашивается область во втором (такой же обработчик стоит во втором птд); пока щелкаешь по областям в одном птд, всё ОК, стоит хоть один раз щелкнуть по области во втором птд, начинается бесконечный цикл: вызывается ПриАктивизацииОбласти() то в одном то в другом птд. А я точно знаю, что это как-то должно работать.
Пробовал отключать обработчик на время раскраски:

Действие = ЭлементыФормы.Поле1.ПолучитьДействие("ПриАктивизацииОбласти");
ЭлементыФормы.Поле1.УстановитьДействие("ПриАктивизацииОбласти",Новый Действие("Кукла"));
ЭлементыФормы.Поле2.УстановитьДействие("ПриАктивизацииОбласти",Новый Действие("Кукла"));
СменитьАктивныйИнтервал(Расшифровка);
ЭлементыФормы.Поле1.УстановитьДействие("ПриАктивизацииОбласти",Действие);
ЭлементыФормы.Поле2.УстановитьДействие("ПриАктивизацииОбласти",Действие);

Кукла - пустая процедура, так же пробовал вставлять Неопределено, но ничего не вызывается до выхода из текущего вызова, а после выхода опять всё зацикливается.
1 AlexNecro
 
30.10.12
06:47
2 AlexNecro
 
30.10.12
06:47
* платформа 1С:Предприятие 8.1 (8.1.15.14)
3 AlexNecro
 
30.10.12
06:53
на 8.2 всё работает как ожидается, но совершенно точно на 8.1 аналогичная программа работала тоже, но к сожалению я исходника не видел
4 AlexNecro
 
30.10.12
08:29
Похоже, помогает такая заплатка:
Привызове обработчика отключаем обработчики и ставим таймер, в котором подключаем их обратно. выглядит забавно:

https://docs.google.com/open?id=0B9diXI_2THP2Z3c4WVRFdkRCZlE