Цитата |
---|
Разиф Нурмухаметов пишет: Процесс получить письмо был замерен в отладчики как замер производительности и показал следующие: что основное время уходить на: ОбщийМодуль.УправлениеЭлектроннойПочтой.Модуль 1 427 МассивПисем = ИнтернетПочта.Выбрать(НЕ УчетнаяЗапись.ОставлятьКопииСообщенийНаСервере, МассивЗаголовковПисем); 1 18 секунд 89,86% |
Ситуация следующая: при получении писем конфигурация (как и любой другой почтовик) должна понять - какие письма нужно загрузить, а какие уже загружены. Почтовый сервер не может хранить информацию о том, какие письма кому он отдал. Он может лишь по запросу от почтового клиента предоставить заголовки всех входящих писем, которые в нем хранятся. Соответственно почтовый менеджер вынужден сравнивать все полученные от сервера заголовки писем c заголовками писем в своей базе. Только так он сможет понять, какие письма уже загружены, а какие нет (не найден заголовок - значит письмо новое).
Тот самый "МассивЗаголовковПисем", который и передается в метод, вызывающий зависание системы.
Вероятно у вас не только огромное число писем в базе, но и на почтовом сервере письма не удаляются после получения и не очищаются через некоторое время. В итоге процесс сравнения заголовков занимает очень много времени. А заголовок письма - это большая текстовая строка,
Решить проблему можно только очисткой папки входящих на почтовом сервере, необходимо скинуть из "входящих" все старые письма в архив.
Так же имейте ввиду что если вы полностью удалите письма из 1С, но эти письма все еще есть у вас в почтовом сервере - они опять будут загружены! Весь система не найдет заголовков и решит что это новая почта. Можно конечно врезаться в алгоритм получения и вставить какую то проверку на дату получения писем, чтобы не грузить "старье". В типовом механизме грузится все. Но правильнее перенести старые входящие в архив, поднимать письма за прошлые года нужно очень редко.
Тогда сразу же список заголовков от сервера станем меньше и сравнение быстрее.
Соответственно если удалить или скинуть в архив старые письма на сервере, то можно у этих писем в 1С очистить заголовки, ведь мы уверены что этих писем во входящих уже нет. Таким образом скорость сравнения и загрузки новой почты должна еще многократно увеличиться.