Сервер 1С и Microsoft SQL Server: от установки СУБД до первой базы

· 11 мин

Содержание

Подключить 1С к SQL Server — значит зарегистрировать информационную базу в кластере сервера 1С:Предприятия и указать в её параметрах тип СУБД MS SQL Server, имя сервера SQL, имя базы и логин SQL. Пользователи к SQL Server напрямую не ходят: с СУБД работает только сервер 1С (его рабочие процессы rphost), а клиенты подключаются к серверу 1С.

Отсюда простое правило выбора. Файловый вариант подходит для 3–5 пользователей и небольшой базы. Когда людей больше 10, база растёт за 5–10 ГБ или нужна надёжная резервная копия без остановки работы — переходят на клиент-серверный вариант с Microsoft SQL Server. Ниже порядок для платформы 8.3 и Windows Server 2016 и новее.

Что подготовить до подключения 1С к SQL Server

Схема из трёх звеньев: клиент 1С → сервер 1С:Предприятия → SQL Server. Сервер 1С и SQL Server можно ставить на одну машину или на разные. Для 20–30 пользователей одной машины обычно хватает, если в ней достаточно памяти и быстрые SSD.

Что нужно заранее:

  • 🖥️ Сервер 1С:Предприятия 8.3 нужной разрядности (64-бит), установленный как служба.
  • 🔑 Лицензия на сервер 1С — клиентских лицензий для работы в клиент-серверном режиме недостаточно.
  • 🗄️ Microsoft SQL Server и лицензия на него. Express бесплатна, но с ограничениями (см. таблицу).
  • 👤 Логин SQL Server, под которым сервер 1С будет работать с базой.
  • 🔌 Открытые порты: 1540–1541 и диапазон рабочих процессов для 1С, 1433 для SQL Server.

Версию SQL Server сверяйте со списком поддерживаемых СУБД для своего релиза платформы: свежий SQL Server на старой платформе может не заработать. Рабочая связка на сегодня — платформа 8.3.2x и SQL Server 2019 или 2022.

Редакция SQL ServerДля чего подходитОграничения
ExpressТест, небольшая база до 10 ГБРазмер одной базы до 10 ГБ, ограничение по памяти и ядрам, нет SQL Server Agent
StandardРабочий сервер для большинства компанийЛицензируется по ядрам или по схеме «сервер + CAL»
EnterpriseКрупные базы, сотни пользователейДорогая, нужна редко
DeveloperРазработка и тестыБесплатна, но использовать в рабочей среде нельзя

Без SQL Server Agent (его нет в Express) не работают планы обслуживания. Резервные копии и перестроение индексов на Express придётся запускать через планировщик Windows и скрипты sqlcmd.

Установка SQL Server для 1С: параметры, которые потом не поменять

Большинство настроек можно поправить позже. Два параметра лучше выставить правильно сразу, иначе придётся переустанавливать экземпляр.

Параметры мастера установки

  1. Компоненты: Database Engine Services обязательно. Management Studio (SSMS) ставится отдельно — скачайте и установите её на этот же сервер или на рабочее место администратора.
  2. Экземпляр: экземпляр по умолчанию (MSSQLSERVER) проще в подключении. Именованный (SRV-SQL\SQL1C) тоже работает, но требует службы SQL Server Browser.
  3. Параметры сортировки (Collation): Cyrillic_General_CI_AS. Сортировку экземпляра сменить без переустановки практически нельзя — от неё зависит tempdb, а с ней и запросы 1С с временными таблицами.
  4. Режим проверки подлинности: смешанный (Mixed Mode). Сервер 1С подключается к SQL Server по логину и паролю SQL.
  5. Каталоги данных: файлы баз, журналы транзакций и tempdb разнесите по разным дискам, если они есть. Хотя бы tempdb и журналы — на SSD.
  6. На вкладке tempdb мастер сам предложит несколько файлов по числу ядер (до 8). Оставьте так.

После установки

  1. Откройте SQL Server Configuration Manager → Сетевая конфигурация SQL Server → протоколы для вашего экземпляра. Включите TCP/IP и перезапустите службу SQL Server.
  2. В брандмауэре Windows откройте входящий TCP 1433. Для именованного экземпляра — ещё UDP 1434 (SQL Server Browser) или задайте ему фиксированный порт.
  3. Проверьте вход в SSMS по имени сервера, а не по localhost, — так же, как будет подключаться 1С.

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

Логин и база данных: создать заранее или доверить серверу 1С

