Имя: Пароль:
1C
1С v8
ВводДоступен() некорректно отрабатывает (обычные формы)
0 EuVod
 
16.05.19
10:40
буквально в ходе работы пользователя "поломался" метод ВводДоступен()
как задумано - есть обычная форма (в ней есть обработка внешнего события - сканера). В ходе работы из нее открывается модальноя другая форма, в ней тоже обработчик внешнего события.

в каждом из них идет проверка, что если ЭтаФорма.ВводДоступен()  тогда и обрабатываем.
все было хорошо, при открытой модальной дочерней формы в родительской возвращалось ЭтаФорма.ВводДоступен() = Ложь.
но в один прекрасный момент стало в обеих формах возвращать ЭтаФорма.ВводДоступен() = Истина.
причем такое впечатление, что даже в начала сеанса все работало как надо, в какой-то момент произошло изменение поведение и теперь так.
Платформа 8.3.14.1630

обновление платформы было довольно задолго до эффекта.

кто знает, с чем может быть связано и как лечить?
Спасибо
1 Галахад
 
гуру
16.05.19
10:52
(0) "стало в обеих формах возвращать ЭтаФорма.ВводДоступен() = Истина"

Как узнали?
2 EuVod
 
16.05.19
10:57
ну отладчикм видно что условие проходит и событие отрабоаталось 2жды - один и тот же ШК проанализирован 2жды  -из-за этого вся логика ломается.

по точке останова не проанализируешь, потому что на ней уже ввод недоступен
3 EuVod
 
16.05.19
11:22
хотя даже если в дочерней поставить точку останова (в ней первой отрабатывает обработчик) - потом перескакивает в родительскую и отрабатывает снова

в тестовой базе на другом сервере тоже смое. похоже все е релиз платформы. но непонятно, почему ккое-то время как кажется "все работало" (смотрю логи сканирования - я пишу в текстовик для разборов - сначала там все норм, и в какой-то момент начинается по 2 одинаковых ШК(
4 catena
 
16.05.19
11:27
8.3.14 + ОФ + модальные окна? Наверное это знак, что пора логику менять.
5 Cyberhawk
 
16.05.19
11:29
Была подобная тема уже. Смирись.
6 EuVod
 
16.05.19
11:51
(4) ну врядли мы всю конфу будем переписывать под УФ... не до того пока )) и не окупится видимо.

и режим совместимости думаю не поможет.

(5) ок. понятно. )
7 catena
 
16.05.19
12:54
(6)А зачем тогда платформу поднимать? Забили они на ОФ, с каждым релизом что-нибудь ломается.
8 EuVod
 
16.05.19
13:06
(7) ну у нас на этом сервере много чего крутится ( в т.ч. и типовые)
+ хочется новых плюшек (какие-то же есть, по оптимизации запросов, СКД, расширений, УФ и т.п. все новое в конфе на УФ пытаемся делать. но рефакторить там все - сейчас не та ситуация в компании)
9 Cyberhawk
 
16.05.19
13:25
(8) "у нас на этом сервере много чего крутится ( в т.ч. и типовые)" // Несколько кластеров иметь под разными релизами не запрещено и ничего не стоит. Разве что при необходимости использования подключения в инфобазу через СОМ-коннекторы появляются доп. телодвижения.
10 EuVod
 
21.05.19
15:18
(9) т.е. на один сервак (аппаратный) поставить разные релизы безпроблемно? (мне казалось какие-то трудности...)
по ком тычемся в разные стороны... в т.ч. кажется и из серверных процедур
11 catena
 
22.05.19
06:48
12 Сияющий в темноте
 
22.05.19
08:34
Небольшая доработка с флагом СобытиеОбработано в глобальной переменной и сброс флага в процедуре глобального модуля(там же можно действие по умолчанию).
13 EuVod
 
22.05.19
09:36
(11) спасибо!

(12) это к какой проблеме? в смысле научить обработку события понимать, что оно уже обработано? я пока в родительской воткнул просто флаг что сканера нет перед вызовом модальных дочерних форм и сброс этого флага по возвращении.