Как правильно организовать процесс обновления конфигурации 1С при переходе на SQL-сервер?

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

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

Принципиальное отличие и стандартный порядок действий

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

Для начала откроем конфигурацию через меню Конфигурация — Открыть конфигурацию. Далее выполним следующие шаги:

  1. Создание резервной копии. В отличие от файлового варианта, где достаточно скопировать файл 1Cv8.1CD, для SQL-базы необходимо использовать средства СУБД (SQL Server Management Studio). Это позволяет создать бэкап без прерывания работы пользователей в режиме Full или Simple.
  2. Блокировка регламентных заданий. Это критически важный этап для серверного варианта. Перед обновлением необходимо зайти в консоль администрирования кластера 1С и в свойствах базы установить флаг Блокировка регламентных заданий включена. Это предотвратит запуск фоновых процессов, которые могут помешать реструктуризации таблиц.
  3. Завершение сеансов пользователей. Обновление конфигурации базы данных требует монопольного доступа.
  4. Применение обновления. Используем пункт меню Конфигурация — Поддержка — Обновить конфигурацию. Выбираем источник (файл .cfu или поиск в каталоге шаблонов tmplts).
  5. Принятие изменений. После объединения конфигураций нажимаем F7 (Обновить конфигурацию базы данных).

Почему не стоит использовать выгрузку в .dt для обновления

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

Во-первых, формат .dt является транспортным средством, а не полноценным архивом. При конвертации из SQL в файловый вариант и обратно возможны ошибки округления в числовых полях или специфические проблемы с индексами. Во-вторых, существует ограничение размера таблиц в файловой базе (4 Гб). Если ваша SQL-база превышает этот объем, вы просто не сможете загрузить ее в файловый вариант. В-третьих, на больших базах (от 40–50 Гб) процесс выгрузки и загрузки может занимать часы, в то время как SQL-бэкап и прямое обновление проходят значительно быстрее.

Регламент обновления для высоконагруженных систем (24/7)

Если ваша база работает в режиме круглосуточной доступности, простой даже в 10–20 минут может быть критичным. Рассмотрим профессиональную схему обновления, которую применяют в крупных холдингах:

  1. Тестовый контур. Сначала создаем копию базы на тестовом сервере SQL. Проводим обновление там, проверяем работоспособность доработок и фиксируем время, необходимое на реструктуризацию.
  2. Подготовка файла конфигурации. Чтобы сократить время простоя, вместо выбора .cfu файла в рабочей базе, мы можем подготовить готовый файл конфигурации .cf из протестированной копии.
  3. Работа с логом транзакций. Перед масштабным обновлением убедимся, что на диске достаточно места для роста файла .LDF (лога транзакций), так как SQL будет записывать в него все изменения структур таблиц.
  4. Отключение пользователей. Только на финальном этапе (накатывание метаданных) мы вытесняем пользователей из системы.

Решение проблемы медленного обновления и «белого экрана»

Часто при обновлении на SQL Server 2014 и выше администраторы замечают, что конфигуратор зависает. Проанализируем причины этой ситуации. Зависание (белое окно с надписью «Не отвечает») часто связано с механизмом Cardinality Estimator. В новых версиях SQL изменился алгоритм оценки планов запросов, что иногда замедляет работу 1С.

Рассмотрим методы оптимизации процесса обновления:


USE [Имя_Вашей_Базы];
GO
DBCC FREEPROCCACHE;
GO

Особенности работы с Распределенными Информационными Базами (РИБ) на SQL

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

Ни в коем случае не используйте команду Загрузить конфигурацию из файла, если этот файл не был получен путем «выгрузки конфигурации» из центрального узла. Лучшим способом является штатный обмен: конфигурация передается в сообщении обмена. Если же объем изменений велик, и вы решили использовать .cf, убедитесь, что это файл поставки. В противном случае вы рискуете получить рассогласование внутренних идентификаторов метаданных (UUID), что приведет к невозможности дальнейшего обмена.

Фоновая реструктуризация — современный подход

Начиная с платформы 8.3.11, нам доступен режим фоновой реструктуризации. Выясним его преимущества: основная часть работы по изменению таблиц в SQL происходит в фоновом режиме, пока пользователи продолжают работать в базе. Система создает временные таблицы и переносит данные. Монопольный режим потребуется лишь на очень короткий промежуток времени в самом конце процесса для замены старых таблиц новыми. Это наиболее предпочтительный вариант для баз объемом в сотни гигабайт.

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

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

← На главную