При интенсивной работе пользователей, проведении массовых обменов по РИБ или выполнении группового перепроведения документов в конфигурации «1С:Управление торговлей 11.5» администраторы часто сталкиваются с аварийным завершением фоновых процессов. В журнале регистрации появляется критическая ошибка: «Превышен максимальный расход памяти сервера за один вызов», связанная с регламентной процедурой ЗаданияКРаспределениюВзаиморасчетов.
Разберем по шагам природу возникновения этой неисправности, а также рассмотрим комплекс проверенных способов её устранения — от быстрой корректировки настроек кластера серверов до ручной нормализации служебных очередей.
Проанализируем архитектуру подсистемы онлайн-взаиморасчетов в 1С:УТ 11.5. В момент проведения первичных документов программа не выполняет полный расчет графиков задолженности и распределения по ФИФО синхронно, чтобы не задерживать интерактивную работу пользователей. Вместо этого в специализированные регистры сведений помещаются записи-триггеры. Основную нагрузку несут регистры ЗаданияКРаспределениюВзаиморасчетов, ЗаданияНеоперативногоДопроведенияДокументов и ОшибкиОчередейЗаданий.
В дальнейшем регламентные задания выбирают накопленные строки и выполняют фоновый расчет. Сбой с исчерпанием памяти происходит по следующим причинам:
rphost за один вызов.Самое оперативное системное решение, позволяющее фоновому заданию завершить «тяжелый» вызов — временное снятие ограничений на уровне кластера серверов 1С:Предприятия.
Выполним следующие действия в консоли администрирования rac или через графическую оснастку управления кластером:
0 (в некоторых версиях платформы используется значение -1), что полностью отключает лимитирование объема памяти на один конкретный серверный вызов.rphost или всей службы кластера, чтобы освободить зависшие ресурсы сервера.Важное предупреждение: отключение безопасного лимита решает симптом, но при бесконечном росте цепочки документов может привести к превышению глобального параметра «Максимальный объем памяти рабочих процессов», из-за чего рабочий процесс аварийно перезапустится для всех пользователей базы.
Если очередь заданий парализована и регламентные задания непрерывно падают, лучшим решением будет очистка регистров очереди с последующим контролируемым перерасчетом. Сами регистры ЗаданияКРаспределениюВзаиморасчетов и ЗаданияНеоперативногоДопроведенияДокументов являются транзитными: удаление записей из них не удаляет первичные финансовые документы и не искажает фактические проводки.
Рассмотрим программный пример очистки очереди через внешнюю обработку:
НаборЗаписей = РегистрыСведений.ЗаданияКРаспределениюВзаиморасчетов.СоздатьНаборЗаписей();
// Записываем пустой набор с очисткой данных
НаборЗаписей.Записать();
НаборНеоперативных = РегистрыСведений.ЗаданияНеоперативногоДопроведенияДокументов.СоздатьНаборЗаписей();
НаборНеоперативных.Записать();
После очистки транзитных таблиц фоновые задания мгновенно перестанут выдавать ошибки, а нагрузка на сервер упадет до штатных показателей.
Поскольку полная очистка очередей останавливает актуализацию сроков долга в регистрах накопления РасчетыСКлиентамиПоСрокам и РасчетыСПоставщикамиПоСрокам, данные необходимо актуализировать порционно, избегая пиковых нагрузок.
Разберем регламент восстановления порядка расчетов:
rphost.Проанализируем параметры учетной записи, от имени которой стартуют фоновые задания:
Соблюдение этих правил позволяет стабилизировать работу фоновых процессов онлайн-взаиморасчетов в 1С:УТ 11.5 и предотвратить повторное возникновение критических утечек памяти сервера.