MS SQL под сервер 1С:Предприятия 8.3 — от выбора редакции до регламента

· 11 мин

Содержание

Чтобы установить SQL Server для сервера 1С, запустите установщик MS SQL, выберите компонент «Службы ядра СУБД», на вкладке сортировки поставьте Cyrillic_General_CI_AS, включите смешанную проверку подлинности и после установки ограничьте память и параллелизм. Базу 1С потом создают не в SQL, а в консоли кластера 1С — она сама создаст базу данных на сервере СУБД.

Частое заблуждение — «поставлю SQL по кнопке Далее, а настрою потом». Сортировку экземпляра после установки поменять почти невозможно: это переустановка или пересборка системных баз. А неограниченная память SQL Server съедает всю оперативку сервера, и рабочие процессы 1С начинают тормозить. Оба решения принимаются на этапе установки, поэтому разберём её по экранам.

Какую версию и редакцию MS SQL взять под 1С

Для платформы 8.3.2x берите SQL Server 2016, 2017, 2019 или 2022. Совсем старые версии (2008 R2, 2012) актуальные релизы платформы поддерживают плохо или не поддерживают вовсе — сверяйтесь со списком системных требований к своей версии платформы.

Редакция важнее версии. От неё зависят лимиты по размеру базы, памяти и ядрам.

РедакцияГлавные ограниченияКому подходит
Expressбаза до 10 ГБ, под кэш данных около 1,4 ГБ ОЗУ, не больше 4 ядер, нет SQL Server Agent и сжатия копий3–7 пользователей, небольшая база, тестовый стенд
Standardдо 24 ядер, до 128 ГБ под буферный пулосновной выбор для рабочих баз на 10–150 пользователей
Enterpriseограничений по ядрам и памяти практически неткрупные внедрения, кластеры, сотни пользователей
Developerфункции Enterprise, но лицензия только для разработки и тестовкопии баз для программистов, не для работы бухгалтерии

⚠️ Лимит 10 ГБ в Express считается на каждую базу отдельно, без файла журнала. Типовая БП 3.0 небольшой фирмы набирает 3–5 ГБ за пару лет, ERP — за месяцы. Если база растёт быстро, Express станет тупиком.

Лицензия SQL Server покупается отдельно от лицензий 1С. Кроме неё для клиент-серверного режима нужна лицензия на сервер 1С:Предприятия — без неё кластер базу не запустит.

Если покупка лицензий MS SQL для вас затруднена, у 1С есть поддерживаемая альтернатива — PostgreSQL в сборке для 1С. Порядок установки там другой, и эта инструкция к нему не относится.

Сервер под SQL: железо, диски и Windows

SQL Server для 1С ставят на Windows Server 2016 и новее, 64-разрядную. На одной машине с сервером 1С он работать может — так делают в большинстве небольших компаний. Отдельная машина под СУБД оправдана примерно от 50–70 активных пользователей или при тяжёлых обменах.

Ориентиры по ресурсам:

  • 🧠 Память. Хорошо, когда весь активный объём баз помещается в кэш SQL. Для базы 20 ГБ и 20 пользователей разумно 32 ГБ на сервере, где стоят и 1С, и SQL.
  • ⚙️ Процессор. Для 1С важнее частота ядра, чем их число: многие запросы выполняются в один поток.
  • 💾 Диски. Только SSD или NVMe. Медленный диск под журналом транзакций тормозит каждое проведение документа.

Раскладку файлов продумайте до установки:

ЧтоКудаПочему
Файлы данных (.mdf)диск D:основной объём, случайное чтение
Журналы транзакций (.ldf)диск E:последовательная запись, не мешает чтению
tempdbотдельный быстрый диск или NVMe1С активно пишет временные таблицы
Резервные копииотдельный диск или сетевое хранилищекопия на том же диске не спасёт при его отказе

Если дисков два, разделите хотя бы данные и журналы. Системный диск C: под базы не используйте.

Установка SQL Server для 1С по шагам

Запустите setup.exe с дистрибутива. Откроется «Центр установки SQL Server». Слева выберите «Установка», справа — «Новая установка изолированного экземпляра SQL Server или добавление компонентов к существующей установке».

Шаг 1. Ключ, лицензия и проверка правил

Введите ключ продукта или выберите бесплатную редакцию. Примите лицензионное соглашение. Мастер проверит правила установки: предупреждение о брандмауэре — норма, ошибки нужно устранить.

Шаг 2. Выбор компонентов

Отметьте «Службы ядра СУБД». Для 1С этого достаточно. Полнотекстовый поиск SQL, службы Analysis Services, Reporting Services и машинное обучение платформе не нужны: полнотекстовый поиск 1С ведёт собственными средствами.

Здесь же можно перенести каталог экземпляра с диска C: — это нужно, если системный диск маленький.

