База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как устранить зависание при обновлении ERP в процедуре обработки данных?
- В этой теме 1 ответ, 2 участника, последнее обновление 17 минут назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
27 июля 2026 в 10:36 #38215
При обновление ERP зависает обработчик РегистрыНакопления.РасчетыСПоставщиками.ОбработатьДанныеДляПереходаНаНовуюВерсию
-
27 июля 2026 в 10:36 #38216
Если при обновлении 1С:ERP зависает обработчик обновления регистра накопления «Расчеты с поставщиками» в процедуре ОбработатьДанныеДляПереходаНаНовуюВерсию, то это типичная проблема, связанная с большим объемом данных и особенностями обработки итогов в регистрах накопления.
Что делать:
1. Отключить использование итогов в регистре «Расчеты с поставщиками» перед запуском обработчика обновления, чтобы избежать постоянного пересчета итогов при записи данных. Итоги сильно замедляют обработку при большом объеме данных.
2. После завершения обработчика включить использование итогов обратно и пересчитать итоги.
3. Если есть возможность, выполнить обновление в режиме с отключенным многопользовательским доступом (монопольный режим).
4. Если база очень большая, можно попробовать обновлять на копии базы, чтобы не блокировать рабочую.
5. Проверить, нет ли в базе «битых» или неполных документов, которые могут вызывать зацикливание обработчика. Для этого можно использовать стандартные обработки проверки и исправления данных.
6. Если есть доработки в конфигурации, проверить, не влияют ли они на обработчик обновления регистра «Расчеты с поставщиками».
Пример программного отключения итогов в обработчике обновления:
|Процедура ОбработатьДанныеДляПереходаНаНовуюВерсию(Параметры) Экспорт
| // Отключаем итоги
| РегистрыНакопления.РасчетыСПоставщиками.УстановитьИспользованиеИтогов(Ложь);
| РегистрыНакопления.РасчетыСПоставщиками.УстановитьИспользованиеТекущихИтогов(Ложь);
|
| // Ваша логика обработки данных
| …
|
| // Включаем итоги обратно
| РегистрыНакопления.РасчетыСПоставщиками.УстановитьИспользованиеИтогов(Истина);
| РегистрыНакопления.РасчетыСПоставщиками.УстановитьИспользованиеТекущихИтогов(Истина);
|
| // Пересчет итогов (если нужно)
| УправлениеИтогами = Новый УправлениеИтогами();
| УправлениеИтогами.ПересчитатьИтоги(РегистрыНакопления.РасчетыСПоставщиками);
|КонецПроцедурыЕсли в типовой конфигурации этот код отсутствует, можно доработать обработчик обновления, добавив отключение итогов.
Рекомендую также посмотреть статью с примерами оптимизации обновления и отключения итогов:
https://infostart.ru/1c/articles/2410267/
Если проблема не решается, можно временно приостановить обработчик обновления регистра «Расчеты с поставщиками» через регистр сведений «Обработчики обновления» и выполнить обновление без него, а потом отдельно доработать и запустить обновление по этому регистру.
Еще вариант — проверить, не зарегистрированы ли в обработке объекты с ошибками или ссылающиеся на удаленные объекты, которые могут блокировать обработку.
Если нужна помощь с конкретным кодом обработчика — приложите его, помогу с доработкой.
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.