Работа с устаревшим файловым форматом DBF в современных условиях часто становится узким местом для растущего бизнеса. Когда количество пользователей превышает 5-10 человек, а объем данных достигает гигабайтов, файловый вариант хранения перестает справляться с нагрузкой. Переход на клиент-серверный вариант, в частности на Microsoft SQL Server, становится не просто желанием, а технической необходимостью для обеспечения стабильности.

Процесс миграции данных из 1cv8.1cd (файловая база) в формат SQL требует тщательной подготовки и понимания архитектуры СУБД. Ошибки на этапе настройки прав доступа или выбора режима совместимости могут привести к потере производительности или даже повреждению данных. В этой статье мы детально разберем каждый шаг процедуры, от подготовки окружения до финальной настройки прав пользователей в консоли администрирования.

Вы узнаете, как правильно сконфигурировать сервер баз данных, какие параметры критичны для работы 1С:Предприятие, и как избежать типичных ловушек при конвертации. Мы не будем использовать шаблонные фразы, а сосредоточимся на конкретных технических действиях, необходимых системному администратору или программисту 1С.

Подготовка сервера и предварительные требования

Перед началом любых манипуляций с данными необходимо убедиться, что серверная инфраструктура готова к приему нагрузки. Для установки SQL Server требуются определенные ресурсы: оперативная память от 4 ГБ (рекомендуется 8+ ГБ для рабочих баз), быстрый дисковый массив (желательно SSD) и стабильное сетевое соединение. Недостаток ресурсов на этом этапе проявится позже в виде «тормозов» при проведении документов.

Убедитесь, что на сервере установлен совместимый дистрибутив СУБД. Для современных версий платформы 1С (8.3.20 и выше) рекомендуется использовать SQL Server 2016 или новее. Более старые версии могут не поддерживать новые типы данных или функции оптимизации запросов, используемые платформой.

Важным аспектом является настройка сетевых протоколов. По умолчанию SQL Server может не иметь включенного протокола TCP/IP, что сделает базу недоступной для клиентов 1С по сети. Необходимо зайти в SQL Server Configuration Manager и активировать нужный протокол в разделе SQL Server Network Configuration.

⚠️ Внимание: Перед установкой проверьте кодировку сортировки (Collation) создаваемого экземпляра SQL Server. Для корректной работы 1С в русскоязычном сегменте она должна быть Cyrillic_General_CI_AS. Несоответствие кодировки приведет к ошибкам при создании базы или некорректному поиску по строковым полям.

Также стоит заранее создать отдельную учетную запись для службы SQL Server, отличную от локального администратора, принцип наименьших привилегий. Это повысит безопасность всей системы в случае компрометации одного из сервисов.

☑️ Готовность сервера к миграции

Выполнено: 0 / 4

Создание базы данных и настройка прав доступа

Создание контейнера для данных в SQL Server можно выполнить двумя способами: через графический интерфейс SQL Server Management Studio (SSMS) или с помощью T-SQL скрипта. Второй вариант предпочтительнее для автоматизации и документирования действий. При создании базы важно правильно настроить параметры автоувеличения файлов данных (.mdf) и логов транзакций (.ldf).

Для обеспечения максимальной производительности рекомендуется отключить автоматическое создание статистики и автообновление статистики на уровне базы, передав управление этими процессами платформе 1С или настроив их по расписанию. Однако для большинства типовых конфигураций настройки по умолчанию являются приемлемыми.

Ключевой момент — создание пользователя SQL, который будет использоваться 1С для подключения. Не используйте учетную запись sa (системного администратора) для работы приложения. Создайте нового логина с надежным паролем и сопоставьте его с пользователем в создаваемой базе данных.

CREATE LOGIN [User1C] WITH PASSWORD ='StrongPassword123!';

USE [Base1C];

CREATE USER [User1C] FOR LOGIN [User1C];

ALTER ROLE [db_owner] ADD MEMBER [User1C];

Права db_owner необходимы пользователю 1С на этапе первоначальной инициализации структуры базы данных. После завершения создания и обновления конфигурации права можно ограничить, но в стандартном сценарии развертывания 1С требует полных прав на схему.

💡

Для ускорения первоначального создания базы в SQL Server временно увеличьте размер файла первичных данных (Initial Size) до ожидаемого объема, чтобы избежать фрагментации при росте файла в процессе наполнения данными.

Процесс конвертации базы из файлового режима

Сам процесс переноса данных выполняется средствами самой платформы 1С:Предприятие. Вам не нужны сторонние конвертеры, которые могут нарушить целостность ссылок. Запустите конфигуратор в режиме монопольного доступа к файловой базе. Это критически важно: ни один пользователь не должен быть подключен к базе в момент начала конвертации.

В меню выберите пункт Администрирование -> Выгрузить информационную базу. Выберите формат выгрузки Файл данных 1С (*.dt). Этот файл будет содержать всю структуру метаданных и текущие данные в сжатом виде. Для больших баз этот процесс может занять от нескольких минут до нескольких часов.

После успешной выгрузки создайте пустую базу в SQL Server через консоль администрирования 1С или добавьте существующую базу данных SQL в список информационных баз. При добавлении укажите тип СУБД Microsoft SQL Server, имя сервера, имя базы данных и учетные данные пользователя, созданного на предыдущем этапе.

Теперь запустите созданную базу в режиме Конфигуратор. Платформа обнаружит, что база пустая, и предложит загрузить данные из файла .dt. Согласитесь с предложением и укажите путь к ранее созданному файлу выгрузки. Начнется процесс создания таблиц, индексов и наполнения их данными.

