Где выше производительность конфигуратора 1С при сравнении, объединении и обновлении тяжелых баз данных?

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

При обновлении крупных типовых решений 1С (таких как Комплексная автоматизация 2.4 или ERP Управление предприятием) технические специалисты часто сталкиваются с дилеммой выбора рабочей среды для проведения обновлений. Нам приходится выбирать между производительным локальным компьютером с высокой частотой процессора и быстрым SSD, который находится удаленно от сервера СУБД, и сервером с медленной дисковой подсистемой или устаревшим процессором, но расположенным в одной локальной сети с базой данных.

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

---

Архитектура процессов в Конфигураторе 1С

Чтобы понять, где процессы будут выполняться быстрее, проанализируем, как именно Конфигуратор 1С использует аппаратные ресурсы на разных этапах своей работы:

  1. Этап сравнения и объединения конфигураций. Этот процесс выполняется преимущественно на стороне клиента — то есть на том компьютере, где физически запущен Конфигуратор 1С. Платформа считывает метаданные основной конфигурации и конфигурации обновления, распаковывает их во временные файлы во внутренний кэш и папку Temp, а затем проводит покомпонентное сравнение. Этот процесс на 90% зависит от скорости одного ядра процессора и скорости дисковой подсистемы на чтение и запись мелких файлов.
  2. Этап сохранения конфигурации базы данных и реструктуризации таблиц СУДБ. Данный процесс представляет собой активный двусторонний обмен данными между клиентским Конфигуратором, сервером приложений 1С:Предприятие и сервером баз данных (например, MS SQL Server или PostgreSQL). Конфигуратор последовательно отправляет тысячи мелких запросов для перестроения таблиц базы данных. На этом этапе на первый план выходит сетевая задержка (Latency) между клиентом и сервером.

---

Битва процессоров: Pentium G4400 против Xeon E5430

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

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

Дополнительно локальный компьютер оснащен твердотельным накопителем (SSD), скорость случайного чтения и записи мелких блоков у которого на порядки выше, чем у серверных SAS RAID-массивов старого поколения. Таким образом, на этапе непосредственного сопоставления объектов и построения дерева сравнения компьютер Pentium G4400 с SSD покажет колоссальное преимущество по скорости.

---

Сетевой капкан: почему нельзя обновлять БД через удаленную сеть

Казалось бы, выбор очевиден в пользу быстрого локального компьютера. Однако здесь возникает критический фактор — сетевая задержка (пинг). Выясним причину, почему выполнение операции «Обновить конфигурацию базы данных» с удаленного компьютера, находящегося в другом здании, гарантированно приведет к катастрофическому падению производительности.

При обновлении конфигурации БД Конфигуратор выполняет десятки тысяч транзакций, отправляя их на сервер последовательно (синхронно). Каждая следующая транзакция не начнется до тех пор, пока система не получит подтверждение о выполнении предыдущей.

Проанализируем простую математику сетевых задержек:

Критически важный риск: Помимо крайне медленной работы, проведение реструктуризации удаленно несет в себе угрозу потери данных. При малейшем микрообрыве сетевого соединения сессия Конфигуратора с сервером будет разорвана, что может привести к критическому повреждению таблиц метаданных СУБД и долгому восстановлению базы из резервной копии.

---

Оптимизация памяти и использование RAM-диска

Разберем важные нюансы оптимизации оперативной памяти, упомянутые в обсуждении.

При работе с конфигурациями уровня «Комплексная автоматизация» или «ERP» крайне важно использовать 64-разрядную версию клиента 1С:Предприятие. В 32-битной версии адресное пространство процесса ограничено 3–4 Гб памяти. В процессе сравнения таких тяжелых метаданных программа гарантированно превысит этот лимит и аварийно завершится с ошибкой Недостаточно памяти.

Что касается переноса папки Temp и кэша 1С на высокоскоростной RAM-диск (виртуальный диск в оперативной памяти):

---

Идеальный гибридный сценарий (Best Practice)

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

Шаг 1. Подготовительные работы на быстром локальном ПК (Pentium + SSD):

  1. Подключаемся к серверу 1С и выгружаем конфигурацию поставщика или основную конфигурацию нашей рабочей базы в файл формата .cf. Для этого используем меню Конфигурация -> Сохранить конфигурацию в файл...
  2. Переносим полученный файл конфигурации на быстрый локальный компьютер.
  3. Создаем локально пустую файловую базу данных 1С на SSD-накопителе и загружаем в нее наш файл .cf.
  4. Запускаем локальный Конфигуратор (обязательно 64-битный) и выполняем тяжелую операцию «Сравнить и объединить с конфигурацией из файла» (выбирая файл нового обновления).
  5. На быстром процессоре Pentium и SSD сопоставление объектов и объединение пройдут максимально быстро. По окончании процесса сохраняем результат объединения в новый файл конфигурации, например, под именем merged.cf.

Шаг 2. Применение изменений локально на сервере (Xeon):

  1. Переносим готовый скомпилированный файл merged.cf обратно на сервер (например, через RDP или общую сетевую папку).
  2. Запускаем терминальную сессию (RDP) непосредственно на самом сервере приложений 1С (или на компьютере, находящемся с ним в одной быстрой локальной сети).
  3. Запускаем Конфигуратор рабочей базы данных прямо внутри этой терминальной сессии.
  4. Выполняем операцию Конфигурация -> Загрузить конфигурацию из файла..., указав наш подготовленный файл merged.cf. Данная операция просто замещает текущую конфигурацию подготовленной метаструктурой без долгого пообъектного сравнения.
  5. Запускаем обновление конфигурации базы данных (клавиша F7). Поскольку запуск произведен локально на сервере, сетевые задержки будут минимальными (менее 0.5 мс), и реструктуризация таблиц в СУБД выполнится максимально быстро и безопасно.

Для автоматизации переноса и загрузки метаданных на сервере можно использовать запуск Конфигуратора из командной строки. Посмотрим на пример пакетного файла для загрузки готового файла конфигурации и выполнения обновления базы данных:


"C:\Program Files\1cv8\8.3.XX.XXXX\bin\1cv8.exe" DESIGNER /S "ИмяСервера\ИмяБазы" /N "Администратор" /P "Пароль" /LoadCfg "C:\Exchange\merged.cf" /UpdateDBCfg

Используя этот проверенный метод, мы полностью исключаем влияние сетевых задержек на процесс изменения структуры таблиц БД и одновременно задействуем всю мощь быстрого локального процессора для ресурсоемкой операции сравнения кода.

← На главную