Почему тормозит обмен данными между 1С:Розница и 1С:Бухгалтерия на Windows Server и как это исправить?

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

Перенос файловых баз данных 1С:Предприятие на серверную операционную систему Windows Server (например, 2008 R2, 2012 R2 или более новые версии) часто сопровождается неожиданным падением производительности. Типичный сценарий: на обычном пользовательском компьютере с Windows 7 или Windows 10 синхронизация между конфигурациями 1С:Розница и 1С:Бухгалтерия занимала не более пары минут, но после перехода на выделенный сервер и установки нового быстрого SSD-накопителя выгрузка и загрузка всего 200 объектов начинает длиться по 10–15 минут в каждом направлении.

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

Шаг 1. Отключение механизмов регулирования ресурсов процессора и диска (TSFairShare)

По умолчанию в серверных операционных системах Windows Server активирована функция динамического распределения ресурсов — Dynamic Fair Share Scheduling (DFSS), также известная как TSFairShare. Этот механизм разработан для того, чтобы один пользователь в терминальной сессии не мог монополизировать процессорное время, дисковый ввод-вывод или пропускную способность сети, «подвесив» работу остальных коллег.

Однако для ресурсоемких однопоточных операций 1С, таких как чтение и запись файлов XML при обмене данными, этот алгоритм оказывается губительным. Система расценивает интенсивную дисковую активность процесса 1cv8.exe как угрозу и принудительно «душит» его приоритет. В результате мощный сервер начинает выполнять файловые операции медленнее бюджетного ноутбука.

Для исправления этой ситуации нам необходимо отключить TSFairShare через редактор реестра. Выполним следующие действия:

  1. Нажмите комбинацию клавиш Win + R, введите команду regedit и нажмите Enter.
  2. Перейдите к разделу реестра: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TSFairShare\Disk.
  3. Найдите параметр EnableFairShare и измените его значение на 0 (по умолчанию установлена единица). Если параметра нет, создайте его с типом DWORD (32-бит).
  4. Перейдите к разделу реестра: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Quota System.
  5. Найдите параметр EnableCpuQuota и также установите его значение в 0.
  6. Для вступления изменений в силу обязательно перезагрузите сервер.

Шаг 2. Настройка схемы электропитания и распределения процессорного времени

Часто серверные процессоры искусственно занижают свою тактовую частоту из-за настроек энергосбережения операционной системы. Файловая СУБД 1С критически чувствительна к одноядерной производительности процессора (тактовой частоте ядра), а не к количеству ядер.

Разберем, как правильно сконфигурировать параметры быстродействия операционной системы:

  1. Откройте Панель управления -> Электропитание.
  2. Переведите переключатель в режим Высокая производительность (High Performance). Дополнительно зайдите в настройки схемы и убедитесь, что минимальное и максимальное состояние процессора установлены на 100%.
  3. Откройте свойства системы (Панель управления -> Система -> Дополнительные параметры системы).
  4. На вкладке Дополнительно в секции Быстродействие нажмите кнопку Параметры.
  5. В открывшемся окне перейдите на вкладку Дополнительно.
  6. В блоке Распределение времени процессора установите переключатель в положение Оптимизировать работу программ (а не фоновых служб). Это гарантирует, что активные процессы платформы 1С получат наивысший приоритет при квантовании процессорного времени.

Шаг 3. Оптимизация настроек и проверка выравнивания разделов SSD

Новый SSD-накопитель не гарантирует высокую скорость работы файловой базы 1С, если он неправильно настроен или его разделы не выровнены относительно физической структуры ячеек памяти. Невыровненные разделы приводят к тому, что при записи одного логического блока операционная система вынуждена перезаписывать два физических блока SSD, что снижает скорость случайной записи мелких файлов в разы.

Выясним, выровнен ли ваш накопитель, и оптимизируем его кэширование:

  1. Для проверки выравнивания нажмите Win + R, введите msinfo32. Перейдите по пути Компоненты -> Запоминающие устройства -> Диски. Нажмите на ваш SSD и найдите строку Раздел: Смещение начала. Разделите указанное число в байтах на 4096. Если результат деления — целое число без остатка, ваш диск выровнен правильно. В противном случае диск необходимо переразметить с помощью специализированных утилит.
  2. Включите кэширование записи. Откройте Диспетчер устройств, разверните ветку Дисковые устройства и откройте свойства вашего SSD.
  3. На вкладке Политика установите флажок Разрешить кэширование записей для этого устройства.
  4. Если сервер подключен к надежному источнику бесперебойного питания (ИБП), установите также флажок Отключить очистку буфера кэша записей Windows для этого устройства. Это форсирует работу дисковой подсистемы, убирая постоянные задержки на ожидание подтверждения физической записи на диск.
  5. Убедитесь, что для контроллера SATA/NVMe установлены официальные драйверы от производителя материнской платы или чипсета (например, Intel RST), а не стандартные универсальные драйверы Microsoft 2006 года. Для полноценной поддержки быстрых накопителей NVMe под устаревшей Windows Server 2008 R2 обязательно должно быть установлено обновление безопасности KB2990941.

