Переход с файловой версии хранения данных на серверный вариант (SQL) является критически важным этапом в жизни любой растущей компании. Когда количество пользователей превышает 5-10 человек, файловая база начинает работать нестабильно, возникают блокировки записей и значительные задержки при выполнении операций. Перенос 1С на SQL сервер решает эти проблемы, обеспечивая высокую производительность и надежность хранения информации.
Процесс миграции требует тщательной подготовки, так как любая ошибка может привести к порче данных или простою предприятия. Вы должны понимать разницу между файловым режимом и клиент-серверным, чтобы правильно спланировать работы. В этой статье мы подробно разберем все этапы: от подготовки инфраструктуры до финального тестирования работоспособности системы.
Подготовка инфраструктуры и выбор СУБД
Прежде чем приступать к техническим манипуляциям, необходимо убедиться, что серверное оборудование соответствует требованиям платформы 1С:Предприятие 8.3. Для комфортной работы рекомендуется выделить отдельный физический или виртуальный сервер под базу данных. Основным выбором для большинства организаций в РФ является Microsoft SQL Server, который обеспечивает наилучшую совместимость и производительность.
Однако в текущих условиях импортозамещения многие компании рассматривают альтернативные варианты. Вы можете использовать PostgreSQL с расширением для 1С или отечественные решения на базе Linux.
⚠️ Внимание: Убедитесь, что версия платформы 1С полностью совместима с выбранной версией системы управления базами данных. Несовместимость версий может привести к невозможности создания информационной базы.
Минимальные требования к конфигурации сервера зависят от объема данных и количества одновременных пользователей. Для небольших компаний достаточно 4-8 ядер процессора и 16-32 ГБ оперативной памяти. Если вы планируете масштабирование в будущем, лучше сразу заложить запас ресурсов, чтобы не останавливать работу для апгрейда оборудования через полгода.
Резервное копирование и выгрузка базы
Самый важный этап перед началом любых работ — это создание полной резервной копии. Никогда не начинайте миграцию, не убедившись в наличии актуального бэкапа. Для файловой базы это делается через консоль администрирования или напрямую копированием папки с данными, но правильный способ — использование встроенных средств выгрузки.
Запустите консоль администрирования серверов 1С или утилиту 1cv8 в режиме предприятия с правами администратора. В списке информационных баз выберите нужную вам базу данных. В контекстном меню или через кнопку "Еще" найдите пункт "Выгрузить информационную базу". Система предложит указать путь для сохранения файла с расширением .dt.
- 📁 Выберите надежное хранилище с достаточным объемом свободного места для файла выгрузки.
- 🔒 Проверьте целостность файла после выгрузки, сравнив контрольную сумму или попытавшись открыть его в тестовой среде.
- 💾 Храните резервную копию на отдельном физическом диске или сетевом ресурсе, отличном от источника данных.
Процесс выгрузки может занять от нескольких минут до нескольких часов в зависимости от размера базы. В это время желательно ограничить доступ пользователей к системе, чтобы избежать изменения данных в момент создания снимка. Файл .dt содержит всю структуру метаданных, конфигурацию и сами данные, что делает его универсальным форматом для переноса.
☑️ Контрольный список перед миграцией
Создание пустой базы на SQL сервере
После подготовки бэкапа необходимо создать контейнер для данных на стороне СУБД. Этот процесс выполняется не в самой 1С, а через инструменты управления базой данных, например, SQL Server Management Studio (SSMS) для продуктов Microsoft. Вам потребуется создать новую базу данных с кодировкой, подходящей для работы с русскоязычными данными.
При создании базы в SQL Server критически важно настроить параметры сортировки (Collation). Для корректной работы 1С обычно используется сортировка Cyrillic_General_CI_AS. Неправильный выбор этого параметра приведет к ошибкам при сравнении строк, работе с регистрами и формированию отчетов, исправить которые постфактум будет крайне сложно.
Также необходимо создать пользователя базы данных и назначить ему соответствующие права. Пользователь, от имени которого 1С будет подключаться к SQL, должен иметь права db_owner для создаваемой базы. Это необходимо для создания таблиц, индексов и хранимых процедур в процессе загрузки данных из файла выгрузки.
| Параметр | Рекомендуемое значение | Описание |
|---|---|---|
| Сортировка (Collation) | Cyrillic_General_CI_AS | Обеспечивает корректный порядок символов кириллицы |
| Модель восстановления | Simple или Full | Simple экономит место в логах, Full позволяет делать бэкапы транзакций |
| Начальный размер файла | Зависит от размера.dt | Рекомендуется задать размер сразу, чтобы избежать авто роста |
| Автоприращение | 10-20% или фиксировано | Шаг увеличения файла данных при заполнении |
Почему важна сортировка?
Если выбрать сортировку Latin1_General, то русские буквы могут сортироваться некорректно, а поиск по строковым полям будет работать с ошибками или вообще не находить данные. Изменить сортировку существующей базы SQL без пересоздания практически невозможно.
Загрузка данных из файла выгрузки
Теперь, когда пустая база создана на стороне СУБД, нужно связать её с платформой 1С и загрузить данные. Откройте консоль администрирования серверов 1С или запустите конфигуратор в режиме выбора базы. Добавьте новую информационную базу, указав тип расположения "На сервере 1С:Предприятия".
В параметрах подключения укажите имя сервера баз данных (например, localhost или сетевое имя), имя созданной ранее базы SQL, тип СУБД и учетные данные пользователя. После сохранения параметров система предложит создать базу данных. Выберите опцию "Создать из файла выгрузки" и укажите путь к вашему файлу .dt.
1cv8 DESIGNER /F "C:\Bases\NewSQLBase" /N "Admin" /P "Password" -LoadBaseFromDT "C:\Backup\Base.dt"
Процесс загрузки может занять значительное время. Платформа будет последовательно создавать таблицы, загружать в них данные, строить индексы и обновлять служебную информацию. В этот момент не рекомендуется прерывать процесс, так как это может оставить базу в несогласованном состоянии. Прогресс обычно отображается в окне конфигуратора или в логах сервера 1С.
⚠️ Внимание: Во время загрузки базы убедитесь, что на диске с логами транзакций SQL Server достаточно свободного места. Переполнение лога остановит процесс загрузки и потребует сложной процедуры восстановления.
По завершении загрузки обязательно зайдите в базу в режиме Конфигуратор и выполните тестирование и исправление информационной базы. Эта процедура проверит логическую целостность данных после переноса и исправит возможные мелкие несоответствия, возникшие в процессе конвертации форматов хранения.
Если база очень большая (более 100 ГБ), рассмотрите возможность использования утилиты командной строки для загрузки, так как она потребляет меньше оперативной памяти интерфейса и работает стабильнее в фоновом режиме.
Настройка прав доступа и лицензирование
После успешной загрузки данных необходимо настроить права доступа для пользователей. В клиент-серверном варианте права делятся на два уровня: права на вход в базу данных SQL и права внутри платформы 1С. Пользователи, которые работали в файловой версии, должны быть добавлены в список пользователей новой базы.
Для каждого пользователя задайте роль и профиль доступа. Если ранее использовалась файловая база, права могли храниться внутри неё, и при загрузке из .dt они должны восстановиться автоматически. Однако проверьте, что у всех сотрудников есть доступ к новому серверу 1С и лицензиям.
- 👥 Проверьте списки пользователей в режиме "Администрирование" и убедитесь, что все сотрудники на месте.
- 🔑 Убедитесь, что количество клиентских лицензий на сервере 1С покрывает максимальное число одновременных подключений.
- 🛡️ Настройте ролевую модель, ограничив права рядовых сотрудников только необходимыми функциями для безопасности.
Особое внимание уделите лицензированию сервера 1С. Для работы в клиент-серверном варианте необходимы серверные лицензии (x86-64), количество которых должно соответствовать числу одновременно работающих соединений. Отсутствие лицензий приведет к тому, что пользователи не смогут подключиться к базе после переноса.
Оптимизация производительности после переноса
Просто перенести базу недостаточно для получения максимальной скорости работы. SQL сервер требует дополнительной настройки под специфику работы 1С. В первую очередь необходимо настроить параметры памяти и процессора для экземпляра SQL Server, выделив ему достаточное количество ресурсов, но не отбирая всё у операционной системы.
Рекомендуется отключить автообновление статистики в самой 1С, если вы планируете управлять этим процессом на стороне SQL, или наоборот, настроить регулярное обновление статистики средствами СУБД в ночное время. Актуальная статистика критически важна для построения оптимальных планов выполнения запросов.
Также стоит обратить внимание на настройку файлов данных и журналов транзакций. Разнесите файл данных (.mdf) и файл лога (.ldf) на разные физические диски. Это значительно увеличит скорость записи и чтения, так как операции будут выполняться параллельно, не конкурируя за ресурс одного накопителя.
Разделение файлов данных и логов на разные физические диски — одно из самых эффективных и дешевых решений для ускорения работы 1С на SQL.
Для мониторинга производительности используйте встроенные средства 1С: Технологический журнал (ТЖ). Настройте его на запись медленных запросов и проанализируйте логи в первые дни работы. Это поможет выявить узкие места, которые не были очевидны на файловой версии, и донастроить индексы в базе данных SQL.
⚠️ Внимание: Интерфейсы и точные названия пунктов меню могут отличаться в зависимости от версии платформы 1С и используемой СУБД. Всегда сверяйтесь с официальной документацией к вашей конкретной версии ПО перед внесением критических изменений в настройки сервера.
Часто задаваемые вопросы (FAQ)
Можно ли перенести базу 1С на SQL без остановки работы для пользователей?
Полностью без остановки — нет. На момент финального переключения база должна быть недоступна для записи, чтобы данные не рассинхронизировались. Однако можно минимизировать простой, подготовив базу заранее и переключив пользователей только на время финальной выгрузки остатков.
Что делать, если после переноса 1С работает медленнее, чем на файлах?
Это частая ситуация, связанная с отсутствием оптимизации. Проверьте планы запросов, обновите статистику в SQL, убедитесь, что файлы данных и логов разнесены по дискам, и проверьте настройки сетевого взаимодействия между сервером 1С и сервером баз данных.
Нужно ли покупать новые лицензии 1С при переходе на SQL?
Да, для клиент-серверного варианта требуются серверные лицензии 1С:Предприятие (x86-64), которые отличаются от лицензий для файлового режима. Также могут потребоваться лицензии на саму СУБД, если вы используете коммерческий продукт вроде Microsoft SQL Server.
Можно ли вернуться обратно на файловую версию после переноса?
Технически это возможно через процедуру выгрузки базы в файл .dt из SQL версии и последующей загрузки в файловый режим. Однако это не рекомендуется делать часто, так как могут возникнуть проблемы с уникальными идентификаторами ссылок и служебными таблицами.