Рост объема данных в вашей информационной базе неизбежно приводит к замедлению работы 1С:Предприятие. Когда количество записей превышает сотни тысяч, или количество одновременных пользователей достигает десятка, файловый вариант работы (dbf или 1cd) перестает справляться с нагрузкой. Именно в этот момент перед администратором встает вопрос о необходимости миграции на клиент-серверную архитектуру. Это критический шаг для обеспечения стабильности и скорости бизнес-процессов.
Переход на Microsoft SQL Server или PostgreSQL не просто меняет формат хранения данных, но и радикально изменяет логику взаимодействия платформы с базой. Серверная СУБД берет на себя выполнение сложных запросов, блокировок и транзакций, разгружая клиентские машины и сервер приложений 1С. Однако сам процесс переноса требует строгой последовательности действий, так как ошибка на любом этапе может привести к потере данных или неработоспособности системы.
В данной статье мы подробно разберем все этапы подготовки, настройки сервера баз данных и непосредственного переноса конфигурации. Вы узнаете о тонкостях настройки прав доступа, драйверов ODBC и параметрах оптимизации, которые часто упускают из виду новички. Готовьтесь к работе в консоли администрирования и внимательному изучению логов.
Подготовка инфраструктуры и выбор СУБД
Перед тем как начать процесс конвертации, необходимо убедиться, что аппаратные ресурсы сервера соответствуют требованиям серверной версии 1С. Минимальные требования к оперативной памяти и количеству ядер процессора существенно выше, чем для файлового варианта. Если вы планируете использовать Microsoft SQL Server, убедитесь, что у вас есть действующая лицензия или вы используете бесплатную редакцию Express, которая имеет ограничения по объему базы (10 ГБ).
Альтернативой проприетарному решению от Microsoft является свободная СУБД PostgreSQL. Она становится все более популярной в экосистеме 1С благодаря отсутствию лицензионных отчислений и высокой производительности при правильной настройке. Однако стоит помнить, что для работы с PostgreSQL в 1С требуется установка специфических драйверов и библиотек, которые не всегда идут в стандартной поставке платформы.
⚠️ Внимание: Перед началом любых работ обязательно создайте полную резервную копию вашей текущей файловой базы данных. Храните копию на отдельном физическом носителе, не связанном с основным сервером.
Установка сервера баз данных должна производиться на выделенный сервер или, в случае малых нагрузок, на ту же машину, где установлен сервер 1С, но с учетом разделения ресурсов. После установки СУБД необходимо создать пустую базу данных, которая станет приемником для ваших данных. Имя базы лучше задать латинскими буквами, чтобы избежать проблем с кодировкой в системных таблицах.
При установке MS SQL Server выберите режим смешанной аутентификации (SQL Server Authentication), чтобы иметь возможность подключаться от имени пользователя sa, это упростит первоначальную настройку прав доступа.
Настройка прав доступа и пользователей СУБД
Корректная настройка прав доступа — это фундамент безопасности вашей будущей системы. Сервер 1С будет обращаться к СУБД от имени конкретного пользователя, поэтому этому пользователю должны быть выданы соответствующие привилегии. Нельзя использовать учетную запись системного администратора (например, sa) для повседневной работы платформы, так как это создает огромные риски безопасности.
Создайте нового пользователя в среде СУБД и назначьте ему роль владельца базы данных (db_owner) для той базы, которую вы подготовили для миграции. В SQL Server Management Studio это делается через контекстное меню базы данных в разделе Properties → Permissions или через вкладку Users. Убедитесь, что пользователь имеет право на создание таблиц, процедур и представлений.
- 🔐 Создайте отдельного пользователя для каждой информационной базы 1С, чтобы изолировать их друг от друга на уровне СУБД.
- 📂 Назначьте минимально необходимые права: для работы 1С достаточно роли
db_owner, не нужно давать праваsysadminна весь сервер. - 📝 Запишите логин и сложный пароль в надежное место, они понадобятся при регистрации базы в списке 1С.
Если вы используете аутентификацию Windows, то необходимо добавить учетную запись службы сервера 1С (usr1cv8 или аналогичную) в пользователи SQL Server и выдать ей права. Этот метод считается более безопасным, так как не требует хранения паролей в конфигурационных файлах, но усложняет перенос базы на другой сервер в будущем.
Процесс выгрузки и загрузки информационной базы
Сам механизм переноса данных осуществляется стандартными средствами конфигуратора 1С. Вам необходимо запустить платформу в режиме Конфигуратор для вашей файловой базы. В меню выберите пункт Администрирование → Выгрузить информационную базу. Система предложит указать путь к файлу выгрузки, который будет иметь расширение .dt. Этот файл содержит структуру конфигурации, все данные, регистры и метаданные.
Процесс выгрузки может занять значительное время в зависимости от объема данных. В это время работа пользователей с базой должна быть полностью остановлена. После завершения выгрузки проверьте размер полученного файла — он должен быть адекватен объему ваших данных. Поврежденный файл выгрузки приведет к ошибке на этапе загрузки.
1cv8.exe DESIGNER /F "C:\Base\FileBase" /DumpIB "C:\Backup\BaseDump.dt"
Теперь переходим к этапу загрузки. Запустите конфигуратор для новой, пока еще пустой базы, подключенной к серверу SQL. В режиме конфигуратора эта база будет отображаться как серверная. Выберите пункт меню Администрирование → Загрузить информационную базу и укажите путь к ранее созданному файлу .dt.
⚠️ Внимание: При загрузке данных на сервер SQL старая структура таблиц будет полностью удалена и пересоздана заново. Убедитесь, что вы подключились именно к той пустой базе, которую создавали для миграции, а не к системной базе master.
Во время загрузки платформа будет генерировать SQL-скрипты для создания таблиц, индексов и триггеров, соответствующих метаданным вашей конфигурации. Этот процесс наиболее чувствителен к правам доступа пользователя СУБД. Если вы увидите ошибку о невозможности создания объекта, проверьте права пользователя, от имени которого происходит подключение.
Что делать, если загрузка прервалась?
Если процесс загрузки прервался из-за ошибки, база данных в SQL может остаться в неконсистентном состоянии. Рекомендуется удалить эту базу в СУБД, создать новую чистую базу с тем же именем и повторить процедуру загрузки заново, предварительно проверив логи сервера 1С.
Регистрация базы в кластере серверов 1С
После успешной загрузки данных базу необходимо зарегистрировать в кластере серверов 1С:Предприятие, чтобы пользователи могли подключаться к ней по сети. Это делается через консоль администрирования серверов 1С (ras). Запустите консоль, подключитесь к вашему кластеру и создайте новую информационную базу в ветке Infobases.
При создании базы укажите тип СУБД (MS SQL или PostgreSQL), имя сервера баз данных, имя самой базы, а также логин и пароль пользователя, которого вы создавали ранее. Важно правильно указать тип кластера и версию платформы, если у вас в инфраструктуре используются разные версии серверов 1С.
| Параметр подключения | Значение для SQL Server | Значение для PostgreSQL |
|---|---|---|
| Тип СУБД | MSSQLServer | PostgreSQL |
| Сервер БД | Имя сервера или IP | Имя сервера или IP |
| Порт | 1433 (по умолчанию) | 5432 (по умолчанию) |
| Имя базы | Имя БД в SQL | Имя БД в Postgres |
Особое внимание уделите настройкам сессий. Для серверной версии 1С можно ограничить количество одновременных подключений, настроить расписание регламентных заданий и указать параметры блокировок. Неправильная настройка этих параметров может привести к тому, что пользователи не смогут войти в базу в часы пик.
Регистрация базы в кластере — это логическое действие, которое не копирует данные, а лишь создает маршрут для клиентов к уже существующей базе данных на сервере СУБД.
Установка и настройка клиентских соединений
На рабочих местах пользователей, где установлен тонкий клиент 1С, необходимо добавить новую базу в список запуска. При добавлении выберите тип расположения базы На сервере 1С:Предприятия. В поле "Сервер" укажите имя или IP-адрес сервера, где запущен сервис 1С:Предприятие (а не сервер SQL!).
В поле "Имя информационной базы" введите то имя, которое вы присвоили базе при регистрации в кластере серверов. Пользовательские права и роли, настроенные внутри конфигурации 1С, сохранятся при миграции, поэтому дополнительно настраивать доступ внутри самой программы не потребуется, если вы не планируете их менять.
- 🖥️ Проверьте доступность порта
1540(по умолчанию для агента сервера 1С) с рабочих мест пользователей через брандмауэр. - 🔗 Убедитесь, что на клиентских машинах установлена та же версия платформы 1С, что и на сервере, во избежание конфликтов версий метаданных.
- 🚀 После первого запуска выполните тестирование и исправление базы в режиме предприятия для проверки целостности связей.
Если пользователи жалуются на медленное открытие базы, проверьте сетевую задержку между клиентом и сервером 1С. Серверная архитектура чувствительна к качеству сети, так как обмен данными происходит интенсивнее, чем при файловом варианте, хотя основная нагрузка и ложится на сервер.
Оптимизация производительности после миграции
Простой перенос данных не гарантирует мгновенного ускорения работы. Серверная СУБД требует настройки под конкретную нагрузку 1С. В первую очередь необходимо настроить индексы. Платформа 1С создает стандартные индексы, но для часто используемых отчетов и документов может потребоваться создание дополнительных индексов по полям отбора.
Используйте Технологический журнал (ТЖ) сервера 1С для анализа медленных запросов. Включите логирование длительных запросов (например, более 1 секунды) и проанализируйте, какие операции потребляют больше всего ресурсов. На основе этих данных можно принимать решения о донастройке конфигурации или индексации в СУБД.
⚠️ Внимание: Параметры работы СУБД (размер буферного кэша, степень параллелизма) могут меняться в зависимости от версии SQL Server или PostgreSQL. Сверяйте рекомендуемые настройки с официальной документацией вендора СУБД перед внесением изменений в конфигурационные файлы.
Также рекомендуется настроить план обслуживания базы данных в самой СУБД. Регулярное обновление статистики, перестроение индексов и сжатие логов транзакций критически важны для поддержания высокой скорости отклика системы в долгосрочной перспективе. Без этого база данных со временем начнет деградировать по производительности.
☑️ План обслуживания SQL для 1С
Частые вопросы по миграции 1С на SQL
Можно ли вернуть базу обратно в файловый вариант после перевода на SQL?
Да, это возможно. Вам нужно выгрузить базу из серверного варианта в файл .dt через конфигуратор, а затем загрузить этот файл в новую пустую файловую базу. Однако учтите, что некоторые специфические механизмы, оптимизированные под SQL, могут работать иначе в файловом режиме.
Какой минимальный объем оперативной памяти нужен для SQL Server под 1С?
Для комфортной работы небольшой базы (до 5-10 пользователей) рекомендуется выделить минимум 4-8 ГБ оперативной памяти только под нужды СУБД, не считая памяти для самого сервера приложений 1С и операционной системы.
Нужно ли останавливать службу 1С:Предприятие во время миграции?
Да, на время выгрузки и загрузки данных (.dt) все пользователи должны быть отключены, а служба сервера 1С может быть остановлена для гарантии отсутствия фоновых процессов, хотя для самой операции конвертации это не строго обязательно, если нет активных сеансов.
Влияет ли переход на SQL на стоимость лицензий 1С?
Лицензии на саму платформу 1С:Предприятие (клиентские и серверные) остаются прежними. Однако вам потребуется приобрести лицензию на серверную часть 1С (если у вас ее не было) и лицензию на СУБД (например, MS SQL Server), если вы не используете бесплатные версии или PostgreSQL.
Что делать с журналом регистрации после переноса?
Журнал регистрации является частью информационной базы. При выгрузке и загрузке через файл .dt весь журнал регистрации переносится полностью. Вам не нужно выполнять никаких дополнительных действий для его сохранения.