При работе в клиент-серверном варианте 1С:Предприятие, особенно в таких ресурсоемких конфигурациях, как Зарплата и управление персоналом 3.1, пользователи часто сталкиваются с внезапным прерыванием процесса формирования отчета. Сообщение «Формирование отчета прервано администратором» выглядит так, будто кто-то вручную зашел в консоль и «убил» сеанс, однако на практике это чаще всего работа автоматических механизмов платформы. Разберем подробно, почему это происходит и как настроить систему для стабильной работы.
Для начала проанализируем ситуацию. Ошибка возникает из-за того, что Менеджер кластера или сам Рабочий процесс (rphost) принимает решение прекратить выполнение фонового задания. Это происходит в тот момент, когда выполнение задачи начинает угрожать стабильности всей системы. Рассмотрим основные факторы, провоцирующие такое поведение:
Первым делом нам необходимо проверить настройки кластера серверов 1С. Для этого откроем Консоль администрирования серверов 1С:Предприятия. Рассмотрим по шагам, какие параметры влияют на нашу проблему:
Развернем ветку нужного нам центрального сервера, перейдем в «Рабочие серверы» и откроем свойства сервера (обычно это localhost). Нас интересуют следующие показатели:
Проанализируем рекомендации: для устранения ошибки «Прервано администратором» попробуйте временно установить значения «Допустимый объем памяти» и «Интервал превышения» в значение 0 или -1 (в зависимости от версии платформы это означает отсутствие ограничений). Это поможет понять, является ли причиной именно лимит памяти.
Важный момент для платформы 8.3.15 и выше: В версиях уровня PROF теперь жестко ограничено использование ресурсов. Если ваш отчет требует формирования огромной таблицы в памяти, сервер 1С может убить поток просто потому, что лицензия не позволяет использовать больше ресурсов на один процесс. В таком случае поможет переход на лицензию КОРП, где данные лимиты можно настраивать гибко.
В конфигурации Зарплата и управление персоналом многие отчеты формируются в фоновом режиме. Это позволяет пользователю не «зависать» вместе с программой. Однако, если система видит аномальный рост потребления ресурсов фоновым заданием, она выдает именно ту ошибку, которую мы обсуждаем. Рассмотрим, как это выглядит в Журнале регистрации:
Найдите запись с текстом Фоновое задание. Отмена. Если в поле «Данные» указано Выполнение отчета: АнализНачисленийИУдержаний, значит, система сама инициировала команду отмены. Посмотрим на возможный сценарий в коде типовой конфигурации (условно):
// Пример логики отмены в типовых решениях
Если ФоновоеЗаданиеВыполняется(ИдентификаторЗадания) Тогда
// Если пользователь инициировал новое действие, старое прерывается
ФоновыеЗадания.Отменить(ИдентификаторЗадания);
КонецЕсли;
Если вы видите, что отчет прерывается «иногда» и «со второго-третьего раза формируется», это классический признак нехватки оперативной памяти на сервере в конкретный момент времени или утечки памяти в рабочем процессе rphost. Проанализируем состояние сервера: если оперативной памяти мало, ОС Windows может начать сбрасывать данные в файл подкачки, что замедляет 1С, и менеджер кластера обрывает задание по таймауту.
Разберем ситуацию с версией 8.3.16.1148, упомянутой в теме. Данная ветка платформы имела ряд известных проблем с управлением памятью. Выясним причину через мониторинг ресурсов: если при формировании отчета процесс rphost.exe начинает стремительно «пухнуть» (потреблять гигабайты памяти), а затем резко падает — вы столкнулись либо с багом платформы, либо с неоптимальным запросом в отчете.
Рекомендации по исправлению:
Если в вашей информационной базе используются Профили безопасности, проверьте их настройки. В профиле могут быть установлены ограничения:
Если отчет «Анализ начислений» за 1 год пытается переварить данные 1000 сотрудников, он легко выйдет за рамки стандартных 512 МБ или 1 ГБ памяти. Увеличьте эти лимиты в настройках профиля в консоли кластера.
Подводя итог, если вы видите сообщение «Формирование отчета прервано администратором», пройдите по следующему чек-листу:
rphost.Соблюдение этих рекомендаций позволит вам минимизировать возникновение ошибки и обеспечить пользователям стабильную работу с отчетами в 1С:ЗУП.