MS SQL Server под 1С:Предприятие 8.3: от дистрибутива до первой базы
Содержание
Чтобы 1С 8.3 работала на MS SQL Server, при установке СУБД нужны три вещи: сортировка Cyrillic_General_CI_AS, смешанный режим проверки подлинности и включённый протокол TCP/IP. Дальше вы создаёте логин SQL с правом создавать базы, ограничиваете память сервера и регистрируете информационную базу в кластере 1С. Всё остальное — тонкая настройка под нагрузку.
Важный момент: к MS SQL обращаются не пользователи, а сервер 1С:Предприятия. Значит, сначала нужен установленный кластер 1С и серверная лицензия, а клиенты подключаются к базе как обычно, по имени сервера 1С. Инструкция ниже — для Windows Server 2016 и новее и платформы 8.3.
Подготовка сервера и выбор редакции SQL Server
Начните с ответа на вопрос, где будет жить СУБД. Для небольшой фирмы (до 15–20 пользователей) сервер 1С и SQL Server часто ставят на одну машину. Для 50+ пользователей СУБД лучше вынести на отдельный сервер с быстрыми дисками.
Что проверить до установки:
- 🖥️ ОС — Windows Server 2016, 2019 или 2022, все обновления установлены, имя компьютера уже окончательное (переименовывать сервер после установки SQL неудобно).
- 💾 Диски — отдельные тома под файлы данных, журналы транзакций и
tempdb. Лучше всего SSD/NVMe. Системный диск под базы не используйте. - ⚡ Схема электропитания Windows — «Высокая производительность». На «Сбалансированной» процессор сбрасывает частоту, и запросы 1С заметно тормозят.
- 🔐 Учётная запись администратора Windows для установки.
- 📋 Список поддерживаемых СУБД для вашего релиза платформы. Свежий SQL Server на старой платформе может не заработать, поэтому сверяйтесь с документацией к своему релизу 1С.
Какую редакцию выбрать
| Редакция | Ограничения | Когда подходит |
|---|---|---|
| Express | база до 10 ГБ, ограничение по памяти буферного пула (около 1,4 ГБ) и ядрам | тест, демо, база на 3–5 человек |
| Standard | ограничение по объёму памяти и числу ядер, но для 1С обычно хватает | рабочий вариант для большинства фирм |
| Enterprise | без практических ограничений | крупные базы, сотни пользователей |
| Developer | полный функционал, но только для разработки и тестов | стенд программиста, не прод |
Express бесплатен, но 10 ГБ — это предел одной базы. Бухгалтерия за 3–4 года активной работы легко его превышает, после чего запись в базу прекращается.
Лицензия SQL Server покупается отдельно от 1С. Ориентировочно Standard по модели «на ядро» обходится в сотни тысяч рублей, вариант «сервер + клиентские лицензии» дешевле для небольшой команды. Точную стоимость уточняйте у поставщика.
Установка SQL Server для 1С: компоненты и сортировка
Запустите setup.exe из дистрибутива и выберите «Новая установка изолированного экземпляра SQL Server». Дальше по шагам.
Шаг 1. Компоненты
Для работы 1С достаточно одного компонента:
- ✅ Службы ядра СУБД (Database Engine Services).
Полнотекстовый поиск, службы Analysis, Reporting, Integration и машинное обучение 1С не использует. Не ставьте лишнее: каждый компонент — это ещё одна служба и ещё одна точка отказа.
На этом же экране задайте каталоги экземпляра. Корень экземпляра можно оставить на системном диске, а каталоги данных переопределите позже, в настройках ядра.
Шаг 2. Экземпляр
Выберите экземпляр по умолчанию (MSSQLSERVER), если на сервере это единственный SQL. Тогда в 1С указывается просто имя компьютера.
Именованный экземпляр (SRV-DB\SQL1C) тоже работает, но требует службы SQL Server Browser или фиксированного порта. Для новичка это лишняя сложность.
Шаг 3. Учётные записи служб
Оставьте предложенные виртуальные учётные записи NT Service\MSSQLSERVER для ядра и агента. Тип запуска агента SQL Server поставьте «Автоматически» — без него не будут работать планы обслуживания и резервного копирования.
На этой же вкладке включите флажок «Предоставить право на выполнение задач обслуживания тома службе ядра СУБД». Это мгновенная инициализация файлов: базы и их приросты создаются за секунды, а не минуты.
Шаг 4. Сортировка — самый важный экран
Перейдите на вкладку «Параметры сортировки» и установите Cyrillic_General_CI_AS.
Сортировку экземпляра после установки поменять очень сложно. Если ошиблись — проще переустановить SQL Server сразу, пока на нём нет баз.
На русской Windows сортировка обычно подставляется правильно. На английской системе по умолчанию будет SQL_Latin1_General_CP1_CI_AS — с ней кириллица в 1С будет сортироваться и искаться неправильно.
Шаг 5. Проверка подлинности и каталоги
На странице настройки ядра СУБД:
- Выберите смешанный режим (проверка подлинности SQL Server и Windows).
- Задайте сложный пароль для
saи сохраните его в менеджере паролей. - Добавьте текущего пользователя и группу администраторов в администраторы SQL Server.
- На вкладке «Каталоги данных» укажите отдельные пути для файлов данных, журналов и резервных копий.
- На вкладке TempDB задайте число файлов
tempdbпо числу ядер, но не больше 8, и вынесите их на быстрый диск.
После установки отдельно скачайте и поставьте SQL Server Management Studio (SSMS): начиная с версии 2016 она не входит в дистрибутив.
Служба SQL Server и параметры запуска
Откройте «Диспетчер конфигурации SQL Server» (SQL Server Configuration Manager) → «Службы SQL Server».
Проверьте:
- 🟢 SQL Server (MSSQLSERVER) — работает, тип запуска «Автоматически».
- 🟢 Агент SQL Server — работает, «Автоматически».
- ⚪ SQL Server Browser — нужен только для именованного экземпляра без фиксированного порта.
Для 1С параметры запуска (флаги трассировки и т. п.) на старте менять не нужно. Если планируете большие объёмы памяти, дайте учётной записи службы право «Блокировка страниц в памяти» через локальную политику безопасности (secpol.msc → Локальные политики → Назначение прав пользователя). Тогда Windows не будет выталкивать кэш SQL в файл подкачки.
Любые изменения в настройках службы требуют её перезапуска. Перезапуск SQL Server обрывает все сеансы 1С на этой СУБД — делайте это вне рабочего времени и предупредив пользователей.
Сетевой протокол TCP/IP и порт 1433
Сразу после установки SQL Server часто принимает подключения только локально. Если сервер 1С стоит на другой машине, без этого раздела он СУБД не увидит.
- В диспетчере конфигурации откройте «Сетевая конфигурация SQL Server» → «Протоколы для MSSQLSERVER».
- Включите TCP/IP. Протокол Named Pipes можно оставить выключенным.
- Откройте свойства TCP/IP → вкладка «IP-адреса» → блок IPAll. Для экземпляра по умолчанию должно быть: «TCP-порт» —
1433, «Динамические TCP-порты» — пусто. - Перезапустите службу SQL Server.
Если SQL и 1С стоят на одном сервере, будет работать протокол общей памяти (Shared Memory) — он включён по умолчанию и самый быстрый. TCP/IP всё равно включите: через него ходят SSMS с рабочих мест администраторов и резервное копирование по сети.
Брандмауэр
Откройте входящий порт 1433. Достаточно разрешить его только с адреса сервера 1С и с машин администраторов. В PowerShell от имени администратора:
New-NetFirewallRule -DisplayName "SQL Server 1433" -Direction Inbound -Protocol TCP -LocalPort 1433 -Action Allow
Ограничить источники можно в свойствах созданного правила, на вкладке «Область». Пользователям 1С доступ к порту 1433 не нужен вообще — они общаются только с сервером 1С (порт 1540 и далее).
Логин для 1С и права доступа
Работать из 1С под sa можно, но это плохая практика. Создайте отдельный логин SQL, который будет указан в настройках информационной базы.
Минимальный набор прав:
| Задача | Что выдать логину |
|---|---|
| Создавать новые базы из 1С | серверную роль dbcreator |
| Работать с уже созданной базой | роль db_owner в этой базе (создатель базы её владелец автоматически) |
| Загружать .dt, реструктуризация | хватает прав владельца базы |
Скрипт для SSMS (замените пароль на свой):
CREATE LOGIN [usr1c] WITH PASSWORD = N'Сложный_Пароль_123!',
CHECK_POLICY = ON, CHECK_EXPIRATION = OFF;
ALTER SERVER ROLE [dbcreator] ADD MEMBER [usr1c];
CHECK_EXPIRATION = OFF выключает срок действия пароля. Иначе через несколько недель все базы перестанут открываться с ошибкой входа, и причину будут долго искать.
Если база уже существует (например, восстановлена из бэкапа), откройте в SSMS Безопасность → Имена входа → usr1c → Сопоставление пользователей, отметьте нужную базу и роль db_owner.
Права sysadmin для логина 1С выдают, когда лень разбираться. Работать будет, но такой логин может удалить любую базу на сервере, включая чужие.
Регистрация базы в кластере 1С
После настройки SQL создайте информационную базу. В окне запуска 1С нажмите «Добавить» → «Создание новой информационной базы» → выберите вариант «На сервере 1С:Предприятия» и заполните:
- Кластер серверов 1С:Предприятия — имя сервера 1С.
- Имя информационной базы в кластере — например,
buh. - Тип СУБД — MS SQL Server.
- Сервер баз данных — имя сервера SQL (для именованного экземпляра
SRV-DB\SQL1C). - Имя базы данных — имя базы на SQL, удобно совпадающее с именем в кластере.
- Пользователь базы данных и пароль — логин
usr1c. - Смещение дат — 2000.
- Флажок «Создать базу данных в случае ее отсутствия» — включить.
Ту же операцию можно выполнить в консоли администрирования серверов 1С: узел «Информационные базы» → «Создать».
Оптимизация MS SQL под нагрузку 1С
Настройки по умолчанию рассчитаны на универсальную нагрузку. Для 1С есть несколько обязательных правок.
Ограничение памяти
SQL Server по умолчанию забирает всю память, какую видит. На общем сервере с 1С это приводит к нехватке памяти у рабочих процессов rphost.
Ориентиры для параметра «Максимальный объём памяти сервера»:
| ОЗУ сервера | SQL отдельно | SQL + сервер 1С на одной машине |
|---|---|---|
| 16 ГБ | 12 ГБ | 8 ГБ |
| 32 ГБ | 28 ГБ | 18 ГБ |
| 64 ГБ | 58 ГБ | 40 ГБ |
На отдельном сервере ОС оставляют 4–6 ГБ. На общем — ещё и столько, сколько реально съедают процессы 1С в пиковые часы (смотрите в диспетчере задач).
Параллелизм
Для 1С рекомендуется MAXDOP = 1. Запросы 1С короткие и многочисленные, распараллеливание создаёт лишние ожидания и блокировки.
Скрипт для 32 ГБ на общем сервере:
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
EXEC sp_configure 'max server memory (MB)', 18432;
EXEC sp_configure 'max degree of parallelism', 1;
RECONFIGURE;
Оба параметра применяются сразу, без перезапуска службы.
Модель восстановления и обслуживание
- 🗂️ Модель восстановления — «Полная», если нужны восстановление на момент времени и бэкапы журнала. «Простая» — если хватает ежедневной полной копии. При «Полной» без резервного копирования журнала файл
.ldfрастёт до заполнения диска. - 🔄 План обслуживания — ежедневное обновление статистики, еженедельная перестройка индексов, ежедневный полный бэкап. Создаётся в SSMS через «Управление» → «Планы обслуживания».
- 📏 Прирост файлов — задайте в мегабайтах (например, 512 МБ для данных и 256 МБ для журнала), а не в процентах.
Диагностика: 1С не подключается к SQL Server
Когда что-то не работает , текст ошибки почти всегда указывает на конкретный слой. Ниже — частые сообщения и их причины.
Test-NetConnection SRV-DB -Port 1433.Частые ошибки при установке
- ❌ Ставить SQL на тот же диск, что и Windows. Рост журнала заполняет системный диск, и сервер падает целиком.
- ❌ Оставить именованный экземпляр с динамическим портом и закрытый брандмауэр — подключение работает «через раз», после каждой перезагрузки порт меняется.
- ❌ Не ограничить память на общем сервере с 1С — рабочие процессы 1С падают с нехваткой памяти в пиковые часы.
- ❌ Поставить Express под рабочую базу и забыть про лимит 10 ГБ.
Частые вопросы
Можно ли перевести существующую файловую базу на MS SQL?
Нужна ли отдельная лицензия 1С для работы с MS SQL?
Можно ли держать базы 1С и другие базы на одном экземпляре SQL?
Какое смещение дат указывать и почему 2000?
Как проверить, что SQL Server принял настройки памяти и параллелизма?
SELECT name, value_in_use FROM sys.configurations WHERE name IN ('max server memory (MB)', 'max degree of parallelism');. В столбце value_in_use будут действующие значения.