Почему выгрузка базы 1С в формат .dt прерывается с ошибкой «Сеанс завершен администратором»?

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

При работе с крупными информационными базами на платформе 1С:Предприятие 8.3 системные администраторы часто сталкиваются с проблемой, когда процесс выгрузки в файл .dt прерывается через 40-60 минут после начала. При этом система выдает ошибку: «Соединение с сервером баз данных разорвано администратором» с кодом HRESULT=80004005. Разберем по шагам, почему это происходит и как настроить систему для стабильной работы — для повседневного контроля и администрирования подойдёт универсальный инструмент администрирования и мониторинга 1С.

Анализируем причину разрыва соединения

Ошибка HRESULT=80004005 является общей и часто указывает на сетевые проблемы или нехватку ресурсов. Однако в контексте 1С и MS SQL Server ключевым моментом является упоминание Named Pipes Provider. Это говорит о том, что система пытается использовать протокол именованных каналов, который менее стабилен при длительных транзакциях, чем TCP/IP. Чтобы лучше разобраться в происходящем, можно проанализировать SQL сервер глазами 1С-ника, изучив текущие запросы и ожидания.

Проанализируем текущие соединения с помощью SQL-запроса:


SELECT session_id, net_transport
FROM sys.dm_exec_connections

Если в результате запроса мы видим тип транспорта Named Pipes, это первый кандидат на исправление. Длительная выгрузка (более часа) создает специфическую нагрузку, при которой именованные каналы могут «отваливаться» по таймауту. В таких случаях полезно провести комплексный замер производительности контура 1С и поиск узких мест, чтобы исключить влияние сетевых задержек.

Настройка протоколов взаимодействия

Рассмотрим порядок действий для принудительного перехода на протокол TCP/IP, который обеспечит более стабильное соединение между сервером приложений 1С и сервером СУБД:

  1. Откроем SQL Server Configuration Manager.
  2. Перейдем в раздел SQL Server Network Configuration -> Protocols for MSSQLSERVER.
  3. Отключим протокол Named Pipes и убедимся, что TCP/IP включен.
  4. В консоли администрирования кластера 1С, в свойствах информационной базы, укажем адрес сервера в формате tcp:ИмяСервера или tcp:IP-адрес.

Для правильной подготовки серверной среды рекомендуем изучить инструкцию по настройке регламентных операций MS SQL SERVER под 1С.

Обновление драйверов и устранение устаревших компонентов

Выясним, какой драйвер используется для связи. Если в тексте ошибки фигурирует SQL Server Native Client 11.0, следует учитывать, что этот компонент устарел. Современные версии платформы 1С, начиная с 8.3.20+, лучше работают с Microsoft OLE DB Driver for SQL Server (MSOLEDBSQL). Рекомендуем установить актуальную версию драйвера на сервер приложений 1С. Это часто решает проблемы с таймаутами и некорректной обработкой длинных транзакций.

Настройка параметров ОС и TCP KeepAlive

Когда выгрузка длится долго, сетевое оборудование может посчитать соединение неактивным и разорвать его. Посмотрим на параметры реестра Windows, отвечающие за проверку активности соединений. Настроим параметры KeepAliveTime и KeepAliveInterval в ветке:

HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters

Установим значение KeepAliveTime равным 300 000 (5 минут) в десятичной системе. Это заставит систему чаще подтверждать активность сессии, не давая сторонним механизмам закрыть канал связи во время формирования .dt.

Проверка ресурсов и дискового пространства

Проанализируем состояние системной базы tempdb на SQL-сервере. Процесс выгрузки активно использует временные таблицы. Выясним следующие моменты:

Рекомендации по обслуживанию базы

Если ошибка сохраняется только на одной конкретной базе, выполним стандартные процедуры обслуживания:

  1. Запустим Тестирование и исправление (ТиИ) с включенными опциями проверки целостности.
  2. Выполним реструктуризацию таблиц. При работе с индексами на современных версиях платформы (8.3.22+) лучше использовать MaintenanceSolution с доработанной IndexOptimize, чтобы избежать ошибок блокировок.
  3. Если выгрузка в .dt используется в качестве бэкапа, рассмотрите резервное копирование в файл dt без закрытия сессий с помощью скриптов. Это позволит автоматизировать процесс без прерывания работы пользователей — для сценариев с отключением клиентов есть обработка принудительного завершения сеансов пользователей.
  4. Для надежности стоит настроить контроль состояния бэкапов через Telegram, чтобы оперативно получать информацию о статусе завершения операций.

Важный момент: если вы переходите на использование Native SQL Backup (файлы .bak), это будет на порядок быстрее и надежнее, так как не требует монопольного захвата базы на длительное время.

Если же выгрузка выполняется через скрипт в планировщике, убедитесь, что перед началом процесса завершаются все активные сеансы пользователей и блокируются регламентные задания, чтобы избежать конфликтов блокировок.

← На главную