1. user797159 04.12.18 13:06 Сейчас в теме

Проблема с автообновлением списков документов

Всем доброго времени суток!

Столкнулся с такой проблемой/багом/фичей в 1С. Есть некая обработка "Рабочее место", на форме которой размещено множество списков документов и справочников. Естественно на множество из них подвешены процедуры ПриПолученииДанных и ПриВыводеСтроки. На некоторых списках установлено автообновление - 60 секунд. Было замечено, что при обновлении или автообновлении одного списка, обновляются все списки на форме и естественно срабатываю вышеупомянутые события, что в итоге замедляет работы платформы. Пересмотреть все процедуры ПриПолученииДанных и ПриВыводеСтроке можно и скорее всего оно даст свой результат. Но суть вопроса именно в том, почему при обновлении одного списка, обновляются все списки формы?

Данные ошибки были замечены на 8.3.10 и на 8.2.19 Обычное приложение. Конфигурация - управление торговлей 2.3

Упрощенная версия обработки во вложении
Прикрепленные файлы:
РабочееМесто.epf
Найденные решения
17. insurgut 192 04.12.18 18:12 Сейчас в теме
(16) какая ошибка? Что при обновлении одного списка документов на форме происходит вызов "При получении данных" другого списка этой же формы? До сих пор не понимаю, где ошибка то? При получении данных так и работает - на получение данных формой, на которой список расположен. И работает он так уже N-надцать лет.
user797159; +1 Ответить
Остальные ответы
Избранное Подписка Сортировка: Древо
4. j.r.r 23 04.12.18 13:31 Сейчас в теме
(1) Возможно там прописано что-то вроде ОбновитьИнтерфейс(). А если хотите работоспособность платформы, то делайте обновление по нажатию или вешайте ещё на какое событие
9. lefthander 04.12.18 13:38 Сейчас в теме
(1)Каким образом на списках установлено автообновление?
15. insurgut 192 04.12.18 16:51 Сейчас в теме
(1) смысл выкладывать пустую обработку без реального кода?

В обработке у вас открывается документ список реализаций без отбора. Как минимум - задавайте ограничение/отбор в пределах текущего дня/месяца. А лучше переделайте в таблицу, которую заполняете по событиям таблицы заказов.
16. user797159 04.12.18 18:06 Сейчас в теме
(15)
В обработке у вас открывается документ список реализаций без отбора. Как минимум - задавайте ограничение/отбор в пределах текущего дня/месяца. А лучше переделайте в таблицу, которую заполняете по событиям таблицы заказов.


Потому что в этой обработке уже реализована интересующая ошибка. И обработка намеренно создана максимально пустой, чтобы показать, что даже в пустой обработке ошибка присутствует
17. insurgut 192 04.12.18 18:12 Сейчас в теме
(16) какая ошибка? Что при обновлении одного списка документов на форме происходит вызов "При получении данных" другого списка этой же формы? До сих пор не понимаю, где ошибка то? При получении данных так и работает - на получение данных формой, на которой список расположен. И работает он так уже N-надцать лет.
user797159; +1 Ответить
18. user797159 04.12.18 18:21 Сейчас в теме
(17) Спасибо. Это как раз и интересовало. Хотя до сих пор не понимаю, почему оно так работает. Почему данные получает один список, а событие срабатывает на другом списке? И почему тогда эти события привязаны объекту табличноеПоле а не к форме в целом, если оно реагирует на обновление луюого списка на форме? Кстати ПриВыводеСтроки тоже реагирует на обновление других списков. Получается создавать такие обработки с большим количеством списком и со всякими динамическими обработчиками не есть хорошо. И получается пора все таки переходить на управляемые формы.
19. insurgut 192 04.12.18 20:50 Сейчас в теме
(18) ну и не сказать, что так делать категорически нельзя. У меня много списков, в которых делаются те или иные вычисления и при получении данных и при выводе строки. Оно просто как - вначале делаешь на файловой. Документов мало, все летает. База растет - все начинает тормозить. С файлового варианта переходишь на клиент-серверный вариант. Все летает. База растет. В какой-то момент начинает подтормаживать. Запускаешь замер производительности, смотришь узкие места, где код выполняется дольше всего - придумываешь как оптимизировать.

