Project

Profile

Help

HostedRedmine.com has moved to the Planio platform. All logins and passwords remained the same. All users will be able to login and use Redmine just as before. Read more...

Bug #891484

Неоправданное обновление всех табличных полей на активных страницах всех обычных форм, имеющих обработчик

Added by Сергей Старых 12 days ago. Updated 11 days ago.

Status:
New
Priority:
Normal
Assignee:
-
Category:
Клиент. Обычная форма
Sprint/Milestone:
-
Start date:
Due date:
% Done:

0%

Estimated time:

Description

https://partners.v8.1c.ru/forum/t/1945151/m/1945151
https://forum.mista.ru/topic.php?id=860733

Конфигурация ПО

8.1-8.3.18, обычная форма

Проблема

При срабатывании внешнего события или оповещения формам выполняется неоправданное обновление всех табличных полей на активных страницах всех обычных форм, имеющих обработчик соответствующего события

Воспроизведение

Открыть приложенную внешнюю обработку в пустой базе в обычном приложении. Откроется форма с обработчиком оповещения и с двумя страницами, на каждой из которых находится свое табличное поле с обработчиком ПриВыводеСтроки:
Процедура КнопкаВыполнитьНажатие(Кнопка)
ПолучитьФорму("Форма2", ЭтаФорма).Открыть();
КонецПроцедуры
Процедура ТабличноеПоле1ПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
Сообщить("ПриВыводеСтроки1 " + ТекущаяДата());
КонецПроцедуры
Процедура ТабличноеПоле2ПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
Сообщить("ПриВыводеСтроки2 " + ТекущаяДата());
КонецПроцедуры
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
КонецПроцедуры
Процедура Тест() Экспорт
КонецПроцедуры

В этой форме нажать кнопку "Выполнить". При этом откроется форма "Форма2". В этой форме нажать кнопку "Выполнить". При этом выполнится код
Оповестить();

И в окно сообщений будет выведено

ПриВыводеСтроки1 16.10.2020 18:37:18

А ожидалось отсутствие сообщений.

Если же нажать кнопку "Тест", то выполнится код
ВладелецФормы.Тест();

И сообщений пользователю ожидаемо не выведется. Следовательно просто выполнение кода в форме не приводит к обновлению всех табличных полей ее активных страниц. Почему то именно после вызова обработчиков событий ОбработкаОповещения и ОбработкаВнешнегоСобытия платформа делает это. Но зачем?

В документации не нашел объяснения этому поведению. Проблема существует с рождения обычных форм. Впервые столкнулся с ней лет 13 назад.

К чему приводит такое поведение платформы?

Чем больше открыто обычных форм с обработчиками таких событий, тем больше кода выполняется при каждой отправке оповещения формам или внешнего события. Даже если в обработчиках ПриВыводеСтроки и ПриПолученииДанных выполняется только легкий код, то при большом числе форм будет заметна задержка. А уж если есть табличные поля с тяжелыми обработчиками, то тут начинаются много секундные ожидания. Если добавить сюда частую генерацию внешнего события, то получим паралич работы обычного приложения.

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

Не смотря на то, что в обычных формах теперь правятся только привнесенные ошибки, решил все таки опубликовать этот отчет о проблеме. Возможно это ошибка и ее все таки сочтут достаточно серьезной, чтобы сделать для нее исключение. Ну и возможно кто то подскажет способ обхода этой проблемы.

ВнешняяОбработка1.epf (9.27 KB) ВнешняяОбработка1.epf Сергей Старых, 2020-10-16 06:18 PM
clipboard-202010161918-wptr8.png (20.8 KB) clipboard-202010161918-wptr8.png Сергей Старых, 2020-10-16 06:18 PM
clipboard-202010161918-bgo1x.png (26.2 KB) clipboard-202010161918-bgo1x.png Сергей Старых, 2020-10-16 06:19 PM
clipboard-202010161918-jb9th.png (26.2 KB) clipboard-202010161918-jb9th.png Сергей Старых, 2020-10-16 06:19 PM
clipboard-202010161918-9atpb.png (11.1 KB) clipboard-202010161918-9atpb.png Сергей Старых, 2020-10-16 06:19 PM
250
250
250
250

Related issues

Related to Инструменты разработчика Tormozit для 1С - Bug #891475: Для обхода внесенной в 5.58 проблемы задержки при нажатия клавиш в обычном приложении добавлена общая настройка "Перехват клавиатурного ввода в обычном приложении"Closed2020-09-28

<a title="Actions" class="icon-only icon-actions js-contextmenu" href="#">Actions</a>
Related to Инструменты разработчика Tormozit для 1С - Bug #891525: Оптимизировано обновление отображения табличных полей в формах инструментовClosed2020-09-28

<a title="Actions" class="icon-only icon-actions js-contextmenu" href="#">Actions</a>

History

#1 Updated by Сергей Старых 12 days ago

  • Related to Bug #891475: Для обхода внесенной в 5.58 проблемы задержки при нажатия клавиш в обычном приложении добавлена общая настройка "Перехват клавиатурного ввода в обычном приложении" added

#2 Updated by Сергей Старых 12 days ago

  • Description updated (diff)

#3 Updated by Сергей Старых 12 days ago

  • Subject changed from Неоправданное обновление всех табличных полей на активных страницах обычных форм, имеющих обработчик to Неоправданное обновление всех табличных полей на активных страницах всех обычных форм, имеющих обработчик

#4 Updated by Сергей Старых 12 days ago

  • Description updated (diff)

#5 Updated by Сергей Старых 12 days ago

  • Description updated (diff)

#6 Updated by Сергей Старых 11 days ago

  • Description updated (diff)

#7 Updated by Сергей Старых 11 days ago

  • Related to Bug #891525: Оптимизировано обновление отображения табличных полей в формах инструментов added

Also available in: Atom PDF