Новая информационная база на сервере 1С с MS SQL или PostgreSQL: от кластера до первого запуска
Содержание
Новую базу 1С на SQL добавляют в консоли администрирования кластера: Информационные базы → Создать → Информационная база. В карточке указывают сервер СУБД, имя базы в SQL, логин с правом создавать базы и ставят флажок «Создать базу данных
в случае ее отсутствия». Сервер 1С сам создаст пустую базу в MS SQL или PostgreSQL. Потом в неё загружают выгрузку .dt или конфигурацию .cf — и база готова к работе.
Чаще всего на этом пути спотыкаются о права: у логина нет роли dbcreator, служба 1С не видит SQL-сервер, закрыт порт. Ниже — порядок действий, при котором база создаётся с первого раза, и разбор ошибок, если что-то пошло не так.
Что проверить до добавления базы в 1С на SQL
Добавление базы — пятиминутная операция, если окружение готово. Проверьте четыре вещи.
Сервер 1С работает. На сервере открыт services.msc, служба «Агент сервера 1С:Предприятия 8.3» запущена. Для консоли администрирования нужна ещё служба ras (сервер администрирования), если вы работаете через утилиту rac или веб-консоли. Классическая консоль MMC подключается напрямую к агенту.
Консоль администрирования открывается. Оснастка «Администрирование серверов 1С Предприятия» ставится вместе с сервером. Если она пишет «Ошибка создания объекта» или пустой список, перерегистрируйте библиотеку от имени администратора:
regsvr32 "C:\Program Files\1cv8\8.3.24.1548\bin\radmin.dll"
Номер в пути подставьте свой — тот, что совпадает с версией запущенного сервера. Консоль от другой версии платформы к серверу не подключится.
СУБД доступна с сервера 1С. Если 1С и SQL стоят на разных машинах, проверьте сетевую доступность:
powershell Test-NetConnection SRV-SQL -Port 1433
Для MS SQL по умолчанию это порт 1433, для PostgreSQL — 5432. Именованный экземпляр MS SQL (SRV-SQL\MSSQL2019) слушает динамический порт, и тогда нужна служба SQL Server Browser на UDP 1434.
Есть логин СУБД с нужными правами — об этом отдельный раздел ниже.
| Что проверяем | Где | Признак проблемы |
|---|---|---|
| Служба агента 1С | services.msc на сервере 1С | Консоль не видит кластер |
| Версия консоли | radmin.dll в каталоге bin | «Несоответствие версий клиента и сервера» |
| Порт СУБД | Test-NetConnection | Таймаут при создании базы |
| Режим аутентификации MS SQL | Свойства сервера в SSMS → Security | Ошибка входа для логина sa или своего логина |
Логин для 1С в MS SQL обычно создают с проверкой подлинности SQL Server. Для этого в свойствах сервера SQL должен быть включён смешанный режим (SQL Server and Windows Authentication mode). После переключения режима службу SQL Server перезапускают — предупредите пользователей, все подключения к СУБД оборвутся.
Права в MS SQL и PostgreSQL: какой логин дать серверу 1С
Серверу 1С нужен логин, от имени которого он создаёт базу и потом работает с ней. Давать sa на каждую базу — плохая привычка: если пароль утечёт из одной карточки, под угрозой все базы на сервере.
MS SQL Server
Рабочая схема — отдельный логин под 1С:
- В SQL Server Management Studio откройте
Security → Logins → New Login. - Выберите SQL Server authentication, задайте имя (например,
usr1c) и пароль. - Снимите «Enforce password expiration» — иначе через месяц-два все базы перестанут открываться.
- На вкладке
Server Rolesотметьтеdbcreator. Этого хватает, чтобы сервер 1С создал базу и стал её владельцем. - Сохраните.
Тот же логин можно создать запросом:
CREATE LOGIN usr1c WITH PASSWORD = 'СложныйПароль_2x!', CHECK_POLICY = OFF;
ALTER SERVER ROLE dbcreator ADD MEMBER usr1c;
Если базу в SQL уже создал администратор СУБД, роль dbcreator не нужна. Достаточно сделать логин владельцем этой базы (роль db_owner).
PostgreSQL
Для 1С используют сборку PostgreSQL с доработками под платформу — от фирмы 1С или Postgres Pro. Ванильная сборка без патчей с 1С не работает .
Логин создают ролью с правом создавать базы:
CREATE ROLE usr1c WITH LOGIN PASSWORD 'СложныйПароль_2x!' CREATEDB;
Проверьте файл pg_hba.conf: в нём должна быть строка, разрешающая подключение с адреса сервера 1С. После правки конфигурацию перечитывают командой SELECT pg_reload_conf(); — перезапуск службы для этого не нужен.
Пустые поля «Пользователь сервера БД» и «Пароль» в карточке базы означают вход в MS SQL под учётной записью службы 1С (обычно USR1CV8) через Windows-аутентификацию. Тогда права dbcreator нужно выдать именно этой доменной или локальной учётке, а не SQL-логину.
Как добавить базу в кластер сервера 1С через консоль
Основной способ — через консоль кластера. Он даёт полный контроль над параметрами.
Шаг 1. Откройте кластер
В консоли разверните дерево: Центральные серверы 1С:Предприятия 8.3 → <имя сервера> → Кластеры → Локальный кластер → Информационные базы. Если сервер в дереве ещё не добавлен, щёлкните правой кнопкой по «Центральные серверы», выберите «Создать → Центральный сервер 1С:Предприятия 8.3» и укажите имя машины. Порт по умолчанию — 1540.
Если у кластера задан администратор, консоль спросит его логин и пароль.
Шаг 2. Заполните карточку новой базы
Правой кнопкой по «Информационные базы» → «Создать» → «Информационная база». Поля карточки:
| Поле | Что вписать | Пример |
|---|---|---|
| Имя | Имя базы в кластере, без пробелов | buh_ooo_romashka |
| Описание | Человеческое название | Бухгалтерия ООО «Ромашка» |
| Защищенное соединение | Оставить «выключено» | — |
| Сервер баз данных | Имя машины SQL или сервер\экземпляр | SRV-SQL |
| Тип СУБД | MSSQLServer или PostgreSQL | MSSQLServer |
| База данных | Имя базы в СУБД | buh_ooo_romashka |
| Пользователь сервера БД | Логин из прошлого раздела | usr1c |
| Пароль пользователя БД | Его пароль | — |
| Разрешить выдачу лицензий сервером 1С | «Да», если есть серверные клиентские лицензии | Да |
| Язык (Страна) | русский (Россия) | — |
| Смещение дат | 2000 для MS SQL, 0 для PostgreSQL | 2000 |
Внизу отметьте «Создать базу данных в случае ее отсутствия». Флажок «Установить блокировку регламентных заданий» ставьте, если база — копия рабочей: иначе она начнёт параллельно загружать курсы валют, отправлять отчёты и обмениваться данными от имени настоящей организации.
Имя базы в кластере и имя базы в СУБД удобно делать одинаковыми. Через год, когда баз станет двадцать, вы скажете себе спасибо.
Шаг 3. Подтвердите создание
Нажмите «ОК». Сервер 1С подключится к СУБД, создаст базу и пустые служебные таблицы. На это уходит от нескольких секунд до минуты. Новая строка появится в списке информационных баз.
Альтернатива: через окно запуска 1С
Если консоли под рукой нет, базу можно создать из списка баз на любом клиентском компьютере: Добавить → Создание новой информационной базы → Создание информационной базы без конфигурации (или из шаблона) → вариант «На сервере 1С:Предприятия». Мастер спросит те же параметры: кластер, имя базы, СУБД, логин, смещение дат. Результат одинаковый — база появится в кластере и сразу добавится в ваш список.
Чтобы подключить пользователей к уже созданной базе, им достаточно в окне запуска выбрать Добавить → Добавление в список существующей информационной базы → На сервере 1С:Предприятия и указать сервер и имя базы из кластера.
Загрузка конфигурации и данных в созданную базу
После шага 3 база пустая. Дальше два сценария.
Перенос существующей базы (файл .dt). Откройте новую базу в Конфигураторе и выполните Администрирование → Загрузить информационную базу, укажите файл выгрузки. Загрузка .dt полностью заменяет содержимое — и конфигурацию, и данные. Для неё нужен монопольный доступ, но в свежесозданной базе никого нет, так что это не проблема.
Чистая база из типовой конфигурации (файл .cf). В Конфигураторе: Конфигурация → Открыть конфигурацию, затем Конфигурация → Загрузить конфигурацию из файла. Программа спросит про обновление конфигурации
базы данных — согласитесь и примите изменения структуры. Потом запустите базу в режиме «1С:Предприятие»: типовые конфигурации при первом запуске выполняют начальное заполнение.
| Сценарий | Источник | Команда в Конфигураторе | Что получите |
|---|---|---|---|
| Перенос из файловой базы | .dt | Администрирование → Загрузить информационную базу | Копию данных и конфигурации |
| Новая типовая база | .cf | Конфигурация → Загрузить конфигурацию из файла | Пустую базу с типовой конфигурацией |
| Новая база из шаблона | установленный шаблон | Мастер в окне запуска | То же, что из .cf |
Крупный .dt (десятки гигабайт) загружается часами. Запускайте загрузку на самом сервере 1С или на машине в той же сети: по VPN-каналу она идёт в разы дольше и может оборваться на середине.
После загрузки перенесённой базы проверьте пользователей. Если в исходной файловой базе была Windows-аутентификация, привязка к доменным учётным записям сохранится, но имена компьютеров и пути к обработкам на дисках могли поменяться.
Ошибки при создании базы на SQL и как их разобрать
Тексты ниже — то, что показывает окно ошибки 1С. Внутри обычно есть строка от самой СУБД, она и подсказывает причину.
Ещё две ситуации, которые не всегда дают понятный текст:
- 🔤 Неверная сортировка (collation) MS SQL. Если базу в SQL создавали вручную со своей сортировкой, возможны ошибки при запросах и сравнении строк. Безопаснее давать серверу 1С создавать базу самому — он выбирает подходящую сортировку.
- 🔐 Вход под учёткой службы. Если поля логина в карточке пустые, а служба 1С работает под
USR1CV8без прав в SQL, ошибка будет про вход учётной записи видаDOMAIN\USR1CV8. Решение — выдать права этой учётке или указать SQL-логин явно.
Не удаляйте «неудачную» базу из кластера с флажком «Удалить базу данных» — это стирает базу в СУБД безвозвратно. Если сомневаетесь, удаляйте только регистрацию в кластере, а саму базу в SQL оставляйте до выяснения.
Обслуживание новой базы на SQL Server
База на SQL без обслуживания со временем тормозит: растёт журнал транзакций, устаревает статистика. Настройте это сразу, пока база маленькая.
Модель восстановления и журнал
Для большинства баз 1С подходит модель восстановления Simple: журнал транзакций не растёт бесконечно. Модель Full нужна, если вы делаете резервные копии журнала и хотите восстанавливаться на любую минуту. При Full без копий журнала файл .ldf за пару месяцев вырастает до размеров диска.
ALTER DATABASE buh_ooo_romashka SET RECOVERY SIMPLE;
План обслуживания
В SSMS: Management → Maintenance Plans → Maintenance Plan Wizard. Минимальный набор задач:
- 💾 Полная резервная копия — ежедневно, ночью. Хранить копии не на том же диске, что и база.
- 📊 Обновление статистики (Update Statistics) — ежедневно. Без него запросы 1С выбирают плохие планы выполнения.
- 🔧 Перестроение индексов (Rebuild Index) — раз в неделю, в выходные.
- 🧹 Очистка процедурного кэша (
DBCC FREEPROCCACHE) — после обновления статистики, чтобы SQL заново построил планы.
Для PostgreSQL аналог — регулярный VACUUM ANALYZE (часть работы делает автовакуум) и резервные копии через pg_dump или pg_basebackup.
Резервная копия средствами СУБД и выгрузка .dt — не одно и то же. Копия SQL делается без остановки работы и восстанавливается быстрее. Выгрузку .dt удобно делать перед обновлением конфигурации как дополнительную страховку.
Ограничение памяти SQL Server
Если 1С и MS SQL стоят на одной машине, ограничьте максимальную память SQL (Properties → Memory → Maximum server memory). Иначе SQL заберёт почти всю память, а рабочим процессам 1С её не хватит. Ориентир — оставить серверу 1С и системе не меньше трети ОЗУ.