Администрирование · 11 мин
Как перенести 1С на SQL: полная инструкция
Как перенести базу 1С с файлового режима на SQL Server: подготовка, выгрузка dt, настройка сервера, создание базы и проверка результата. Пошаговая инструкция.
Перенос базы 1С с файлового режима на клиент-серверный (SQL) — стандартная задача при росте числа пользователей и объёма данных. Файловый режим стабильно работает примерно до 5–10 одновременных пользователей и базы размером в несколько гигабайт; дальше начинаются блокировки, падения скорости и ошибки целостности. Перевод на SQL снимает эти ограничения: СУБД берёт на себя параллельный доступ, журналирование и резервное копирование.
Сама процедура технически проста: база выгружается из файлового режима в файл выгрузки (.dt) через конфигуратор, а затем загружается в новую базу, уже созданную на сервере 1С с подключением к СУБД. Сложность не в переносе данных, а в подготовке инфраструктуры: установке и настройке SQL Server, сервера 1С:Предприятия и корректной регистрации базы.
Ниже разобран полный цикл работ: от выбора СУБД и подготовки сервера до загрузки данных и проверки результата. Инструкция ориентирована на связку 1С + Microsoft SQL Server как наиболее распространённую, но отмечены и особенности PostgreSQL.
Когда файловый режим пора менять на SQL
Файловая база хранится в одном файле 1Cv8.1CD, и платформа сама управляет доступом к нему. При росте нагрузки появляются характерные симптомы: ошибки «Конфликт блокировок при выполнении транзакции», долгое проведение документов, зависание при одновременной работе пользователей, повреждение файла при обрыве сети или питания.
Ориентировочные признаки того, что пора переходить на SQL: больше 5–10 активных пользователей, размер базы свыше 5–10 ГБ, интенсивный документооборот с частыми одновременными проведениями, требования к регламентному резервному копированию средствами СУБД. Точных порогов нет — многое зависит от конфигурации и железа, но перечисленные симптомы однозначно указывают на предел файлового режима.
Как выбрать действие
Выбор СУБД и подготовка сервера
1С:Предприятие работает с несколькими СУБД: Microsoft SQL Server, PostgreSQL (включая сборку Postgres Pro), Oracle Database и IBM Db2. На практике чаще всего выбирают MS SQL Server — он исторически лучше протестирован с платформой и проще в сопровождении для типовых конфигураций. PostgreSQL выбирают ради экономии на лицензиях, но он требует специальной сборки и более внимательной настройки.
Архитектура клиент-серверного режима трёхзвенная: клиентские приложения → сервер 1С:Предприятия → сервер СУБД. Для небольших компаний сервер 1С и SQL Server допустимо разместить на одной физической машине, если хватает оперативной памяти. Важно: редакция SQL Server Express имеет ограничения по объёму памяти и размеру базы, поэтому для рабочих баз она подходит только в самых простых случаях.
Минимальный порядок подготовки: установить SQL Server с проверкой подлинности в смешанном режиме (или настроить Windows-аутентификацию), установить сервер 1С:Предприятия той же версии платформы, что используется у клиентов, создать в СУБД учётную запись с правами на создание баз данных. Все компоненты должны быть совместимы по версиям — матрицу совместимости платформы и СУБД стоит сверить с системными требованиями 1С.
Выгрузка базы из файлового режима
Перенос данных выполняется штатным механизмом выгрузки информационной базы. Перед началом завершите работу всех пользователей и убедитесь, что регламентные задания остановлены — выгрузка требует монопольного доступа.
Последовательность действий в конфигураторе:
- 1Сделайте копию файла 1Cv8.1CD как резервную страховку
- 2Запустите конфигуратор от имени пользователя с полными правами
- 3Убедитесь в монопольном режиме: все сеансы завершены
- 4Меню «Администрирование» → «Выгрузить информационную базу»
- 5Укажите путь и имя файла выгрузки, например base_backup.dt
- 6Дождитесь завершения: для больших баз это может занять часы
- 7Проверьте размер полученного .dt — он должен быть сопоставим с размером базы
Перед выгрузкой полезно выполнить «Тестирование и исправление» информационной базы — это снизит риск того, что скрытые ошибки файловой базы «переедут» вместе с данными на SQL. Также учтите: файл .dt — это не бэкап в полном смысле, а транспортный формат. Храните отдельно и копию исходного файла базы.
Создание базы на сервере 1С и SQL
Новая база создаётся через консоль кластера серверов 1С. Откройте оснастку «Администрирование серверов 1С:Предприятия», найдите свой кластер, в ветке «Информационные базы» создайте новую базу. В параметрах укажите: имя базы, тип СУБД, адрес сервера СУБД, имя базы данных на SQL Server и учётные данные пользователя СУБД.
Ключевой момент — флажок «Создать базу данных в случае её отсутствия». Если он установлен, платформа сама создаст пустую базу на SQL Server с корректными настройками. Вручную создавать базу средствами SQL Server не нужно: платформа применяет свои требования к параметрам, и самостоятельно созданная база может оказаться несовместимой.
После создания информационной базы она появится в списке, но будет пустой — без конфигурации и данных. Следующий шаг — загрузить в неё выгрузку .dt через конфигуратор: открыть новую базу в конфигураторе, выбрать «Администрирование» → «Загрузить информационную базу» и указать файл .dt. Загрузка больших баз занимает существенное время.
Настройка SQL Server под 1С
После загрузки данных стоит выполнить базовую оптимизацию СУБД. Установите ограничение максимального объёма памяти для SQL Server, оставив ресурс операционной системе и серверу 1С, если они на одной машине. По умолчанию SQL Server стремится занять всю доступную память, что вызывает конкуренцию за ресурсы.
Настройте модель восстановления базы. Полная модель (Full) обеспечивает возможность восстановления на произвольный момент времени, но требует регламентного бэкапа журнала транзакций — иначе файл журнала будет расти бесконечно. Для небольших компаний часто достаточно простой модели (Simple) с ежедневным полным бэкапом.
Организуйте регулярное резервное копирование средствами SQL Server: план обслуживания с ежедневным полным бэкапом и хранением копий на отдельном носителе. Это одно из главных преимуществ перехода на SQL — используйте его.
Не переносите привычку «бэкап = копирование файла» на клиент-серверный режим. Копировать файлы .mdf и .ldf работающей базы нельзя — копия будет неконсистентной. Только штатные средства: BACKUP DATABASE в SQL Server или выгрузка .dt из конфигуратора как дополнительная мера.
Проверка результата и перевод пользователей
После загрузки данных базу нужно проверить до того, как туда пойдут пользователи. Войдите в режим 1С:Предприятие, откройте ключевые отчёты (оборотно-сальдовую ведомость, остатки склада) и сравните итоги с файловой базой за одинаковые периоды — цифры должны совпасть до копейки.
Проверьте типовые операции: создание и проведение документа, запуск обменов, формирование регламентированной отчётности. Убедитесь, что работают плановые регламентные задания — в клиент-серверном режиме они выполняются на сервере 1С, и их расписание могло потребовать перенастройки.
Затем обновите списки баз у пользователей: добавьте новую базу с типом подключения «На сервере 1С:Предприятия», указав имя сервера и имя базы в кластере. Старую файловую базу не удаляйте сразу — переведите её в режим «только чтение» или просто отключите пользователям доступ, сохранив как архив и страховку на первое время.
Как проверить результат переноса
Совпадают с файловой базой до копейки
Расхождения в суммах или количествах — данные перенесены с ошибкой
Документ проводится за привычное время, движения корректны
Ошибки проведения или аномально долгое выполнение
Нет конфликтов блокировок при штатных операциях
Повторяются ошибки блокировок — нужна настройка СУБД и анализ запросов
Выполняются по расписанию на сервере
Задания не стартуют — проверьте настройки кластера и блокировки
Ограничения и частые вопросы после перехода
Переход на SQL не ускоряет автоматически все операции. Отчёты и проведения, оптимизированные под файловый режим, на SQL могут работать даже медленнее, пока не выполнена настройка СУБД и не обновлена статистика. Также меняется механизм блокировок: в клиент-серверном режиме используются управляемые блокировки, и конфигурации со старым кодом могут требовать доработки.
Учтите лицензионную сторону: для сервера 1С требуется отдельная лицензия на сервер, а для SQL Server — лицензии на сервер или на ядра (либо использование бесплатного PostgreSQL). Это существенная статья расходов, которую нужно заложить в проект заранее.
Что важно запомнить
Перенос выполняется только через выгрузку/загрузку .dt — прямого копирования файла нет. Сначала готовится инфраструктура (SQL Server + сервер 1С), затем выгрузка, создание базы через консоль кластера, загрузка и обязательная сверка итогов. После перехода настройте бэкапы средствами СУБД и сохраните файловую базу как архив.
Часто задаваемые вопросы
Можно ли просто скопировать файл 1Cv8.1CD на SQL-сервер?
Нет. Файловый и клиент-серверный режимы используют принципиально разные форматы хранения. Единственный штатный способ переноса — выгрузка базы в файл .dt из конфигуратора и загрузка его в базу, созданную на сервере 1С. Существуют сторонние утилиты прямого переноса, но их использование — на свой риск и без гарантий поддержки.
Сколько времени занимает перенос?
Зависит от размера базы и производительности дисковой подсистемы. База в несколько гигабайт выгружается и загружается за десятки минут, базы в десятки гигабайт могут потребовать нескольких часов на каждую операцию. Планируйте перенос на нерабочее время, например на выходные, с запасом на проверку.
Нужно ли дорабатывать конфигурацию для работы на SQL?
Типовые конфигурации на управляемых формах обычно работают без доработок. Проблемы возникают со старыми самописными решениями: прямые запросы к файловой базе, жёсткая привязка к путям, код, рассчитанный на монопольный режим. Также может потребоваться перевод конфигурации на управляемые блокировки для снижения конфликтов.
Что выбрать: MS SQL Server или PostgreSQL?
MS SQL Server проще в настройке и лучше протестирован с платформой, но требует лицензий. PostgreSQL бесплатен (нужна специальная сборка под 1С), но требователен к квалификации администратора и тонкой настройке. Для небольшой компании без выделенного администратора СУБД чаще рациональнее MS SQL Server.
Можно ли вернуться обратно в файловый режим?
Да, тем же способом в обратную сторону: выгрузить базу из клиент-серверного режима в .dt и загрузить её в файловую базу. Это полезно знать как запасной вариант, хотя на практике после перехода на SQL возвращаются редко — обычно только для создания локальных копий для разработки или тестирования.
Ускорит ли переход на SQL работу отчётов?
Не автоматически. Устраняются конфликты блокировок и ограничения файлового доступа, но тяжёлые отчёты могут работать медленно из-за неоптимальных запросов. После перехода полезно обновить статистику в СУБД, проверить индексы и при необходимости проанализировать планы запросов проблемных отчётов.