Как решить ошибку 10053 при загрузке тяжелого файла .dt в PostgreSQL или MS SQL

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

Загрузка информационной базы из файла .dt объемом 10–12 ГБ и выше часто становится настоящим испытанием для системного администратора 1С. Ошибка «10053(0x00002745): Программа на вашем хост-компьютере разорвала установленное подключение» указывает на то, что сетевое соединение между клиентом (Конфигуратором) и сервером 1С (или между сервером 1С и СУБД) было принудительно разорвано операционной системой. Рассмотрим подробно, почему это происходит и как мы можем совместно решить эту проблему.

Разберем природу ошибки 10053

Прежде всего, проанализируем ситуацию: ошибка 10053 — это не внутренняя ошибка кода 1С, а сигнал от сокета операционной системы Windows. Это означает, что некая внешняя сила (таймаут, нехватка памяти или антивирус) закрыла TCP-канал, по которому передавались данные. Поскольку при загрузке .dt объемом 12 ГБ данные могут распаковываться в 50–100 ГБ «чистой» информации, процесс занимает длительное время, в течение которого сетевой стек может посчитать соединение «зависшим».

Проанализируем влияние версии платформы и битности

Как показывает практика и обсуждения на форумах, версия платформы 1С играет ключевую роль. В релизах ветки 8.3.9 (например, 8.3.9.2170) механизмы управления памятью при работе с большими бинарными данными были не всегда стабильны. Выясним причину: если процесс rphost потребляет слишком много памяти или допускает утечку при распаковке архива, операционная система может аварийно завершить его, что и вызывает разрыв соединения.

Наши рекомендации:

  1. Проверьте битность сервера 1С: Для работы с базами такого объема использование 32-битного сервера rphost недопустимо. Лимит в 2-4 ГБ адресного пространства будет мгновенно исчерпан. Убедитесь, что у вас установлена 64-битная версия сервера 1С:Предприятия.
  2. Попробуйте сменить версию платформы: Если текущая версия выдает ошибку, попробуйте обновиться до актуального стабильного релиза (например, ветки 8.3.22 или выше). Если же вы используете экспериментальные или ранние релизы (как 8.3.13/14 на момент обсуждения), иногда помогает откат на проверенную «старую» версию.

Организуем работу с временными файлами

Многие забывают, что файл .dt — это сжатый архив. При загрузке сервер 1С сначала распаковывает его во временный каталог. Если на системном диске C:\ недостаточно места или установлены квоты, процесс прервется. Рассмотрим подробнее: при 12 ГБ в .dt вам может потребоваться до 150 ГБ свободного места в папке Temp.

Пошаговый план действий:

  1. Определите пользователя, под которым запущена служба 1C:Enterprise 8.3 Server Agent.
  2. Перейдите в настройки переменных окружения этого пользователя (или системные переменные).
  3. Измените значения переменных TEMP и TMP, указав путь к быстрому диску с большим объемом свободного пространства (например, D:\1C_TEMP).
  4. Обязательно перезапустите службу сервера 1С, чтобы изменения вступили в силу.

Настройка сетевых параметров Windows Server

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

Настроим параметры KeepAlive через реестр:

  1. Откройте редактор реестра regedit.
  2. Перейдите в ветку: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters.
  3. Создайте (или измените) параметр KeepAliveTime (тип DWORD). Установите значение 600000 (в миллисекундах, что соответствует 10 минутам).
  4. Создайте параметр KeepAliveInterval (тип DWORD) со значением 1000.

Также на старых версиях ОС (Windows Server 2008) стоит отключить механизмы оптимизации сетевой карты, которые могут конфликтовать с нагрузкой 1С. Выполним команды в командной строке (cmd) от имени администратора:


netsh int tcp set global chimney=disabled
netsh int tcp set global autotuninglevel=disabled
netsh int tcp set global rss=disabled

Оптимизация PostgreSQL для ускорения загрузки

Если СУБД не успевает записывать данные, сервер 1С может «отвалиться» по таймауту. На время загрузки тяжелого .dt мы можем временно ослабить требования PostgreSQL к надежности ради скорости. Внимание: после успешной загрузки верните параметры в исходное состояние!

В файле postgresql.conf изменим следующие параметры:

  1. fsync = off — отключает принудительную синхронизацию с диском (критически ускоряет запись).
  2. full_page_writes = off — уменьшает объем записываемых логов.
  3. synchronous_commit = off — сервер не будет ждать физического подтверждения записи на диск.
  4. maintenance_work_mem = 2GB (или более) — поможет быстрее создать индексы после загрузки данных.

После внесения изменений перезапустите службу PostgreSQL. Не забудьте включить fsync = on обратно после завершения операции!

Настройка кластера 1С

Проанализируем параметры рабочего процесса в консоли администрирования 1С. Если в настройках кластера заданы жесткие лимиты, это может стать причиной обрыва.

Проверим следующие настройки:

Альтернативный способ: если ничего не помогает

Если загрузка через Конфигуратор и .dt всё равно падает с ошибкой 10053, рассмотрим профессиональный обходной путь. Механизм .dt является универсальным, но не самым надежным для терабайтных объемов или специфических настроек сети.

Попробуем загрузку через XML:

  1. Используйте стандартную обработку «Выгрузка и загрузка данных XML» (она обычно входит в состав поставки «Инструменты разработчика» или доступна на диске ИТС).
  2. Выгрузите данные из исходной базы порциями (например, по метаданным).
  3. Загрузите их в пустую базу в целевой СУБД.

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

Таким образом, мы выяснили, что ошибка 10053 при загрузке 12 ГБ данных чаще всего решается комплексным подходом: использованием 64-битной платформы, выделением огромного места под Temp на быстром диске и тюнингом сетевых параметров Windows. Совместное применение этих мер гарантирует успешное восстановление базы даже на старом оборудовании.

← На главную