Как правильно перевести базу 1С 8.1 на платформу 8.2 в клиент-серверном варианте

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

Переход с платформы 1С:Предприятие 8.1 на 8.2 является важным шагом для обеспечения стабильности и расширения функциональности информационной системы. Несмотря на то что процесс кажется автоматическим, работа с крупными базами (более 15 ГБ) под управлением MS SQL Server требует особого внимания к деталям. Разберем пошагово, как выполнить эту процедуру максимально безопасно и эффективно.

Предварительная подготовка информационной базы

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

  1. Создание резервной копии. Это обязательный этап. Выполняем выгрузку в файл .dt и создаем полную копию базы средствами MS SQL Server.
  2. Тестирование и исправление (ТИИ). Запустим конфигуратор 8.1 и выберем пункт меню "Администрирование — Тестирование и исправление". Нам важно убедиться, что в базе нет логических ошибок и битых ссылок, так как при конвертации структуры таблиц они могут привести к критическому сбою.
  3. Сжатие лога транзакций. Как справедливо замечено в обсуждении, перед миграцией стоит привести файлы SQL в порядок. Проанализируем размер файла .ldf. Если он чрезмерно разросся, выполним сжатие (Shrink).

Для оптимизации процесса на стороне SQL Server рекомендуется перевести базу данных в модель восстановления Simple. Это предотвратит лавинообразный рост лога во время массовой перестройки индексов в процессе конвертации. Рассмотрим пример SQL-запроса для этой операции:


USE [Имя_Вашей_Базы];
ALTER DATABASE [Имя_Вашей_Базы] SET RECOVERY SIMPLE;
GO
DBCC SHRINKFILE (N'Имя_Файла_Лога' , 1);
GO

Процесс технической конвертации в Конфигураторе

Процедура миграции на 8.2 встроена в саму платформу. Разберем алгоритм действий:

Запустим Конфигуратор версии 8.2 и выберем существующую базу 8.1. Платформа распознает старый формат и выдаст запрос: "Информационная база будет сконвертирована. Продолжить?". При нажатии "Да" начнется процесс преобразования внутренних таблиц. Внимание: после завершения этого процесса база больше не сможет быть открыта версией 8.1.

В процессе конвертации 1С выполняет следующие ключевые изменения:

Использование специализированных обработок

Для того чтобы миграция не "аукнулась" программными ошибками, проанализируем конфигурацию на наличие несовместимого кода. В дистрибутив платформы 8.2 часто входит обработка ПроверкаКонфигурацииДляПереходаНа82.epf. Рассмотрим, что она проверяет:

Посмотрим на пример кода, который может потребовать внимания, если мы решим отключить режим совместимости:


// В 8.1 получение пользователя выглядело так:
ИмяПользователя = ПользователиИнформационнойБазы.ТекущийПользователь().Имя;

// В 8.2 при использовании новых механизмов рекомендуется проверять 
// наличие прав и контекст исполнения (сервер/клиент)

Настройка режима совместимости

После успешной конвертации в свойствах конфигурации по умолчанию будет установлен "Режим совместимости — Версия 8.1". Проанализируем, что это дает:

Этот режим эмулирует поведение старой платформы. Это позволяет запустить систему немедленно, без правки кода. Однако при этом нам будут недоступны многие возможности 8.2, такие как оптимизированные агрегаты в регистрах или новые возможности компоновки данных. Если мы планируем развивать систему, режим совместимости со временем стоит отключить, предварительно исправив все ошибки, выявленные обработкой проверки.

Особенности клиент-серверного взаимодействия

При работе с MS SQL Server после перехода на 8.2 важно выполнить регламентные операции на стороне СУБД. Выясним причину возможного замедления базы сразу после миграции: это происходит из-за устаревания статистики индексов.

Сразу после конвертации выполним следующие команды в SQL Server Management Studio:

  1. Обновление статистики: EXEC sp_updatestats;
  2. Реорганизация или перестройка индексов. Это критично для баз объемом 15 ГБ и выше, так как структура хранения изменилась.

Также стоит учитывать, что сервер 1С 8.2 устанавливается как отдельная служба. Мы можем запустить сервер 8.1 и 8.2 одновременно на одном физическом сервере, но они должны использовать разные сетевые порты (по умолчанию 1540 и 1541 для 8.1, и те же для 8.2, если не изменить их при установке).

Работа с лицензиями

Проанализируем ситуацию с защитой. Ключи HASP (USB-заглушки) для 8.1 обычно подходят и для 8.2. Однако, если вы переходите с 32-битного сервера на 64-битный сервер 8.2, убедитесь, что ваша лицензия на сервер это позволяет. 64-битный сервер 1С требует отдельной лицензии, которая отличается от лицензии на 32-битную версию, существовавшую во времена 8.1.

Заключение

Переход на 8.2 — это не только техническое обновление, но и возможность повысить производительность за счет более эффективной работы платформы с блокировками в MS SQL. Выполнив все шаги — от тестирования в 8.1 до обновления статистики в SQL после конвертации — мы обеспечим стабильную работу системы и создадим фундамент для дальнейшего перехода на версию 8.3.

← На главную