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

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

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

Подготовка серверной инфраструктуры и выбор версии

Первым шагом является установка и настройка самой системы управления базами данных. Для платформ 1С:Предприятие 8.3 и выше рекомендуется использовать версии MS SQL Server не ниже 2016 года, так как более старые версии могут не поддерживать некоторые типы индексов и функции оптимизации, внедренные в новых релизах платформы. Важно учитывать, что лицензирование SQL Server может быть дорогим, поэтому для небольших компаний часто выбирают редакцию Standard или даже Express, если объем базы не превышает 10 ГБ.

Установка должна производиться на выделенный сервер с достаточным объемом оперативной памяти. SQL Server очень чувствителен к количеству RAM, так как старается закэшировать как можно больше данных в памяти для ускорения выборок. При установке обязательно выберите режим смешанной аутентификации (SQL Server Authentication), чтобы создать пользователя sa или другого администратора базы, который будет использоваться для подключения 1С.

⚠️ Внимание: Никогда не устанавливайте SQL Server на тот же диск (раздел), где расположена операционная система или файлы подкачки. Выделение отдельного физического диска или быстрого RAID-массива под файлы данных (.mdf) и журналов транзакций (.ldf) критически важно для производительности.

После установки проверьте, запущена ли служба SQL Server (MSSQLSERVER) и разрешены ли подключения по протоколу TCP/IP через утилиту "Диспетчер конфигурации SQL Server". По умолчанию сетевой доступ может быть отключен, что не позволит серверу 1С увидеть базу данных по сети.

💡

Для мониторинга активности подключений и блокировок в реальном времени используйте встроенную утилиту sp_who2 или сторонние мониторы активности, чтобы вовремя выявлять "тяжелые" запросы.

Создание информационной базы в режиме SQL

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

В списке серверов 1С найдите нужный кластер и в контекстном меню выберите "Создать" -> "Информационная база". В открывшемся мастере укажите имя базы, которое будет видно пользователям в списке. На следующем этапе критически важно выбрать тип размещения: отметьте пункт "На сервере СУБД". Если этого не сделать, 1С попытается создать базу в файловом режиме, игнорируя настройки SQL.

Далее система запросит параметры подключения к серверу баз данных. Вам потребуется ввести:

  • 🖥️ Имя сервера баз данных (сетевое имя или IP-адрес сервера с установленным SQL)
  • 🔐 Имя пользователя базы данных (обычно sa или специально созданный учетный запись)
  • 🔑 Пароль пользователя базы данных
  • 📂 Имя базы данных в СУБД (может совпадать с именем ИБ или быть техническим, например DB_Accounting_01)

☑️ Проверка перед созданием

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

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

Конвертация файловой базы в SQL Server

Наиболее частая задача — это перенос существующей рабочей базы из файлового режима в SQL. Этот процесс называется конвертацией и выполняется через консоль администрирования серверов 1С. Перед началом процедуры обязательно сделайте полную резервную копию файловой базы, скопировав папку с файлами 1Cv8.1CD и 1Cv8Log в надежное место.

В консоли администрирования выберите существующую файловую базу в списке, нажмите правую кнопку мыши и выберите пункт "Изменить". В окне свойств найдите переключатель режима работы и измените его с "Файловый вариант" на "Сервер 1С:Предприятия" (для толстого клиента) или просто выберите тип СУБД. Однако более надежный способ — использование утилиты командной строки или функции "Конвертировать информационную базу" в графическом интерфейсе консоли.

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

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

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

⚠️ Внимание: После успешной конвертации файловая папка с данными больше не используется для работы. Не удаляйте её сразу! Оставьте её как архивную копию на случай, если потребуется откатиться назад в течение первых дней эксплуатации новой SQL-версии.

Настройка прав доступа и пользователей SQL

Безопасность базы данных 1С напрямую зависит от правильной настройки прав в SQL Server. Не рекомендуется использовать учетную запись sa для повседневной работы пользователей или даже для подключения сервера 1С, если это возможно. Лучшей практикой является создание отдельного пользователя SQL для каждой базы 1С или группы баз.

Для этого в SQL Server Management Studio (SSMS) зайдите в раздел "Безопасность" -> "Входы" (Logins). Создайте нового пользователя, задайте сложный пароль. Затем перейдите в свойства созданной базы данных, раздел "Сопоставление пользователей" (User Mapping). Отметьте созданного пользователя и назначьте ему роль db_owner. Это даст полные права на управление объектами внутри этой конкретной базы, но не позволит затрагивать другие базы на сервере.

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

