Переход с файлового варианта работы 1С:Предприятие на клиент-серверный (SQL) часто вызывает вопросы у администраторов и разработчиков. Основной миф, с которым сталкиваются специалисты, заключается в необходимости выгрузки информационной базы в формат .dt для проведения обновления в файловом режиме с последующей загрузкой обратно. Разберем подробно, почему этот метод считается устаревшим, и как выглядит профессиональный регламент обновления базы на SQL-сервере.
Важно понимать: процесс обновления конфигурации в файловом и серверном вариантах практически не отличается с точки зрения интерфейса «Конфигуратора». Однако техническая реализация и требования к безопасности данных существенно меняются. Рассмотрим стандартный алгоритм, который следует применять для большинства серверных баз.
Для начала откроем конфигурацию через меню Конфигурация — Открыть конфигурацию. Далее выполним следующие шаги:
1Cv8.1CD, для SQL-базы необходимо использовать средства СУБД (SQL Server Management Studio). Это позволяет создать бэкап без прерывания работы пользователей в режиме Full или Simple.Блокировка регламентных заданий включена. Это предотвратит запуск фоновых процессов, которые могут помешать реструктуризации таблиц..cfu или поиск в каталоге шаблонов tmplts).F7 (Обновить конфигурацию базы данных).Проанализируем ситуацию, описанную в обсуждении, когда предлагается обновлять базу через промежуточную файловую версию. Такой подход имеет ряд серьезных недостатков:
Во-первых, формат .dt является транспортным средством, а не полноценным архивом. При конвертации из SQL в файловый вариант и обратно возможны ошибки округления в числовых полях или специфические проблемы с индексами. Во-вторых, существует ограничение размера таблиц в файловой базе (4 Гб). Если ваша SQL-база превышает этот объем, вы просто не сможете загрузить ее в файловый вариант. В-третьих, на больших базах (от 40–50 Гб) процесс выгрузки и загрузки может занимать часы, в то время как SQL-бэкап и прямое обновление проходят значительно быстрее.
Если ваша база работает в режиме круглосуточной доступности, простой даже в 10–20 минут может быть критичным. Рассмотрим профессиональную схему обновления, которую применяют в крупных холдингах:
.cfu файла в рабочей базе, мы можем подготовить готовый файл конфигурации .cf из протестированной копии..LDF (лога транзакций), так как SQL будет записывать в него все изменения структур таблиц.Часто при обновлении на SQL Server 2014 и выше администраторы замечают, что конфигуратор зависает. Проанализируем причины этой ситуации. Зависание (белое окно с надписью «Не отвечает») часто связано с механизмом Cardinality Estimator. В новых версиях SQL изменился алгоритм оценки планов запросов, что иногда замедляет работу 1С.
Рассмотрим методы оптимизации процесса обновления:
Compatibility Level, соответствующий более старой версии (например, SQL 2012), если наблюдаются аномальные задержки.UPDATE STATISTICS. Это критично, так как после изменения структуры таблиц старые статистики становятся неактуальными, и SQL начинает строить неэффективные планы запросов.
USE [Имя_Вашей_Базы];
GO
DBCC FREEPROCCACHE;
GO
Если в вашей системе используется РИБ, крайне важно соблюдать идентичность конфигураций. Рассмотрим правильный метод переноса изменений в подчиненные узлы, находящиеся на SQL:
Ни в коем случае не используйте команду Загрузить конфигурацию из файла, если этот файл не был получен путем «выгрузки конфигурации» из центрального узла. Лучшим способом является штатный обмен: конфигурация передается в сообщении обмена. Если же объем изменений велик, и вы решили использовать .cf, убедитесь, что это файл поставки. В противном случае вы рискуете получить рассогласование внутренних идентификаторов метаданных (UUID), что приведет к невозможности дальнейшего обмена.
Начиная с платформы 8.3.11, нам доступен режим фоновой реструктуризации. Выясним его преимущества: основная часть работы по изменению таблиц в SQL происходит в фоновом режиме, пока пользователи продолжают работать в базе. Система создает временные таблицы и переносит данные. Монопольный режим потребуется лишь на очень короткий промежуток времени в самом конце процесса для замены старых таблиц новыми. Это наиболее предпочтительный вариант для баз объемом в сотни гигабайт.
Для включения этого режима при обновлении через конфигуратор выберем соответствующую опцию в диалоге обновления конфигурации базы данных.
Таким образом, переход на SQL не усложняет, а скорее расширяет возможности администратора 1С, предоставляя инструменты для более быстрого и безопасного обновления системы без лишних манипуляций с промежуточными файлами.