Шаг 3. Экземпляр

Выберите «Экземпляр по умолчанию» (имя MSSQLSERVER). Тогда в 1С сервер СУБД указывается просто именем компьютера. Именованный экземпляр, например SQLEXPRESS у Express, указывают как ИМЯ-СЕРВЕРА\SQLEXPRESS.

Шаг 4. Учётные записи служб и сортировка

На вкладке «Учётные записи служб» оставьте виртуальные учётные записи по умолчанию. Тип запуска SQL Server Agent — «Авто» (в Express агента нет). Поставьте галочку «Предоставить право на выполнение задач обслуживания тома» — файлы баз будут расти мгновенно, без заполнения нулями.

Затем откройте вкладку «Параметры сортировки» и нажмите «Настроить». Нужна сортировка Cyrillic_General_CI_AS. На русской Windows она обычно стоит по умолчанию, но проверьте глазами: на английской Windows мастер подставит SQL_Latin1_General_CP1_CI_AS, и русские строки в 1С будут сортироваться и сравниваться неправильно.

Шаг 5. Проверка подлинности и каталоги

На вкладке «Конфигурация сервера» выберите «Смешанный режим» и задайте сложный пароль для sa. Кнопкой «Добавить текущего пользователя» сделайте себя администратором SQL.

На вкладке «Каталоги данных» разведите файлы по дискам из таблицы выше. На вкладке «TempDB» задайте число файлов данных по количеству ядер, но не больше 8, и одинаковый начальный размер — например, по 1024 МБ.

В SQL Server 2019 и 2022 в мастере есть вкладки «MAXDOP» и «Память». Поставьте MAXDOP = 1 и ограничьте максимум памяти — расчёт ниже. В более ранних версиях это делается после установки.

Шаг 6. Установка и SSMS

Нажмите «Установить» и дождитесь окончания. Среда SQL Server Management Studio начиная с версии 2016 в дистрибутив не входит — скачайте и поставьте её отдельно.

Проверьте сортировку запросом в SSMS:

SELECT SERVERPROPERTY('Collation') AS Сортировка;

Должно вернуться Cyrillic_General_CI_AS.

Логин для 1С и права доступа в SQL Server

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

Создайте отдельный логин и дайте ему право создавать базы:

CREATE LOGIN [usr1c] WITH PASSWORD = N'Сложный_Пароль_123', CHECK_POLICY = ON;
ALTER SERVER ROLE dbcreator ADD MEMBER [usr1c];

Роли dbcreator хватает, чтобы 1С создала базу. Создатель становится её владельцем и получает полные права внутри неё. Многие администраторы выдают такому логину роль sysadmin «чтобы не мешало» — это работает, но открывает доступ ко всем базам экземпляра, включая чужие.

Можно обойтись без SQL-логина: оставьте в настройках базы 1С пустые поля пользователя и пароля СУБД. Тогда сервер 1С подключится под учётной записью своей службы, и логин в SQL нужно создать для этой учётной записи Windows.

Подключение базы 1С к SQL Server

Откройте консоль администрирования серверов 1С, разверните кластер, на ветке «Информационные базы» вызовите контекстное меню и выберите «Создать» → «Информационная база». Заполните поля:

  1. «Имя» — имя базы в кластере, без пробелов, например buh.
  2. «Защищённое соединение» — по умолчанию выключено.
  3. «Сервер баз данных» — имя сервера SQL (или СЕРВЕР\ЭКЗЕМПЛЯР).
  4. «Тип СУБД» — MSSQLServer.
  5. «База данных» — имя базы в SQL, удобно совпадает с именем в кластере.
  6. «Пользователь сервера БД» и «Пароль» — логин usr1c и его пароль.
  7. «Смещение дат» — 2000. SQL Server не хранит даты раньше 1753 года, смещение решает это для дат вроде 01.01.0001.
  8. Галочка «Создать базу данных в случае ее отсутствия» — включить.

После этого загрузите в пустую базу файл .dt через Конфигуратор или создайте базу из шаблона в стартере 1С.

Параметры SQL Server, от которых зависит скорость 1С

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

Ограничение памяти

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

Пример расчёта для сервера 32 ГБ, где стоят 1С и SQL:

  • 4 ГБ — операционной системе;
  • 8 ГБ — процессам сервера 1С;
  • 32 − 4 − 8 = 20 ГБ = 20 480 МБ — SQL Server.

На выделенном сервере СУБД оставьте Windows 4–6 ГБ, остальное отдайте SQL.

Параллелизм (MAXDOP)

Для баз 1С ставят max degree of parallelism = 1. Запросы 1С короткие и многочисленные, распараллеливание одного запроса на все ядра чаще мешает соседним сеансам и вызывает ожидания, чем ускоряет.

EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
EXEC sp_configure 'max server memory (MB)', 20480;
EXEC sp_configure 'max degree of parallelism', 1;
RECONFIGURE;