Есть два рабочих варианта. Выбор зависит от того, кто у вас отвечает за SQL Server.

ВариантКакКогда выбирать
База создаётся из 1СЛогин с ролью dbcreator (или sysadmin), флажок «Создать базу данных в случае её отсутствия»Один администратор отвечает и за 1С, и за SQL
База создаётся в SSMS заранееПустая база, логин — владелец базы (db_owner)SQL обслуживает отдельный администратор, права выдаются строго

Создать логин можно в SSMS (Безопасность → Имена входа → Создать имя входа) или запросом:

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

Если базу создаёте сами, задайте ей ту же сортировку и простую модель восстановления на старте:

CREATE DATABASE buh_main COLLATE Cyrillic_General_CI_AS;
ALTER DATABASE buh_main SET RECOVERY SIMPLE;
ALTER AUTHORIZATION ON DATABASE::buh_main TO usr1c;

Не работайте под sa. Отдельный логин на каждую базу или группу баз упрощает аудит и не отдаёт всю СУБД при утечке пароля.

Подключение 1С к SQL Server: регистрация базы в кластере

Базу регистрируют одним из двух способов. Поля одинаковые, отличается только место ввода.

Способ 1. Из окна запуска 1С. Нажмите Добавить… → Создание новой информационной базы → выберите конфигурацию или «без конфигурации» → вариант расположения «На сервере 1С:Предприятия».

Способ 2. Из консоли кластера. В оснастке «Администрирование серверов 1С Предприятия» раскройте кластер → Информационные базы → Создать → Информационная база. Затем базу добавляют в список у пользователей.

Заполните поля:

ПолеЧто вписатьПример
Кластер серверов 1С:ПредприятияИмя сервера 1С (порт 1541 по умолчанию указывать не нужно)SRV-1C
Имя информационной базы в кластереКороткое латинское имя, его увидят пользователи при подключенииbuh_main
Защищённое соединениеВыключено, если нет требований безопасности—
Тип СУБДMS SQL Server—
Сервер баз данныхИмя сервера SQL, для именованного экземпляра — с именем экземпляраSRV-SQL или SRV-SQL\SQL1C
Имя базы данныхИмя базы в SQL Serverbuh_main
Пользователь сервера БД и парольЛогин SQL из предыдущего разделаusr1c
Смещение дат2000—
Создать базу данных в случае её отсутствияФлажок, если базу не создавали в SSMS—
Установить блокировку регламентных заданийВключите для копии базы, чтобы она не выгружала обмены и не ходила в банк вместо рабочей—

Смещение дат 2000 — стандарт для MS SQL Server: оно позволяет хранить в 1С даты раньше 1753 года, которые не поддерживает тип datetime. Смещение задаётся при создании базы и потом не меняется — только через выгрузку и загрузку .dt в новую базу.

После «Готово» сервер 1С подключится к SQL Server, создаст таблицы и откроет пустую базу. Если указали шаблон конфигурации — она загрузится сразу.

Если SQL Server слушает нестандартный порт, укажите его через запятую: SRV-SQL,14330.

Перенос файловой базы 1С на SQL Server

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

  1. Предупредите пользователей и попросите всех выйти из базы.
  2. Откройте файловую базу в Конфигураторе. Меню Администрирование → Выгрузить информационную базу…, сохраните файл .dt.
  3. Создайте пустую серверную базу «без конфигурации» по шагам из предыдущего раздела.
  4. Откройте серверную базу в Конфигураторе. Меню Администрирование → Загрузить информационную базу…, выберите файл .dt.
  5. Дождитесь окончания загрузки. На базе в 10 ГБ это обычно от 20 минут до пары часов — зависит от дисков.
  6. Запустите базу в режиме 1С:Предприятие, проверьте пару отчётов (например, оборотно-сальдовую ведомость) и сравните итоги с файловой базой.
  7. Перенастройте в серверной базе всё, что завязано на путь к файлу: обмены, регламентные задания, внешние обработки на диске.

Загрузка .dt полностью заменяет содержимое базы-приёмника. Проверьте, что в окне Конфигуратора открыта именно новая пустая база, а не рабочая.

Старую файловую базу не удаляйте 1–2 недели. Переименуйте каталог, чтобы в неё случайно не писали, и держите как запасной вариант.

После переноса на SQL Server
Выполнено: 0 / 6

Настройка SQL Server для быстрой работы 1С