⚠️ Внимание: Во время загрузки данных из DT-файла в SQL Server категорически запрещено прерывать процесс, перезагружать сервер или отключать сеть. Прерывание может оставить базу в состоянии, требующем сложного восстановления через консоль SQL.
📊 Какой объем вашей текущей базы 1С?
Менее 1 ГБ
1-5 ГБ
5-20 ГБ
Более 20 ГБ

Оптимизация производительности после миграции

После успешного переноса база данных может работать медленно, если не провести ряд настроек оптимизации. Файловая и серверная базы имеют разную физику хранения данных. В SQL Server крайне важна работа с индексами и статистикой.

Выполните перестроение индексов (REBUILD) для всех таблиц базы. Фрагментация, возникшая в процессе загрузки данных, может существенно замедлить выполнение запросов. Также обновите статистику по всем полям, чтобы оптимизатор запросов SQL Server выбирал наилучшие планы выполнения.

Проверьте настройки памяти для экземпляра SQL Server. По умолчанию сервер может зарезервировать под себя всю доступную оперативную память, что «задушит» операционную систему и другие службы. Установите предел использования памяти (Max Server Memory) примерно на 80-85% от общего объема ОЗУ сервера.

Параметр настройки Рекомендуемое значение Влияние на работу
Max Degree of Parallelism 1 или 2 Предотвращает блокировки при параллельных запросах
Cost Threshold for Parallelism 50 Порог запуска параллельного плана выполнения
Auto Create Statistics OFF (управляется 1С) Избегает конфликтов блокировок при создании статистики
Recovery Model Simple или Full Зависит от необходимости резервного копирования логов

Для баз с высокой интенсивностью записи рекомендуется использовать модель восстановления Simple, если вы используете сторонние средства бэкапа на уровне файлов, или Full с частым бэкапом логов транзакций средствами SQL Server.

Почему нельзя оставлять Auto Create Statistics включенным?

При активной работе пользователей 1С может возникать ситуация, когда несколько потоков пытаются обновить статистику для одной таблицы одновременно. Это приводит к взаимным блокировкам (deadlocks) и временной недоступности базы для всех пользователей.

Диагностика типовых ошибок подключения

Наиболее частая проблема после миграции — ошибка соединения при запуске тонкого клиента. Обычно она связана с сетевыми настройками или правами доступа. Если вы видите сообщение «Сервер 1С:Предприятия не найден» или ошибку авторизации SQL, проверьте журнал регистрации 1С и логи событий Windows на сервере.

Убедитесь, что брандмауэр Windows не блокирует порт 1433 (стандартный порт SQL Server). Необходимо создать входящее правило для TCP-соединений на этот порт. Также проверьте, запущена ли служба SQL Server Browser, если вы используете именованные экземпляры.

Ошибки вида «Логин failed for user» часто указывают на неверный тип аутентификации. Убедитесь, что в свойствах сервера SQL в SSMS включен режим SQL Server and Windows Authentication mode. В режиме только Windows-аутентификации логины 1С работать не будут.

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

⚠️ Внимание: Интерфейсы SQL Server Management Studio и настройки безопасности могут отличаться в зависимости от конкретной версии СУБД (Express, Standard, Enterprise). Всегда сверяйтесь с официальной документацией Microsoft для вашей версии продукта.
💡

90% проблем с подключением решаются проверкой брандмауэра, включением протокола TCP/IP и правильным выбором режима смешанной аутентификации в настройках SQL Server.

Регулярное обслуживание и резервное копирование

Переход на SQL Server накладывает обязательства по регулярному обслуживанию. В отличие от файловой базы, которую можно просто скопировать, серверная база требует использования штатных средств резервного копирования СУБД.

Настройте план обслуживания (Maintenance Plan) или используйте скрипты PowerShell для автоматического создания полных бэкапов раз в сутки и дифференциальных или бэкапов логов каждые несколько часов. Храните копии на отдельном физическом диске или сетевом ресурсе.

Регулярно выполняйте проверку целостности базы данных командой DBCC CHECKDB. Это позволит выявить повреждения страниц данных на ранней стадии, пока они не привели к критическим сбоям в работе бухгалтерии или склада.

Мониторинг размера файла логов транзакций (.ldf) критически важен. Если модель восстановления Full, а бэкапы логов не настроены, файл может разрастись до размеров всего диска, остановив работу базы. В таких случаях требуется экстренное усечение лога или настройка цепочки резервного копирования.

Можно ли вернуть базу обратно в файловый формат?

Да, это возможно. В конфигураторе серверной базы выберите Администрирование -> Выгрузить информационную базу в формат .dt. Затем создайте новую пустую файловую базу и загрузите в нее этот файл. Учтите, что при этом будут потеряны некоторые специфические настройки SQL, а производительность вернется к уровню файлового варианта.

Нужно ли покупать лицензию SQL Server для работы с 1С?

Для работы с 1С:Предприятие требуется лицензия на SQL Server. Однако существует бесплатная редакция SQL Server Express, которая имеет ограничения по размеру базы (10 ГБ) и использованию ресурсов процессора. Для небольших компаний этой версии часто бывает достаточно.

Как узнать, какая версия платформы 1С оптимальна для моей базы?

Актуальные версии платформы (ветка 8.3.2х и новее) содержат множество оптимизаций специально для работы с SQL Server. Рекомендуется всегда использовать последнюю стабильную версию релиза, проверяя информацию на сайте поддержки 1С (users.v8.1c.ru) в разделе совместимости.

Что делать, если после конвертации база работает медленнее?

Сначала выполните перестроение индексов и обновление статистики. Если это не помогло, проанализируйте медленные запросы через SQL Server Profiler. Часто проблема кроется в неоптимальных запросах конфигурации, которые на файловом варианте работали за счет кэширования, а на SQL требуют точной настройки индексов.