Как перевести старую базу с платформы 1С 8.2 на 1С 8.3 и избежать проблем с производительностью

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

Нередко в инфраструктуре предприятия годами накапливаются базы, созданные еще во времена активного использования платформы 1С:Предприятие 8.2 (например, сильно доработанные конфигурации «Управление торговым предприятием» или «Управление производственным предприятием»). Для изоляции таких баз администраторы часто создают зоопарк виртуальных машин, выделяя под каждую версию платформы отдельную среду. Это усложняет сопровождение и создает лишнюю нагрузку на серверное оборудование.

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

Вариант 1. Запуск старой конфигурации на платформе 8.3 в режиме совместимости

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

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

  1. Создание полной резервной копии. Выгрузим базу средствами СУБД (бэкап средствами SQL Server или PostgreSQL), а также создадим архив через конфигуратор в файл .dt. Помним о критическом моменте: при первом открытии базы на платформе 8.3 происходят необратимые изменения структуры служебных таблиц базы данных. Вернуть базу обратно на сервер 8.2 простым подключением уже не получится — откат возможен только из предварительно созданного бэкапа СУБД.
  2. Тестирование и исправление на старой платформе. До миграции выполним процедуру Тестирование и исправление в конфигураторе платформы 8.2. Необходимо убедиться в отсутствии битых ссылок, нарушений логической и физической целостности таблиц.
  3. Проверка режима совместимости. Откроем конфигурацию и в свойствах корневого элемента метаданных проверим свойство Режим совместимости. Для старых решений там должно быть установлено значение Версия 8.2.13 или аналогичное (в зависимости от релиза исходной конфигурации). Изменять или отключать этот режим нельзя, так как логика кода и форм рассчитана на платформу 8.2.
  4. Изучение файла изменений платформы. Обязательно откроем файл V8Update.htm, расположенный в каталоге установки платформы 1С (в подкаталоге соответствующей версии). Внимательно изучим раздел, посвященный переходу с версии 8.2 на 8.3, чтобы заранее учесть изменения в работе встроенного языка.
  5. Запуск и функциональное тестирование на копии. Развернем тестовую копию базы на сервере 1С 8.3. Проверим запуск ключевых регламентных заданий, проведение документов по основным разделам учета, формирование тяжелых отчетов и работу обменов. Привлечем пользователей для проверки их ежедневных рабочих сценариев на копии базы.

Технические подводные камни при переводе на платформу 8.3

Проанализируем ситуации, при которых запуск конфигурации на 8.3 может потребовать дополнительных настроек:

  1. Разрядность сервера и внешние компоненты. Старые конфигурации активно используют 32-разрядные внешние библиотеки (драйверы торгового оборудования, внешние компоненты защиты HASP/СЛК, COM-соединения с Excel или специализированными DLL). Если новый сервер 1С 8.3 развернут в 64-битной редакции, 32-битные компоненты перестанут загружаться в серверных процедурах и фоновых заданиях. В таком случае потребуется либо оборачивать 32-битные библиотеки в отдельное приложение COM+ (через службы компонентов Windows), либо заменять их на обновленные 64-битные Native API, либо разворачивать 32-битный сервер 1С.
  2. Режим запуска клиента. Конфигурации эпохи 8.2 работают на обычных формах (толстый клиент). При подключении к серверу 8.3 клиентское приложение может попытаться запуститься в режиме тонкого клиента или управляемого приложения. Проконтролируем, чтобы в свойствах базы в окне запуска было явно выбрано «Толстый клиент» и «Обычное приложение», либо используем параметр командной строки /RunModeOrdinaryApplication.
  3. Блокировки и статистика СУБД. В старых решениях применяется автоматический режим управления блокировками в транзакции. Платформа 8.3 генерирует несколько иные запросы к SQL-серверу, что на неотрегулированной СУБД может приводить к взаимным блокировкам (Deadlocks). Сразу после конвертации базы выполним полное обновление статистик (UPDATE STATISTICS) и реиндексацию таблиц на уровне СУБД.

Вариант 2. Запуск двух серверов 1С (8.2 и 8.3) на одной операционной системе

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

Разберем, как развести службы платформы 8.2 и 8.3 по сетевым портам:

  1. Сервер СУБД (например, MS SQL Server) остается единым для обеих версий платформы.
  2. Сервер 1С 8.2 запускается на стандартных сетевых портах: менеджер кластера — 1541, диапазон рабочих процессов — 1560:1591, порт агента — 1540.
  3. Службу сервера 1С 8.3 регистрируем с нестандартными номерами портов, сместив их, например, на 100 единиц. Для этого при регистрации службы через утилиту ragent.exe задаем параметры:

    -port 1640 -range 1660:1691 -regport 1641

  4. В окне запуска 1С у пользователей базы 8.2 подключаются по адресу ServerName, а базы 8.3 — по адресу с указанием нового порта менеджера кластера: ServerName:1641.

Почему 1С тормозит в виртуальной среде и как это исправить

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

  1. Энергосбережение хоста. 1С крайне чувствительна к тактовой частоте процессора на одно ядро. Если в BIOS сервера и в настройках плана электропитания гипервизора установлен энергосберегающий режим (Balanced/Power Saving), тактовая частота ядер постоянно сбрасывается. Необходимо переключить все профили в режим High Performance.
  2. Выделение памяти (Memory Reservation). Механизмы динамической памяти (Memory Ballooning) категорически противопоказаны серверам СУБД и 1С. Память для виртуальной машины должна быть зарезервирована на 100% без возможности сброса в файл подкачки хоста.
  3. Учет архитектуры NUMA. Число виртуальных ядер (vCPU) и объем памяти виртуальной машины не должны выходить за границы одного физического сокета (NUMA-ноды). Межсокетные задержки при перекрестном обращении к памяти приводят к резким просадкам производительности кластера 1С.
  4. Переподписка по процессорам (CPU Overcommit). Назначение виртуальной машине большего числа vCPU, чем реально свободно физических ядер хоста, порождает очереди ожидания (параметр CPU Ready). Для серверов 1С критически важно минимизировать эти задержки.

Таким образом, переводить старую конфигурацию на 8.3 можно и нужно. Достаточно оставить активным режим совместимости 8.2, протестировать прикладной функционал на резервной копии и привести в порядок настройки СУБД и электропитания сервера.

← На главную