1С:Предприятие на MS SQL Server: от подготовки сервера до первой базы
Содержание
Частое заблуждение: чтобы подключить 1С к SQL Server, достаточно указать в окне запуска адрес SQL и имя базы. Так не работает
. Клиент 1С никогда не ходит в MS SQL напрямую: между ними всегда стоит сервер «1С:Предприятия 8.3». Базу создают в кластере этого сервера, выбирают тип СУБД MS SQL Server и указывают сервер баз данных, имя базы, логин и пароль SQL.
Значит, для подключения нужны три вещи: установленный и лицензированный сервер 1С, запущенный SQL Server с логином, у которого есть право создавать базы, и сетевой доступ между ними. Всё остальное — драйверы, порты, настройки памяти — обслуживает эти три пункта. Инструкция ниже общая для платформы 8.3 и не зависит от конфигурации: БП, ЗУП, УТ и ERP подключаются одинаково.
Как устроено подключение 1С к SQL Server
Цепочка выглядит так:
- 🖥️ Клиент 1С (толстый, тонкий или веб-клиент через публикацию) подключается к агенту сервера 1С по порту
1540. - ⚙️ Агент передаёт его менеджеру кластера (
1541), а тот — рабочему процессуrphost. Диапазон портов рабочих процессов задают в свойствах рабочего сервера, по умолчанию это1560–1591. - 🗄️ Рабочий процесс сам открывает соединение с SQL Server и выполняет запросы.
Отсюда два практических вывода.
- Драйвер SQL нужен на машине, где стоит сервер 1С, а не на компьютерах пользователей.
- Пользователям не нужен ни логин SQL, ни открытый порт
1433. Они видят только сервер 1С. Логин SQL хранится в свойствах информационной базы в кластере.
Сервер 1С и SQL Server можно ставить на одну машину или на разные. Для небольшой компании (до 20–30 пользователей) одна машина проще и обычно быстрее: нет сетевой задержки между rphost и СУБД. На двух машинах легче масштабироваться, но между ними нужна быстрая сеть.
Файловую базу нельзя «переключить» на SQL галочкой. Её выгружают в файл .dt и загружают в новую пустую базу на сервере. Порядок — в разделе про создание базы.
Подготовка к подключению 1С к MS SQL: сервер, логин, драйвер
Сервер 1С:Предприятия
Сервер 1С ставят из того же дистрибутива технологической платформы, что и клиент, отметив компонент «Сервер 1С:Предприятия». Установщик предложит запустить его как службу Windows — соглашайтесь. Разрядность сервера 1С (64-бит) не связана с разрядностью клиентов.
Без лицензии на сервер 1С кластер не будет обслуживать базы. Клиентские лицензии на пользователей нужны отдельно: они могут выдаваться сервером, если при создании базы включён флажок о выдаче лицензий сервером.
SQL Server
При установке SQL Server от выбора зависят две вещи, которые потом дорого менять:
| Параметр | Что выбрать | Почему |
|---|---|---|
| Режим проверки подлинности | Смешанный (SQL Server и Windows) | 1С чаще подключают по логину SQL, а не по учётке Windows |
| Параметры сортировки (collation) | Cyrillic_General_CI_AS | Нужна для корректного сравнения и сортировки русских строк |
| Экземпляр | По умолчанию (MSSQLSERVER) | Проще адресация: достаточно имени сервера без \ИМЯ |
Если SQL уже стоит с другой сортировкой — новую базу можно создать заранее вручную с нужной сортировкой и потом указать её имя в 1С.
Логин SQL для 1С
В SQL Server Management Studio создайте логин: Безопасность → Имена входа → Создать имя входа, тип «Проверка подлинности SQL Server». Права:
- ✅ серверная роль
dbcreator— если 1С будет сама создавать базы; - ✅
sysadmin— если планируете загрузку.dtи реструктуризацию без ручной выдачи прав (так делают чаще всего, но это широкие права); - ✅ роль
db_ownerв конкретной базе — минимальный вариант, когда базу создаёт администратор SQL заранее.
Не используйте логин sa для рабочих баз. Его пароль окажется в свойствах каждой базы и у каждого, кто имеет доступ к консоли кластера.
Если поле пользователя SQL при создании базы оставить пустым, 1С подключится по проверке подлинности Windows от имени учётной записи службы сервера 1С. Тогда права в SQL выдают этой учётной записи (по умолчанию служба работает под USR1CV8).
Драйвер на машине сервера 1С
Если SQL и сервер 1С на разных машинах, на сервере 1С должен стоять клиентский драйвер SQL Server: «SQL Server Native Client» или «Microsoft ODBC Driver for SQL Server». Какие версии драйвера поддерживает ваша сборка платформы, смотрите в системных требованиях к ней. На одной машине с SQL драйвер обычно уже установлен вместе с СУБД.
Сеть и брандмауэр
- 🔌 На SQL-сервере в «Диспетчере конфигурации SQL Server» включите протокол TCP/IP и перезапустите службу SQL.
- 🧱 Откройте входящий порт
1433/TCPдля машины сервера 1С. - 🧭 Для именованного экземпляра нужна служба SQL Server Browser и порт
1434/UDPлибо фиксированный порт экземпляра. - 🖥️ На сервере 1С откройте
1540,1541и диапазон рабочих процессов для клиентов.
Перезапуск службы SQL обрывает все соединения с базами. Если на сервере уже работают пользователи, делайте это вне рабочего времени.
Нужен ли DSN и ODBC, чтобы подключить 1С к SQL
Нет. Источник данных ODBC (DSN) в «Администрировании Windows» для работы 1С с MS SQL настраивать не нужно. Сервер 1С сам формирует строку подключения из полей «Сервер баз данных», «Имя базы данных», «Пользователь» и «Пароль». Созданный вручную DSN платформа просто не использует.
DSN пригодится в другой задаче — когда к SQL нужно подключиться не из платформы, а снаружи или через механизм внешних источников:
| Задача | Нужен ли DSN | Что настраивать |
|---|---|---|
| Работа информационной базы 1С на SQL | Нет | Свойства базы в кластере |
| Чтение сторонней SQL-базы из 1С (объект «Внешние источники данных» в конфигураторе) | Не обязательно | Строку подключения ODBC или DSN |
| Отчёты из Excel или Power BI по таблицам 1С | Да или строка подключения | ODBC-драйвер на ПК аналитика |
Если DSN всё же нужен для внешнего источника, его создают в «Источниках данных ODBC» той разрядности, что и процесс, который будет его читать. Для 64-разрядного сервера 1С — 64-разрядный менеджер ODBC, иначе драйвер не найдётся.
Прямое чтение таблиц 1С из Excel или BI обходит права пользователей 1С и не гарантирует целостность. Таблицы называются вроде _Document123, их состав меняется при обновлении конфигурации.
Создание информационной базы 1С на SQL Server
Способ 1. Через окно запуска 1С
- Запустите 1С, нажмите
Добавить. - Выберите «Создание новой информационной базы» — пустую или из шаблона.
- Тип расположения — «На сервере 1С:Предприятия».
- Заполните поля:
- «Кластер серверов
1С:Предприятия» — имя машины сервера 1С (если агент на нестандартном порту —
сервер:порт); - «Имя информационной базы в кластере» — латиницей без пробелов, например
buh_ooo_romashka; - «Тип СУБД» —
MS SQL Server; - «Сервер баз данных» — имя SQL-сервера или
сервер\экземпляр; - «Имя базы данных» — имя базы в SQL, удобно сделать таким же, как в кластере;
- «Пользователь сервера БД» и «Пароль» — логин, созданный ранее;
- «Смещение дат» —
2000; - флажок «Создать базу данных в случае ее отсутствия».
- «Кластер серверов
1С:Предприятия» — имя машины сервера 1С (если агент на нестандартном порту —
- При необходимости включите «Разрешить выдачу лицензий сервером 1С:Предприятия».
- Нажмите
Далее, проверьте параметры запуска иГотово.
Смещение дат для MS SQL ставьте 2000. Значение задаётся только при создании базы, позже его не поменять.
Флажок «Установить блокировку регламентных заданий» включайте, если база — копия рабочей. Иначе копия начнёт загружать банковские выписки, отправлять почту и обмениваться данными наравне с оригиналом.
Способ 2. Через консоль кластера
В оснастке «Администрирование серверов 1С:Предприятия» раскройте Центральные серверы 1С:Предприятия → имя сервера → Кластеры → Локальный кластер → Информационные базы. В контекстном меню — Создать → Информационная база. Поля те же, что в способе 1. Потом базу добавляют в список у пользователей через «Добавление в список существующей информационной базы».
Если консоль не открывается после установки, зарегистрируйте её библиотеку командой от имени администратора:
regsvr32 "C:\Program Files\1cv8\8.3.25.1445\bin\radmin.dll"
Номер версии в пути подставьте свой.
Способ 3. Перенос файловой базы на SQL
- Откройте файловую базу
в конфигураторе и сделайте
Администрирование → Выгрузить информационную базув файл.dt. - Создайте пустую серверную базу способом 1 или 2 — без шаблона.
- Откройте новую базу в конфигураторе:
Администрирование → Загрузить информационную базу, выберите.dt. - Дождитесь окончания загрузки и откройте базу в режиме «1С:Предприятие».
Загрузка .dt требует монопольного доступа к базе и полностью заменяет её содержимое. Для пустой новой базы это не проблема. Список пользователей и их пароли переносятся вместе с данными.
Ошибки подключения 1С к SQL Server и что с ними делать
Тексты ошибок 1С обычно показывает целиком, с префиксом драйвера. По ним почти всегда понятно, на каком звене цепочки сбой.
Порядок проверки, если непонятно, где сбой:
- С машины сервера 1С подключитесь к SQL через Management Studio тем же логином. Не подключается — дело в SQL, сети или пароле.
- Подключается — проверьте свойства базы в консоли кластера: опечатка в имени экземпляра встречается чаще, чем кажется.
- Всё верно, а ошибка остаётся — смотрите журнал регистрации базы и технологический журнал сервера 1С.
Сменили пароль логина SQL — обновите его в свойствах каждой базы в консоли кластера. Иначе после перезапуска рабочих процессов базы перестанут открываться с ошибкой входа.
Настройка SQL Server для быстрой работы 1С
Подключение работает, но база тормозит — обычно причина в настройках СУБД по умолчанию. Их меняют один раз.
Память
По умолчанию SQL Server забирает всю доступную память. Если на той же машине работает сервер 1С, рабочие процессы начинают конкурировать с СУБД. Ограничьте «Максимальный объём памяти сервера» в свойствах SQL-сервера.
Пример: на сервере 64 ГБ, на нём же 1С. Оставьте около 4 ГБ системе и 16–20 ГБ рабочим процессам 1С, SQL отдайте примерно 40 ГБ. Точнее подбирают по фактическому потреблению rphost в пиковые часы.
Параллелизм и tempdb
- ⚙️ «Максимальная степень параллелизма» (MAXDOP) — для 1С обычно ставят
1. Запросы 1С короткие и многочисленные, распараллеливание чаще мешает, чем помогает. - 💾
tempdb— на быстрый SSD, отдельно от файлов баз. Несколько файлов одинакового размера (по числу ядер, но не больше восьми) снижают конкуренцию за служебные страницы.
Модель восстановления и обслуживание
| Модель восстановления | Когда подходит | Что учесть |
|---|---|---|
| Простая (Simple) | Копии баз, тестовые базы, рабочие базы с ежедневным бэкапом | Восстановление только на момент полной копии |
| Полная (Full) | Базы, где нельзя терять день работы | Обязательно регулярно копировать журнал транзакций, иначе он растёт до заполнения диска |
В планах обслуживания SQL настройте ежедневное обновление статистики и регулярное перестроение или реорганизацию индексов. Без свежей статистики оптимизатор выбирает плохие планы, и отчёты, которые раньше строились за секунды, идут минутами.
Не включайте автоматическое сжатие базы (Auto Shrink). Оно фрагментирует индексы и само по себе нагружает диск.
Сеть между сервером 1С и SQL
Когда сервер 1С и SQL на одной машине, соединение идёт через общую память и задержек нет. На разных машинах каждое обращение рабочего процесса — сетевой запрос, а их тысячи на одно проведение документа. Ставьте серверы в одну подсеть без лишних маршрутизаторов и с гигабитным или более быстрым каналом.
Частые вопросы
Подойдёт ли бесплатный SQL Server Express для 1С?
Можно ли подключить 1С к SQL без сервера 1С:Предприятия?
Нужна ли отдельная лицензия на SQL Server?
Как перенести базу на другой SQL-сервер?
Вместо MS SQL можно использовать PostgreSQL?
PostgreSQL.