Шаблонная база model

Каждая новая база, созданная из 1С, копирует настройки системной базы model. Настройте её заранее, до создания баз:

  • модель восстановления — «Простая» или «Полная» (об этом в разделе про обслуживание);
  • автоприращение файла данных — в мегабайтах, например 512 МБ, а не в процентах;
  • автоприращение журнала — 256–512 МБ.

Процентный рост на большой базе даёт приращения по 5–10 ГБ, во время которых пользователи ждут.

tempdb

Если на шаге установки вы не задали несколько файлов tempdb, добавьте их в свойствах tempdb в SSMS. Все файлы должны быть одинакового размера, иначе SQL будет писать в основном в самый большой.

Регламентное обслуживание баз 1С на SQL Server

Без регламента база на SQL через полгода работает медленнее, чем файловая. Минимальный набор задач:

ЗадачаКак частоЗачем
Полная резервная копияежедневно, ночьювосстановление после сбоя
Копия журнала транзакцийкаждые 15–60 минут (только при полной модели)потеря данных не больше интервала
Обновление статистикиежедневноправильные планы запросов
Очистка процедурного кэшасразу после статистикиSQL перестроит планы с новой статистикой
Реорганизация или перестроение индексовраз в неделюменьше фрагментации
Проверка целостности DBCC CHECKDBраз в неделюраннее обнаружение повреждений

Полная модель восстановления без копий журнала — главная причина раздутых .ldf на десятки гигабайт. Выбрали «Полную» — настраивайте копирование журнала. Не готовы — ставьте «Простую» и делайте полную копию каждую ночь.

В Standard и Enterprise регламент собирают в SSMS: «Управление» → «Планы обслуживания» → «Мастер планов обслуживания». Задания выполняет SQL Server Agent.

В Express агента нет. Задания запускают Планировщиком Windows через sqlcmd, например файлом backup_buh.bat:

sqlcmd -S .\SQLEXPRESS -E -Q "BACKUP DATABASE [buh] TO DISK = N'E:\Backup\buh.bak' WITH INIT, CHECKSUM"
sqlcmd -S .\SQLEXPRESS -E -d buh -Q "EXEC sp_updatestats"
sqlcmd -S .\SQLEXPRESS -E -Q "DBCC FREEPROCCACHE"

Ключ -E — вход под учётной записью Windows, от имени которой запущено задание. В Standard добавьте в команду копирования COMPRESSION: копия станет в 3–5 раз меньше.

⚠️ Перестроение индексов и DBCC CHECKDB сильно нагружают диски. Ставьте их на ночь или выходные, когда в базе нет пользователей и не работают тяжёлые регламентные задания 1С.

Что отслеживать

  • 📈 Свободное место на дисках с данными, журналами и копиями.
  • 📄 Размер .ldf относительно .mdf: журнал больше файла данных — повод проверить копирование журнала.
  • 🕒 Журнал заданий агента или Планировщика: копия, которая молча не делается неделю, хуже, чем её отсутствие.
  • 🔍 «Монитор активности» в SSMS при жалобах на медленную работу — там видно блокировки и самые тяжёлые запросы.

Раз в квартал восстанавливайте копию в тестовую базу. Только так можно убедиться, что из неё действительно поднимается рабочая 1С.

Ошибки при подключении 1С к SQL Server

Ошибки СУБД 1С показывает текстом самого SQL Server, обычно на английском. Ниже самые частые и что с ними делать.

Диагностика: выберите симптом

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

Частые вопросы

Можно ли перевести файловую базу 1С на SQL Server?
Да. Выгрузите файловую базу в .dt через Конфигуратор («Администрирование» → «Выгрузить информационную базу»), создайте пустую базу в кластере на SQL и загрузите туда этот файл.
Можно ли поменять сортировку уже установленного экземпляра?
Штатно — только переустановкой экземпляра или пересборкой системных баз с потерей настроек сервера. Надёжный путь — выгрузить базы 1С в .dt, поставить SQL заново с Cyrillic_General_CI_AS и загрузить базы.
Нужно ли сжимать базу командой SHRINK после чистки?
Регулярно — нет. Сжатие фрагментирует индексы, а файл всё равно вырастет снова. Разовое сжатие журнала оправдано после того, как вы наладили его копирование или перешли на простую модель.
Сколько пользователей потянет Express?
Ориентир — до 5–7 одновременных пользователей на небольшой базе. Ограничение по памяти (около 1,4 ГБ кэша) упирается раньше, чем лимит 10 ГБ на размер.
Можно ли поставить SQL Server на один сервер с терминальными пользователями?
Технически можно, на практике нежелательно: пользователи терминала и SQL борются за память и процессор. Если иначе нельзя — обязательно ограничьте память SQL Server.