Роль в SQL Server Описание прав Рекомендация для 1С
db_owner Полный доступ ко всем объектам базы ✅ Обязательно для пользователя подключения 1С
db_datareader Только чтение данных ❌ Недостаточно для работы платформы
db_datawriter Только запись данных ❌ Недостаточно для работы платформы
sysadmin Полный доступ ко всему серверу SQL ⚠️ Избыточно и небезопасно
📊 Какую версию SQL Server вы используете для 1С?
SQL Server 2016
SQL Server 2019
SQL Server 2022
PostgreSQL (Linux)
Другое

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

Просто перенести базу на SQL недостаточно для получения максимальной скорости. По умолчанию настройки SQL Server ориентированы на универсальные задачи, а не на специфику 1С. Ключевым параметром является настройка максимального объема памяти. Если на сервере 32 ГБ RAM, а SQL Server настроен на использование "безлимитной" памяти, он может забрать всё под кэш, оставив операционную систему и сам процесс rphost без ресурсов, что приведет к свопингу и зависаниям.

Рекомендуется ограничить потребление памяти сервером SQL примерно 70-80% от общей физической памяти, если на этом же сервере крутятся процессы 1С. Если же SQL вынесен на отдельный мощный сервер, можно выделить больше, но всегда оставляйте запас для ОС. Также важно проверить модель восстановления базы данных. Для рабочих баз 1С часто используют модель Simple (Простая), чтобы журнал транзакций не разрастался бесконечно, при условии, что резервное копирование осуществляется на уровне файлов или сторонними утилитами.

Еще одним важным аспектом является настройка параметров запуска сервера 1С. В свойствах рабочего процесса (rphost) в консоли администрирования можно ограничить объем памяти, выделяемый под одну базу. Это предотвратит ситуацию, когда одна "тяжелая" отчетность "съедает" всю память кластера.

💡

Оптимальная производительность достигается балансом: SQL Server не должен душить ОС памятью, а процессы 1С должны иметь достаточный лимит RAM для выполнения сложных запросов.

Решение типовых проблем подключения

Даже при строгом следовании инструкции могут возникнуть ошибки подключения. Самая распространенная из них — "Сервер баз данных недоступен" или "Ошибка при соединении". В 90% случаев проблема кроется в сетевых настройках или брандмауэре Windows. Убедитесь, что порт 1433 (или тот, который вы настроили для экземпляра SQL) открыт для входящих подключений на сервере БД.

Вторая частая проблема — неверная кодировка или сортировка (Collation). Базы данных 1С требуют определенную сортировку, обычно совместимую с русской локалью (например, Cyrillic_General_CI_AS). Если при создании базы была выбрана другая сортировка, могут возникать ошибки при сравнении строк или работе с регистрами сведений. Проверить сортировку можно командой:

SELECT DATABASEPROPERTYEX('ИмяБазы', 'Collation')

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

⚠️ Внимание: Интерфейсы и точные названия пунктов меню могут отличаться в зависимости от версии платформы 1С (8.3.хх) и редакции SQL Server. Всегда сверяйтесь с официальным руководством администратора для вашей конкретной версии ПО, так как обновления безопасности могут менять настройки по умолчанию.

Часто задаваемые вопросы (FAQ)

Можно ли подключить одну базу 1С сразу к нескольким серверам SQL для надежности?

Нет, одна информационная база 1С может работать только с одним экземпляром СУБД одновременно. Для обеспечения отказоустойчивости используются технологии кластеризации SQL Server (Always On Availability Groups или Failover Cluster), где база физически одна, но доступна через виртуальное имя, которое переключается между узлами при сбое.

Нужно ли переустанавливать 1С на клиентских машинах после перехода на SQL?

Нет, клиентское ПО 1С (Тонкий клиент, Веб-клиент или Толстый клиент) не требует переустановки. Изменяется только строка подключения в списке баз. Пользователям достаточно удалить старую файловую базу из списка и добавить новую, указав адрес сервера 1С и имя базы в режиме SQL.

Как узнать, в каком режиме работает моя база сейчас?

Это можно увидеть в консоли администрирования серверов 1С. В списке информационных баз в колонке "Тип СУБД" будет указано "Файловый вариант" или название вашей СУБД (например, MS SQL Server). Также при запуске базы в режиме предприятия в заголовке окна или в меню "О программе" часто указывается тип хранилища данных.

Влияет ли переход на SQL на стоимость лицензий 1С?

Сам переход не требует покупки дополнительных лицензий на платформу 1С:Предприятие. Однако вам потребуется приобрести лицензию на MS SQL Server (или использовать бесплатную редакцию Express, если подходят ограничения), а также, возможно, лицензии на клиентский доступ (CAL) к самому серверу SQL, в зависимости от модели лицензирования Microsoft (на ядро или на пользователя).