Что делать, если при тестировании и исправлении базы 1С в клиент-серверном режиме прервалось RDP-соединение и завис сеанс?

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

В процессе выполнения регламентной процедуры Тестирование и исправление информационных баз (ТиИ) через удаленный рабочий стол (RDP) может произойти сбой связи. После потери интерактивного сеанса клиентское приложение закрывается, но на стороне сервера 1С сеанс продолжается, загружая процессорные мощности. Разберем по шагам, как правильно поступить в такой ситуации, можно ли восстановить подключение и как обезопасить данные от повреждения.

Почему невозможно переподключиться к текущему сеансу ТиИ

Рассмотрим архитектурные ограничения платформы 1С:Предприятие 8 в клиент-серверном режиме. Интерактивный клиент (тонкий или толстый клиент Конфигуратора) управляет процессом выполнения тестирования. Если RDP-сессия завершилась полностью и клиентское приложение было закрыто операционной системой, повторно привязаться к уже существующему интерактивному окну нельзя.

При этом рабочий процесс rphost.exe на сервере приложений 1С продолжает выполнять запущенную операцию в фоновом режиме. Сервер ожидает завершения текущей транзакции СУБД или ответа от клинета. Из-за этого в консоли администрирования кластера сеанс отображается как активный и продолжает потреблять ресурсы процессора.

Особенности записи журнала регистрации при выполнении ТиИ

Выясним, ведется ли фиксация событий во время тестирования. Платформа 1С записывает результаты проверок и исправления структуры в журнал регистрации. Однако при масштабных операциях следует учитывать следующие нюансы:

  1. Высокая нагрузка на дисковую подсистему: При массовом исправлении объектов журнал регистрации (особенно в формате SQLite с расширением .lgd) генерирует огромный поток записей, что может дополнительно замедлять выполнение ТиИ.
  2. Буферизация логов: События записываются во временный буфер. Если принудительно завершить сеанс через консоль сервера 1С или завершить процесс в ОС, последние несохраненные записи журнала могут быть утеряны.

Диагностика активности перед удалением сеанса

Проанализируем состояние системы перед тем, как предпринимать радикальные шаги по отключению сеанса. Прежде чем снимать сеанс в консоли администрирования 1С, необходимо проверить, идет ли реальная работа с базой данных на уровне СУБД.

Для диагностики используем штатные средства СУБД:

  1. В MS SQL Server: Проверяем активные запросы с помощью системного представления sys.dm_exec_requests или SQL Server Profiler. Если СУБД выполняет команды реиндексации (ALTER INDEX) или обновления статистики (UPDATE STATISTICS), реструктуризация находится в активной фазе, и процесс прерывать не рекомендуется.
  2. В PostgreSQL: Выполняем анализ активности через системное представление pg_stat_activity.

Безопасный алгоритм завершения зависшего сеанса

Рассмотрим порядок действий, если диагностика показала отсутствие реальной активности или процесс длится недопустимо долго:

  1. Запустите Консоль администрирования кластера серверов 1С.
  2. Перейдите в ветку Кластеры > Информационные базы > ваша база > Сеансы.
  3. Найдите зависший сеанс пользователя или Конфигуратора, запустившего ТиИ.
  4. Нажмите правой кнопкой мыши по сеансу и выберите пункт Удалить.

В клиент-серверном режиме завершение сеанса через консоль администрирования является безопасным для структуры информационной базы. В отличие от файлового режима (файла 1CD), СУБД автоматически выполнит откат текущей незавершенной транзакции до исходного состоятельного состояния.

Если сеанс не удаляется стандартным способом через консоль 1С, изолируйте рабочий процесс: переведите соответствующий rphost.exe в неактивные процессы или завершите конкретный PID процесса в Диспетчере задач сервера приложений.

Рекомендуемые способы проведения ТиИ без риска зависания

Чтобы избежать подобных проблем в будущем, разберем альтернативные варианты проведения тестирования и исправления:

  1. Пошаговое проведение процедур: Не запускайте все флаги ТиИ одновременно. Выполняйте проверки поэтапно: сначала реиндексацию, затем проверку физической целостности, логическую целостность и пересчет итогов.
  2. Запуск в пакетном режиме (через командную строку): Выполнение процедур без интерактивного сеанса гарантирует независимость от сбоев RDP. Пример команды для запуска пакетного тестирования:
    
    "C:\Program Files\1cv8\8.3.23.1865\bin\1cv8.exe" DESIGNER /S "Server1C\Base1C" /N "Admin" /P "Password" /IBCheckAndRepair -Reindex -CheckLogicalIntegrity -Rebuild
    
  3. Использование средств СУБД: В клиент-серверных базах обслуживание индексов, обновление статистики и проверку физической целостности быстрее и надежнее делать средствами СУБД (например, планами обслуживания в MS SQL с помощью команды DBCC CHECKDB или командами VACUUM ANALYZE / REINDEX в PostgreSQL). Платформенное ТиИ в таком случае применяется только для проверки логической целостности 1С и пересчета итогов.
  4. Предварительная проверка на копии: Всегда отлаживайте длительные регламентные операции на технической копии базы для оценки точного времени выполнения.
← На главную