При попытке масштабирования бизнеса системные администраторы и программисты 1С часто сталкиваются с необходимостью перевода информационной базы из файлового режима (формат *.1CD) в клиент-серверный вариант под управлением Microsoft SQL Server или PostgreSQL. Однако этот процесс не всегда проходит гладко. Одной из самых коварных ошибок является внезапный разрыв соединения с сервером при попытке загрузить файл выгрузки *.dt или при первом запуске базы на SQL. Рассмотрим, почему это происходит и как решить проблему, когда стандартное тестирование и исправление (ТиС) не показывает ошибок.
Типичный сценарий проблемы выглядит так: при загрузке данных в консоли 1С:Предприятия или в конфигураторе возникает сообщение: server_addr=tcp://WIN-SERVER:1773 descr=10054(0x00002746): Удаленный хост принудительно разорвал существующее подключение. line=1594 file=src\DataExchangeTcpClientImpl.cpp.
Разберем, что стоит за этим техническим кодом. Ошибка 10054 — это стандартный код ошибки Windows Sockets, который означает, что существующее TCP-соединение было неожиданно прервано со стороны удаленного узла. В контексте 1С это чаще всего означает, что рабочий процесс сервера rphost аварийно завершился (упал). Платформа на стороне клиента теряет связь с сервером и выдает это сообщение. Выясним причину такого «падения» рабочего процесса.
Как показывает практика и обсуждения специалистов, наиболее частой причиной невозможности миграции на SQL является использование Базовой версии конфигурации (например, «1С:Бухгалтерия 8. Базовая» или «1С:Зарплата и управление персоналом 8. Базовая»).
Проанализируем технические и лицензионные ограничения таких версий:
Конфигурация для базовых версий прописаны флаги, которые блокируют функционал, необходимый для работы в связке с SQL-сервером.Когда мы пытаемся развернуть такую базу на SQL, сервер 1С распознает несоответствие лицензионных ограничений и типа конфигурации. В некоторых релизах платформы это приводит не к корректному сообщению об ошибке, а к аварийному завершению процесса rphost, что и провоцирует ошибку 10054.
Просто заменить лицензию недостаточно. Нам необходимо изменить саму структуру конфигурации, чтобы снять программные ограничения. Разберем этот процесс по шагам:
1Cv8.1CD.Для этого в конфигураторе базовой версии перейдите в меню Конфигурация — Поддержка — Обновить конфигурацию. Вам потребуется файл поставки версии ПРОФ (расширение .cf или .cfu для перехода).
.dt. Теперь процесс должен пройти без разрывов соединения.Если ваша база уже является версией ПРОФ, но ошибка 10054 все равно возникает, нам следует проверить целостность данных на физическом уровне. Стандартное «Тестирование и исправление» в конфигураторе проверяет логическую целостность, но может пропускать ошибки в самих страницах файла .1CD.
Рассмотрим использование утилиты chdbfl.exe:
bin) файл chdbfl.exe..dt.Выясним, какие настройки SQL-сервера могут влиять на стабильность загрузки тяжелых баз. Процесс миграции создает огромную нагрузку на временную базу данных SQL-сервера — TempDB.
Проанализируем следующие рекомендации:
TempDB, достаточно свободного места (иногда требуется объем, сопоставимый с размером всей загружаемой базы). Если место закончится в процессе транзакции, SQL-сервер оборвет связь.1. Это предотвращает возникновение взаимоблокировок при выполнении сложных запросов во время загрузки.rphost. Рекомендуется оставлять операционной системе и процессам 1С не менее 4-8 ГБ свободного ОЗУ.Мы рассмотрели основную причину ошибки 10054 при миграции — попытку использования базовой конфигурации в неподдерживаемом режиме. Помните, что базовая версия 1С — это продукт для малого бизнеса, жестко ограниченный файловым режимом. Для работы с SQL-сервером необходим полноценный переход на версию ПРОФ с соответствующим обновлением конфигурации.
Если же переход на ПРОФ выполнен, а ошибка сохраняется, следует обратить внимание на физическое состояние файловой базы (утилита chdbfl.exe) и настройки ресурсов сервера (память и дисковое пространство для временных таблиц). Совместное использование этих методов диагностики позволяет успешно перенести данные любого объема без потери стабильности системы.