Почему обновление 1С:УПП зависает на 0% в клиент-серверном варианте и как это исправить

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

При работе с крупными прикладными решениями, такими как 1С:Управление производственным предприятием (УПП), администраторы и программисты часто сталкиваются с ситуацией, когда обновление в файловом варианте проходит успешно, а в клиент-серверном (MS SQL) процесс «замирает» на этапе сравнения конфигураций (0%). Проблема усугубляется большим объемом базы (от 50 ГБ и выше) и спецификой работы платформы с тяжелыми метаданными.

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

Причины зависания на этапе сравнения конфигураций

Выясним, почему процесс сравнения ведет себя по-разному в разных режимах. В файловом варианте Конфигуратор работает с данными напрямую через файловую систему, что минимизирует накладные расходы на передачу данных. В клиент-серверном варианте процесс сравнения-объединения — это сложная цепочка взаимодействий между Конфигуратором (клиентом), кластером серверов 1С и СУБД SQL Server.

Проанализируем основные факторы, вызывающие «ступор» на 0%:

  1. Особенности платформы: Релизы ветки 8.3.15 (особенно ранние сборки) имеют известные проблемы с утечками памяти и неэффективным управлением процессами rphost при работе с большими объемами метаданных.
  2. Объем передаваемых данных: При сравнении УПП (около 1 ГБ метаданных в распакованном виде) между сервером и клиентом передаются огромные объемы временных данных. Если сеть нестабильна или есть задержки, процесс визуально останавливается.
  3. Блокировки в SQL Server: Чтение таблиц Config и ConfigSave может замедляться из-за неактуальной статистики или неоптимальных планов запросов SQL.
  4. Настройки антивируса: Сканирование временных файлов в каталоге сеансовых данных на сервере 1С может блокировать запись промежуточных результатов сравнения.

Решение 1: Переход на стабильную версию платформы

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

  1. Обновим сервер и клиентскую часть до версии не ниже 8.3.15.1565, а лучше перейдем на ветку 8.3.16 или 8.3.17 (если это допустимо для вашей версии УПП).
  2. Важно убедиться, что используется 64-битный клиент 1С. Поскольку УПП — конфигурация огромная, 32-битный процесс Конфигуратора может просто упираться в лимит адресного пространства (2 ГБ), что и вызывает ошибки типа «Недостаточно памяти» или бесконечное ожидание.

Решение 2: Использование методики обновления через CF-файл

Если стандартное обновление через Поддержка -> Обновить конфигурацию на боевой базе зависает, разберем наиболее надежный и быстрый метод «обхода». Вместо того чтобы мучить сервер процессом сравнения на «живой» базе, подготовим файл конфигурации заранее.

Пошаговый алгоритм:

  1. Развернем на локальном компьютере пустую файловую базу.
  2. Загрузим в нее cf-файл текущей конфигурации из рабочей базы.
  3. Выполним обновление этой файловой базы до целевого релиза штатными средствами. Файловый вариант гораздо охотнее «проглатывает» тяжелые сравнения метаданных.
  4. После успешного обновления в файловой базе сохраним конфигурацию в файл: Конфигурация -> Сохранить конфигурацию в файл... (получаем обновленный cf).
  5. Вернемся в рабочую клиент-серверную базу. Обязательно создадим бэкап средствами SQL Server!
  6. Выполним команду Конфигурация -> Загрузить конфигурацию из файла... и выберем наш подготовленный cf.

Почему это эффективно: При загрузке cf платформа не производит сравнение каждого объекта «на лету» с выводом окна сопоставления. Она просто заменяет структуру таблиц метаданных в SQL, что происходит в разы быстрее и стабильнее.

Решение 3: Очистка серверного и локального кэша

Часто причиной «залипания» на 0% являются битые индексы кэша метаданных. Разберем, как правильно выполнить очистку:

  1. На стороне клиента: Удалим базу из списка и добавим ее заново (это сбросит локальный идентификатор кэша) или вручную очистим папки %AppData%\1C\1Cv8 и %LocalAppData%\1C\1Cv8.
  2. На стороне сервера: Остановим службу 1C:Enterprise 8.3 Server Agent. Перейдем в каталог srvinfo\reg_1541 (путь по умолчанию) и удалим содержимое папки snccntx. Это очистит сеансовые данные и закэшированные метаданные конфигурации.
  3. Запустим службу сервера заново и повторим попытку обновления.

Решение 4: Настройка MS SQL Server для ускорения работы с метаданными

Если база работает на MS SQL, проанализируем настройки сервера. Низкая производительность при работе с системными таблицами Config может блокировать обновление.

Выполним обслуживание системных таблиц перед обновлением. Запустим SQL Server Management Studio и выполним следующий скрипт для обновления статистики:


USE [Имя_Вашей_Базы];
GO
UPDATE STATISTICS Config;
UPDATE STATISTICS ConfigSave;
UPDATE STATISTICS Files;
GO

Также проверим параметр Max Degree of Parallelism (MAXDOP) в настройках SQL Server. Для корректной работы 1С рекомендуется устанавливать его в значение 1. Если там стоит 0, сервер может пытаться распараллелить чтение метаданных, что при больших объемах УПП приводит к взаимным блокировкам (LATCH) внутри самого SQL-движка.

Решение 5: Увеличение лимитов памяти rphost

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

Итоги

Зависание обновления УПП на 0% в клиент-серверном варианте — это следствие сложности конфигурации и особенностей взаимодействия слоев системы. Наиболее прагматичным решением является подготовка CF-файла в файловом режиме с последующей его загрузкой в серверную базу. Это экономит время и минимизирует риски возникновения непредсказуемых ошибок платформы в процессе сравнения.

Если же вы принципиально хотите использовать штатный механизм обновления, начните с обновления платформы до 8.3.16+ и полного регламентного обслуживания SQL-базы (Statistics, Reindex).

← На главную