Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Табличное поле при обновлении строк обновляет все окна (число прочтений - 3047 )
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1538
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Табличное поле при обновлении строк обновляет все окна
13. Марта 2017 :: 11:05
Печать  
Есть обработка с закладками. На одной закладке висит Табличное поле. Поставщик - таблица значений. При переключении на эту закладку ТП обновляет строки методом ОбновитьСтроки(). Вместе с обновлением строк ТП обновляются и все дочерние окна Предприятия.
Как побороть?
  

FormEx developer
Наверх
www  
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Табличное поле при обновлении строк обновляет все окна
Ответ #1 - 13. Марта 2017 :: 11:12
Печать  
"обновляются и все дочерние окна Предприятия"
каким образом установлен сей факт?
  

1&&2&&3
Наверх
 
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1538
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Табличное поле при обновлении строк обновляет все окна
Ответ #2 - 13. Марта 2017 :: 11:39
Печать  
trad писал(а) 13. Марта 2017 :: 11:12:
"обновляются и все дочерние окна Предприятия"
каким образом установлен сей факт?


Путем замера производительности в Отладчике. Функция, прописанная в табличной части журнала, открытого на заднем плане (дочерние окна Предприятия раскрыты во все окно), отъела четверть времени обновления формы обработки.
  

FormEx developer
Наверх
www  
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Табличное поле при обновлении строк обновляет все окна
Ответ #3 - 13. Марта 2017 :: 12:29
Печать  
Тестовая база
Общий журнал с функцией в колонке.
Создано три документа - при открытии журнала функция сработала три раза. В функции вывод в окно сообщений.
Поверх открыта тестовая обработка, нажата кнопка Сформировать.
https://www.dropbox.com/s/gm5tk5ks7lv6fwq/%D0%A1%D0%BA%D1%80%D0%B8%D0%BD%D1%88%D...
В отладчике:
Выполнена строка мТП.ОбновитьСтроки();
https://www.dropbox.com/s/voki20nrx0axy5q/%D0%A1%D0%BA%D1%80%D0%B8%D0%BD%D1%88%D...
  

1&&2&&3
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Табличное поле при обновлении строк обновляет все окна
Ответ #4 - 13. Марта 2017 :: 12:33
Печать  
1cpp 3.2.4.3
  

1&&2&&3
Наверх
 
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1538
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Табличное поле при обновлении строк обновляет все окна
Ответ #5 - 13. Марта 2017 :: 13:14
Печать  
Да, на тестовом примере тоже не удалось воспроизвести. Поспешил. Спасибо, буду копать дальше в чем дело.
  

FormEx developer
Наверх
www  
IP записан
 
Djelf
God Member
*****
Отсутствует


Ubuntu + wine@etersoft
+ 1C 7.7

Сообщений: 635
Местоположение: Питер
Зарегистрирован: 02. Ноября 2007
Пол: Мужской
Re: Табличное поле при обновлении строк обновляет все окна
Ответ #6 - 13. Марта 2017 :: 13:47
Печать  
АЛьФ писал(а) 13. Марта 2017 :: 13:14:
Да, на тестовом примере тоже не удалось воспроизвести. Поспешил. Спасибо, буду копать дальше в чем дело.

Как ни грустно, но это похоже ПерехватМыши(1) при этой установке даже установка флажка в списке значений на форме отчета приводит к обновлению журнала.
А если раскраска в журнале то переход от одной строке журнала перерисовывает его весь 2 раза, несмотря на ОтключитьОбновлениеПриРаскраске(1).
У меня все время ПерехватМыши(0) был, но вот как раз пару дней назад захотели время бездействия ловить, а ловить пришлось событие при отжатии и вот тоже думаю как теперь быть...
  
Наверх
www  
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1538
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Табличное поле при обновлении строк обновляет все окна
Ответ #7 - 13. Марта 2017 :: 14:08
Печать  
Djelf писал(а) 13. Марта 2017 :: 13:47:
АЛьФ писал(а) 13. Марта 2017 :: 13:14:
Да, на тестовом примере тоже не удалось воспроизвести. Поспешил. Спасибо, буду копать дальше в чем дело.

Как ни грустно, но это похоже ПерехватМыши(1) при этой установке даже установка флажка в списке значений на форме отчета приводит к обновлению журнала.
А если раскраска в журнале то переход от одной строке журнала перерисовывает его весь 2 раза, несмотря на ОтключитьОбновлениеПриРаскраске(1).
У меня все время ПерехватМыши(0) был, но вот как раз пару дней назад захотели время бездействия ловить, а ловить пришлось событие при отжатии и вот тоже думаю как теперь быть...


Предположил, что это возможно из-за formex, поэтому для своего тестового примера перетащил всю инициализацию из рабочей конфиги. Нет, не удалось воспроизвести глюк.
  

FormEx developer
Наверх
www  
IP записан
 
Djelf
God Member
*****
Отсутствует


Ubuntu + wine@etersoft
+ 1C 7.7

Сообщений: 635
Местоположение: Питер
Зарегистрирован: 02. Ноября 2007
Пол: Мужской
Re: Табличное поле при обновлении строк обновляет все окна
Ответ #8 - 13. Марта 2017 :: 14:41
Печать  
АЛьФ писал(а) 13. Марта 2017 :: 14:08:
Предположил, что это возможно из-за formex, поэтому для своего тестового примера перетащил всю инициализацию из рабочей конфиги. Нет, не удалось воспроизвести глюк.

Хм, да, на тесте не получается. Но на боевой базе отключение перехвата мыши помогает. Странно...

upd: Извини АЛьФ, за ложное направление, я идиот Подмигивание
Ну конечно при отключении перехвата мыши у меня перестает записываться Справочник.ЖурналАктивности и журналы перестают обновляться. Буду на sqlite переписывать чтобы 1с не дергать.

p.s. у меня много чего на табличных полях, есть обработки где и по 10шт натыкано, но такого эффекта не наблюдал, а тут совпало...
  
Наверх
www  
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Табличное поле при обновлении строк обновляет все окна
Ответ #9 - 13. Марта 2017 :: 17:52
Печать  
Да, семерка так устроена, что при любой штатной транзакции записи (интерактивной или программной) происходит апдейт всех открытых форм списков
  

1&&2&&3
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать