При работе с платформой 1С:Предприятие 8.3 системные администраторы и разработчики часто сталкиваются с неприятной ситуацией: при попытке загрузить файл информационной базы .dt в клиент-серверный вариант работы процесс прерывается ошибкой «Ошибка обращения к серверу 1С:Предприятия. Передача данных прервана по инициативе принимающей стороны». Особенно часто эта проблема проявляется при переходе на более свежие версии платформы, начиная с 8.3.7 и выше.
В этой статье мы подробно разберем, почему возникает эта ошибка, проанализируем внутренние механизмы работы платформы и подготовим пошаговый план по устранению проблемы, используя как опыт практикующих специалистов, так и глубокие технические настройки серверной инфраструктуры.
Разберем важный нюанс: начиная с версии 8.3.7, разработчики компании 1С существенно изменили механизм выгрузки и загрузки .dt. Теперь процесс прерывается при обнаружении малейших логических или структурных несоответствий в данных. Проанализируем ситуацию: если в старой версии платформы (например, 8.3.6) база выгрузилась успешно, это не гарантирует, что она загрузится в 8.3.8 или 8.3.12. Платформа стала «капризной», и выгрузка в .dt официально перестала считаться полноценным средством резервного копирования для SQL-баз.
Что необходимо сделать:
Проанализируем техническую сторону процесса: загрузка тяжелого .dt (более 1 Гб) требует значительных объемов адресного пространства памяти. При использовании 32-битного рабочего процесса rphost существует жесткое ограничение на объем выделяемой памяти (около 2-3 Гб на процесс). Если при распаковке данных из файла этот лимит достигается, операционная система или сам кластер 1С аварийно завершают поток, что и приводит к ошибке «прервано принимающей стороной».
Практика показывает, что переход на 64-битную версию сервера 1С:Предприятия решает проблему в большинстве случаев, так как снимает ограничения на объем оперативной памяти, используемой одним процессом при декомпрессии данных.
Часто ошибка возникает из-за того, что клиентская часть (Конфигуратор) и сервер 1С находятся на разных физических машинах. При передаче больших пакетов данных по сети любое микро-зависание или некорректная настройка сетевого оборудования может привести к разрыву соединения.
Рассмотрим шаги по оптимизации сети:
.dt непосредственно на том сервере, где установлена служба ragent. Это исключит сетевой трафик между клиентом и сервером.IPv4 Checksum Offload, TCP Chimney Offload и Receive Side Scaling (RSS). Эти функции могут некорректно фрагментировать тяжелые пакеты данных 1С.HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters установим параметр KeepAliveTime (тип DWORD) в значение 60000 (60 секунд).Иногда загрузка обрывается из-за поврежденного или избыточно большого журнала регистрации. Рассмотрим два способа решения:
.lgf), попробуем перевести его в старый формат или временно отключить ведение журнала на период загрузки.Также проверим объем свободного места на диске C: сервера (или там, где расположены папки TEMP). Помним, что при загрузке .dt размером 1 Гб, системе может потребоваться до 5-10 Гб временного пространства для распаковки объектов. Очистим папку snccntxt в каталоге кластера 1С, чтобы исключить конфликты старых сеансовых данных.
Выясним причину в настройках самого кластера. В консоли администрирования 1С (ras/rac или стандартная оснастка) проверим параметры рабочего сервера:
0 (без ограничений).rphost «раздуться» до нужного размера.1, чтобы все ресурсы процесса были направлены на одну задачу.Если ни один из способов загрузки .dt не помогает, воспользуемся обходным путем, который гарантированно исключает ошибки формата .dt:
.dt файл в эту файловую базу (как правило, в файловом варианте проверки менее жесткие)..cf)..cf в пустую серверную базу..dt.Этот метод более трудоемкий, но он позволяет «протащить» данные в серверную базу даже тогда, когда штатный механизм загрузки выдает критическую ошибку.
Проанализируем настройки СУБД (например, MS SQL Server). Перед загрузкой .dt в пустую базу убедимся, что:
.ldf) и сэкономит место на диске.db_owner в базе SQL.В завершение подчеркнем: самым надежным способом миграции и резервного копирования для серьезных систем является использование средств СУБД (бэкапы .bak). Использование .dt стоит оставить только для перехода с файлового варианта на серверный или для обмена данными между разработчиками.