Сразу после установки SQL Server настроен «для всех». Под 1С стоит поменять несколько параметров. Все они меняются без перезапуска службы в свойствах сервера в SSMS или запросом.

ПараметрЗначение для 1СПочему
Max server memoryОставьте ОС и серверу 1С 6–8 ГБ, остальное — SQLИначе SQL Server заберёт всю память, и rphost начнут сбрасываться в файл подкачки
Max degree of parallelism (MAXDOP)1Рекомендация для 1С: параллельные планы на коротких запросах 1С чаще мешают
Автоприращение файловФиксированное, 512–1024 МБ, а не в процентахРост на 10% от 100 ГБ — это 10 ГБ за раз и подвисание базы
Модель восстановленияSimple или Full (см. ниже)Определяет, растёт ли журнал транзакций

Пример по памяти: сервер на 64 ГБ, где стоят и 1С, и SQL Server. Для SQL ставим 52 ГБ (53 248 МБ), остаются 12 ГБ на Windows и рабочие процессы 1С.

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

Ещё два приёма, которые дают заметный эффект:

  • ⚡ Мгновенная инициализация файлов. Дайте учётной записи службы SQL Server право «Выполнение задач по обслуживанию томов» в локальной политике безопасности. Файлы данных будут расти без обнуления.
  • ⚡ План электропитания Windows — «Высокая производительность». На «Сбалансированном» процессор сбрасывает частоту, и короткие запросы 1С идут медленнее.

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

Подключить 1С к SQL Server — половина дела. Без обслуживания через пару месяцев база замедлится, а журнал транзакций займёт весь диск.

Модель восстановления и резервные копии

  • Simple. Журнал очищается сам. Восстановить можно только на момент последней полной копии. Подходит, если копия раз в сутки устраивает.
  • Full. Можно восстановиться на любую минуту. Но без регулярных копий журнала (каждые 15–60 минут) файл .ldf растёт бесконечно.

Обычная схема для рабочей базы: полная копия ночью, разностная днём, копии журнала каждые 30 минут при модели Full. Копии храните не на том же диске, что и база.

BACKUP DATABASE buh_main TO DISK = 'E:\Backup\buh_main_full.bak' WITH COMPRESSION, CHECKSUM;

Сжатие (COMPRESSION) доступно в Standard и выше и сокращает файл копии в 3–5 раз на типичной базе 1С.

Регламентное обслуживание

В SSMS: Управление → Планы обслуживания. Минимальный набор задач:

  1. Еженедельно — проверка целостности (DBCC CHECKDB).
  2. Еженедельно — перестроение или реорганизация индексов.
  3. Ежедневно — обновление статистики. Устаревшая статистика — частая причина, почему отчёт вдруг стал строиться 5 минут вместо 10 секунд.
  4. Очистка процедурного кэша после обновления статистики (DBCC FREEPROCCACHE), чтобы SQL Server построил планы заново.

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

Что смотреть каждый день

  • 💾 Свободное место на дисках с данными, журналами и копиями.
  • 📈 Размер файла .ldf: если растёт при модели Full — не идут копии журнала.
  • ⏱️ Ожидания и долгие запросы — монитор активности SSMS и технологический журнал 1С.
  • 🔒 Взаимоблокировки и таймауты на управляемых блокировках — в журнале регистрации 1С.

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

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

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

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

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

Нужен ли драйвер SQL Server на компьютерах пользователей?
Нет. С SQL Server работает только сервер 1С. На рабочих местах достаточно клиента 1С той же версии, что и сервер.
Можно ли подключить одну базу SQL к двум кластерам 1С?
Нет. Одна база SQL должна быть зарегистрирована в одном кластере. Для тестов сделайте копию базы SQL под другим именем и зарегистрируйте её с блокировкой регламентных заданий.
Как сделать тестовую копию серверной базы без выгрузки .dt?
Восстановите резервную копию SQL под новым именем через SSMS, затем создайте в кластере новую информационную базу, указав это имя базы и сняв флажок создания. Это быстрее выгрузки .dt на больших базах.
Хватит ли SQL Server Express для работы?
Для 3–7 пользователей и базы меньше 10 ГБ — да. Когда база подходит к пределу, запись в неё прекращается, поэтому переход на Standard планируйте заранее.
Сервер 1С и SQL Server лучше ставить на одну машину или на разные?
До 30–50 пользователей одна мощная машина обычно работает быстрее: нет сетевых задержек между 1С и СУБД. Разносить имеет смысл, когда упираетесь в память или процессор одного сервера.