Да, в этом у управляемых форм и динамических списков есть плюсы - расчет по сути происходит только для отображаемых данных. Но и минусов там достаточно. Точнее сказать не минусов, а нюансов, на обход которых по первой затратишь гораздо больше времени, чем потратил бы в обычном приложении, но это все дело наживное и с опытом уже отступает на второй план.
22. user797159 05.12.18 15:26 Сейчас в теме
(19) Ну сами по себе процедуры при получении данных безобидны, если их грамотно использовать. Просто у меня на форме таких списков больше 20, и дергались каждый из них каждые пять секунд. При этом независимо от того, какая у тебя сейчас активная фора, Форма документа, отчет открыли или что то другое))) Пока эта тяжелая обработка открыта и висит в окне 1С у пользователя, она кажддые пять секунд обновляет все списки, которые пользователь успел хоть раз открыть\посмотреть за время сеанса и вызывает событие при получении данных. А почему каждые пять секунд - потому что было 2 списка, у которых было настроено автообновление каждые 10 секунд. И было бы не страшно, если бы эти списки обновлялись каждые 10 секунд - На них даже ничего навешено не было))) Но нет же, мы обновляем все списки на форме и фигачим ненужные запросы каждые 5 секунд, даже если нам эти списки сейчас и нафиф не нужны :::))).

Автообновление я то убрал, и пока что нахожусь в процессе пересмотра всех процедур навешенных на списки. Просто был очень удивлен таким поведением платформы.
21. lefthander 05.12.18 08:51 Сейчас в теме
2. user614822 22 04.12.18 13:25 Сейчас в теме
Вы молодец! Заметили как работает "Рабочее место"!
А вот ошибок в описании работы обработки в вашем описании я не заметил....
Если вам не нужна эта обработка - не запускайте ее - не будет тормозить...
Или помощнее компы купите.
3. lefthander 04.12.18 13:29 Сейчас в теме
(2)Хороший ответ, вот только не позволяет автору топика понять что делать дальше, особенно если купит компы помощнее и проблема останется... :)
8. namazi74 2 04.12.18 13:38 Сейчас в теме
5. DarkUser 04.12.18 13:34 Сейчас в теме
Это больше похоже на проблему кода. Кто же автообновляет списки каждые 60 секунд?!
11. insurgut 192 04.12.18 13:48 Сейчас в теме
(5) например обработки электронной очереди со статусами заказов покупателей. Ну так, на вскидку.
6. user614822 22 04.12.18 13:35 Сейчас в теме
А мы то тут при чем?
Он НИЧЕГО не сообщил о проблеме...
Ни конфу ни на чем крутит ни саму обработку не показал...

Да можно сказать что у меня тормозит обработка - посоветуйте что делать?
Какой ответ вы дождетесь на такую тему?
13. user797159 04.12.18 15:39 Сейчас в теме
(6) Напишу немного подробней. На форме есть несколько списков документов. У одного из них стоит автообновление с периодом 60 секунд. Обновляться должен по идее только этот список. Но по неведомым причинам обновляются все списки, которые размещены на форме. То, что происходит при обновлении всех списков - это другая проблема, и да там можно найти что оптимизировать. суть вопроса - почему обновляются все списки на форме, когда должен обновляться только один.

Внес изменения в тему поста. Добавил упрощенную версию обработки с двумя списками документов. При этом один список обновляется раз в 10 секунд, а на второй повешено событие ПриПолученииДанных. На моей платформе второй список каждые 10 секунд вызывает это событие.
20. lefthander 05.12.18 08:47 Сейчас в теме
(13)без контекста трудно понять в чем причина такого поведения.
7. user614822 22 04.12.18 13:37 Сейчас в теме
Списки обновляют и чаще!
Вы знаете что там за списки?
10. insurgut 192 04.12.18 13:45 Сейчас в теме
Это ни фича и ни баг. Это стандартное поведение платформы методов при выводе строки и при получении данных. Проблема - да. Чтобы решить её, то нужно пересматривать все, что у вас делается при выводе строки и при получении данных. Вполне вероятно, что многое можно решить динамическим списком + настройкой оформления динамического списка.

Стандартный рабочий стол кассира (например, если о нем речь) тормозить не будет. А вот неоптимальный/некорректный код при выводе строки и при получении данных - запросто.
12. lefthander 04.12.18 14:07 Сейчас в теме
(10)Ничего что у автора обычное приложение? Динамические списки разработаны для управляемых форм.
14. insurgut 192 04.12.18 16:42 Сейчас в теме
(12) тем более - пора переходить на управляемые формы
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Разработчик 1С
Москва
зарплата от 100 000 руб. до 160 000 руб.
Полный день

Программист 1С
Москва
зарплата от 80 000 руб.
Полный день

Консультант-аналитик 1С
Санкт-Петербург
Полный день

Консультант-аналитик 1С
Москва
зарплата от 120 000 руб. до 120 000 руб.
Полный день

Senior 1C Developer ЛЮБОЙ ГОРОД
Москва
зарплата от 80 000 руб.
Полный день