Почему 1С:Управление торговлей 10.3 работает медленно по сети и как это исправить?

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

Перенос системы 1С:Предприятие на новую серверную архитектуру — это всегда ответственный шаг, который часто сопровождается неожиданными проблемами с производительностью. Классическая ситуация: вы разделяете роли, устанавливая сервер терминалов (RDP) на одну машину, а сервер приложений 1С и MS SQL Server — на другую. Несмотря на использование гигабитной сети, пользователи начинают жаловаться, что проведение документов и запись данных стали работать значительно медленнее, чем при локальной работе на самом сервере БД. Разберем детально, почему это происходит и как настроить систему для достижения максимальной скорости.

Анализ сетевых задержек и «эффект тысячи запросов»

Проанализируем специфику работы «Толстого клиента», на котором построена конфигурация Управление торговлей 10.3. В отличие от современных веб-клиентов, старые конфигурации крайне чувствительны к latency (задержкам) сети. При выполнении одной операции проведения документа платформа 1С может совершать сотни и тысячи последовательных запросов к серверу. Даже если ваш ping показывает менее 1 мс, суммарная задержка накапливается в геометрической прогрессии.

Выясним причину: в локальном режиме (когда терминал и база на одном сервере) передача данных происходит через оперативную память практически мгновенно. При выносе терминала на другой хост каждый запрос должен пройти через сетевой стек Windows, сетевую карту, коммутатор и обратно. Чтобы минимизировать эти потери, выполним следующие шаги по оптимизации сетевых карт на обоих серверах:

  1. Отключим функции энергосбережения в свойствах сетевого адаптера (Energy Efficient Ethernet).
  2. Отключим Interrupt Moderation (Модерация прерываний). Эта функция группирует пакеты перед обработкой процессором, что хорошо для передачи больших файлов, но губительно для 1С, где важна немедленная обработка каждого мелкого пакета.
  3. Установим максимальную производительность в плане электропитания Windows.

Оптимизация сетевого стека Windows (TCP Offloading)

Рассмотрим параметры операционной системы, которые часто мешают корректной работе высоконагруженных систем 1С. Функции разгрузки TCP (Offloading) призваны снять нагрузку с центрального процессора, переложив её на сетевую карту. Однако на практике это часто приводит к «зависаниям» пакетов 1С. Проанализируем состояние сетевого стека и выполним команды для отключения потенциально проблемных функций.

Запустим командную строку от имени администратора и выполним проверку текущих настроек командой netsh int tcp show global. Для ускорения работы 1С рекомендуется применить следующие настройки:


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

Важно: После выполнения данных команд следует перезагрузить серверы и провести замер скорости проведения типового документа. Во многих случаях именно отключение chimney и autotuninglevel позволяет убрать микро-фризы при работе в толстом клиенте по сети.

Настройка взаимодействия Shared Memory между 1С и SQL

Разберем ситуацию на «новом» сервере, где совместно работают Сервер приложений 1С и MS SQL Server. По умолчанию они должны обмениваться данными через протокол Shared Memory (общая память), который работает быстрее любого сетевого протокола. Однако, если в настройках SQL Server этот протокол отключен или стоит низкий приоритет, система может начать гонять трафик через «петлю» (loopback) по TCP/IP.

Проверим настройки в SQL Server Configuration Manager:

  1. Перейдем в раздел SQL Server Network Configuration -> Protocols for MSSQLSERVER.
  2. Убедимся, что Shared Memory включен (Enabled).
  3. В разделе Client Protocols для SQL Native Client выставим Shared Memory самым первым в списке приоритетов.

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

Влияние файловых ресурсов и профилей пользователей

Проанализируем еще один неочевидный фактор тормозов в УТ 10.3 — работу с кэшем и временными файлами. При работе в терминальной сессии 1С активно пишет данные в папку профиля пользователя (%AppData%). Если вы перенесли терминальный сервер, но оставили какие-то общие файловые ресурсы (например, классификаторы, логи или внешние обработки) на старом сервере или в медленной сетевой папке, система будет ждать ответа от файловой системы.

Посмотрим на настройки журнала регистрации. Если Журнал регистрации (файлы .lgp или .lgf) вынесен на сетевой ресурс, проведение документов замедлится в несколько раз, так как каждая запись в журнал потребует подтверждения от удаленного диска. Убедимся, что:

Проверка DNS и IPv6

Выясним причину возможных задержек при установке соединения. В современных ОС Windows приоритет отдается протоколу IPv6. Часто 1С пытается сначала разрешить имя сервера через IPv6, ждет таймаута и только потом переходит на IPv4. Это может добавлять по 1-2 секунды к каждой операции открытия формы или подключения к базе.

Рекомендуем выполнить следующие действия:

  1. Отключить протокол IPv6 в свойствах сетевого адаптера на терминальном сервере и сервере 1С.
  2. Явно прописать IP-адрес и имя нового сервера в файле hosts (C:\Windows\System32\drivers\etc\hosts) на терминальном сервере.

Пример записи в файле hosts:

192.168.1.10 SRV-1C-SQL

Методика замера производительности

Чтобы понять, принесли ли наши действия результат, недостаточно просто «пощелкать» в программе. Проанализируем ситуацию с помощью встроенного инструмента «Замер производительности» в конфигураторе 1С. Рассмотрим порядок действий:

  1. Запустим 1С под пользователем на терминальном сервере.
  2. В конфигураторе откроем замер производительности и начнем запись.
  3. Проведем «тяжелый» документ (например, Реализацию товаров и услуг на 100 строк).
  4. Остановим замер и посмотрим на время выполнения строк кода.

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

Подводя итог, можно сказать, что медленная работа по сети в 90% случаев лечится не покупкой нового «железа», а тонкой настройкой TCP-стека Windows, отключением энергосбережения сетевых карт и обеспечением работы Shared Memory на сервере БД. Совместное применение этих мер позволяет вернуть комфортную скорость работы пользователям УТ 10.3 даже при распределенной архитектуре серверов.

← На главную