Шаг 4. Отключение полнотекстового поиска и оптимизация 1С

При обмене данными в информационную базу пакетно загружаются сотни и тысячи новых объектов. Платформа 1С по умолчанию пытается мгновенно проиндексировать каждый из них для работы механизма полнотекстового поиска. Это порождает колоссальный объем избыточных операций чтения-записи файлов индекса в каталоге базы данных.

Проанализируем шаги по отключению полнотекстового поиска и оптимизации журналов:

  1. Запустите базы 1С:Розница и 1С:Бухгалтерия в режиме «Предприятие» от имени администратора.
  2. Перейдите в раздел Администрирование -> Общие настройки -> Полнотекстовый поиск данных.
  3. Снимите флажок Полнотекстовый поиск данных в обеих базах.
  4. Закройте базы 1С. Зайдите в каталоги ваших информационных баз через проводник Windows и безвозвратно удалите папки с именем 1Cv8FTxt. Это полностью очистит старый индекс и освободит дисковое пространство.
  5. Обратите внимание на формат Журнала регистрации. Начиная с версии платформы 8.3.5, журнал ведется в формате базы данных SQLite (файл 1Cv8.lgd). При частых транзакциях обмена файловая СУБД SQLite склонна к блокировкам. Для ускорения записи рекомендуется перевести журнал регистрации в старый текстовый формат. Для этого в папке 1Cv8Log внутри каталога базы удалите файл 1Cv8.lgd и создайте вместо него пустой текстовый файл с именем 1Cv8.lgf.

Шаг 5. Использование оперативной памяти под временные файлы (TEMP на RAM-диске)

Процесс обмена данными в 1С устроен так, что выгружаемые объекты сериализуются в промежуточные файлы XML во временных каталогах операционной системы, после чего считываются принимающей базой. Чтение и запись тысяч мелких XML-схем нагружают физический диск.

Мы можем перенаправить эти процессы напрямую в сверхбыструю оперативную память:

  1. Установите любую бесплатную утилиту для создания RAM-дисков (например, ImDisk Virtual Disk Driver).
  2. Создайте виртуальный диск размером 1–2 ГБ в оперативной памяти и назначьте ему букву (например, R:).
  3. Откройте свойства сервера -> Дополнительные параметры системы -> Переменные среды.
  4. Измените значения системных переменных TEMP и TMP, указав путь к вашему новому RAM-диску (например, R:\Temp).
  5. Теперь все ресурсоемкие дисковые операции по распаковке и чтению XML-файлов обмена будут выполняться в оперативной памяти со скоростью ОЗУ, минуя задержки физического SSD.

Шаг 6. Очистка таблиц регистрации изменений в планах обмена

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

Рассмотрим, как быстро очистить таблицы регистрации изменений с помощью встроенных инструментов платформы:

  1. В главном меню программы выберите пункт Функции для технического специалиста (или «Все функции»).
  2. Найдите раздел Планы обмена и откройте используемый план обмена между Розницей и Бухгалтерией.
  3. Нажмите кнопку Показать зарегистрированные изменения.
  4. Если вы видите огромный перечень объектов, которые уже давно не актуальны для отправки, воспользуйтесь кнопкой очистки регистрации изменений.
  5. При необходимости точечной или программной очистки выгрузки можно применить следующий код во внешней обработке:

// Выбираем все узлы плана обмена для удаления ошибочной регистрации
ВыборкаУзлов = ПланыОбмена.ОбменРозницаБухгалтерияПредприятия30.Выбрать();
Пока ВыборкаУзлов.Следующий() Цикл
    Если Не ВыборкаУзлов.ЭтотУзел Тогда
        // Удаляем регистрацию всех изменений для конкретного узла
        ПланыОбмена.УдалитьРегистрациюИзменений(ВыборкаУзлов.Ссылка);
    КонецЕсли;
КонецЦикла;

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

← На главную