Настройка сервера баз данных (СУБД) для 1С:Предприятие — критически важный этап, от которого зависит производительность, стабильность и безопасность всей информационной системы. Неправильно указанные параметры могут привести к замедлению работы, ошибкам блокировок или даже потере данных. Эта статья поможет разобраться, что именно нужно указывать при выборе, установке и конфигурации сервера БД для 1С, учитывая особенности разных СУБД (MS SQL Server, PostgreSQL, IBM DB2) и версий платформы.

Мы рассмотрим не только технические параметры (например, collation, размер tempdb или настройки autovacuum для PostgreSQL), но и практические нюансы: как избежать типичных ошибок при миграции, какие ресурсы сервера закладывать "про запас", и почему использование локального диска C: для файлов БД — грубейшая ошибка даже для тестовых конфигураций. Статья будет полезна администраторам, разработчикам 1С и ИТ-специалистам, ответственным за инфраструктуру.

1. Выбор СУБД для 1С: что поддерживается и что лучше указать

Платформа 1С:Предприятие 8 официально поддерживает три типа серверов баз данных:

  • 🔹 Microsoft SQL Server (рекомендуемый вариант для большинства проектов)
  • 🔹 PostgreSQL (бесплатная альтернатива, популярна для малых и средних баз)
  • 🔹 IBM DB2 (реже используется, подходит для крупных корпоративных систем)

При выборе СУБД в конфигураторе 1С (Администрирование → Серверы 1С:Предприятия) указывайте:

  • 📌 Тип СУБД: выбирайте из выпадающего списка (например, Microsoft SQL Server)
  • 📌 Версию СУБД: для MS SQL актуальны 2016–2022, для PostgreSQL — 10–15
  • 📌 Режим совместимости: для новых баз рекомендуется 8.3.20 (или выше, если используется последняя платформа 1С)

Важно: если вы мигрируете с файлового варианта на серверный, в мастере создания базы укажите Создать новую базу на сервере, а не Восстановить из файла — это позволит избежать проблем с кодировкой и структурой данных.

📊 Какую СУБД вы используете для 1С?
Microsoft SQL Server
PostgreSQL
IBM DB2
Файловый вариант
Другая

2. Параметры подключения к серверу БД: что указывать в 1С

При добавлении сервера баз данных в консоли администрирования 1С (1C:Предприятие → Администрирование → Серверы 1С:Предприятия) необходимо заполнить следующие поля:

Параметр Что указывать (пример) Примечания
Имя сервера SRV-SQL\INSTANCE1 или 192.168.1.10,1433 Для MS SQL укажите имя экземпляра (если не по умолчанию). Для PostgreSQL — IP и порт (обычно 5432)
Тип аутентификации Аутентификация Windows или Аутентификация SQL Server Для PostgreSQL всегда используется Аутентификация СУБД (логины/пароли из pg_hba.conf)
Имя базы данных Base_Trade_2026 Не используйте кириллицу, пробелы или специальные символы (кроме подчёркивания)
Порт 1433 (MS SQL), 5432 (PostgreSQL) Порт должен быть открыт в брандмауэре сервера

⚠️ Внимание: Если вы подключаетесь к MS SQL Server через именованный экземпляр (не MSSQLSERVER), обязательно укажите его в формате ИМЯ_СЕРВЕРА\ИМЯ_ЭКЗЕМПЛЯРА. В противном случае 1С не сможет найти базу, даже если пинг до сервера проходит.

Для PostgreSQL дополнительно проверьте файл pg_hba.conf — в нём должна быть строка вида:

host    all             all             192.168.1.0/24          md5

где 192.168.1.0/24 — подсеть, с которой разрешено подключение к серверу БД.

3. Настройки сервера БД для оптимальной работы с 1С

После подключения сервера БД к 1С необходимо настроить его параметры для максимальной производительности. Основные рекомендации:

Для Microsoft SQL Server:

  • 🔧 Установите размер tempdb не менее 20% от размера основной базы (или 10 ГБ для небольших баз).
  • 🔧 Настройте автоувеличение файлов с шагом 1–2 ГБ (не проценты!).
  • 🔧 Включите модель восстановления FULL и настройте регулярное резервное копирование лога транзакций.
  • 🔧 Отключите автосжатие базы (AUTO_SHRINK) — это приводит к фрагментации.

Для PostgreSQL:

  • 🔧 Установите shared_buffers в 25–30% от общей памяти сервера (например, shared_buffers = 8GB).
  • 🔧 Настройте work_mem на 16–64 МБ для сложных запросов (например, отчётов в 1С).
  • 🔧 Включите autovacuum и установите autovacuum_vacuum_scale_factor = 0.1.
  • 🔧 Для больших баз (>100 ГБ) увеличьте maintenance_work_mem до 1–2 ГБ.

Указан корректный collation (например, Cyrillic_General_CI_AS для MS SQL)|

Размер tempdb/postgresql.conf оптимизирован под нагрузку|

Открыты порты в брандмауэре (1433/5432)|

Созданы резервные копии системных баз (master, msdb для MS SQL)|

Настроены права пользователя 1С на запись в каталог БД-->

⚠️ Внимание: Если вы используете MS SQL Server Express, помните о его ограничениях: максимальный размер базы — 10 ГБ (до версии 2016) или 10240 МБ (в новых версиях). Для баз 1С свыше 5 ГБ рекомендуется переходить на Standard или Enterprise редакции.

4. Collation (порядок сортировки): почему это важно и что указывать

Collation определяет правила сравнения и сортировки строк в базе данных. Для 1С критично указать правильный collation, иначе возможны ошибки при поиске, сортировке или сравнении данных (например, в отчётах или запросах).

Рекомендуемые настройки:

  • 📛 Для MS SQL Server:
    • 🔸 Cyrillic_General_CI_AS — стандартный вариант для русскоязычных баз.
    • 🔸 SQL_Latin1_General_CP1251_CI_AS — если используете кодировку Windows-1251.
  • 📛 Для PostgreSQL:
    • 🔸 ru_RU.UTF-8 — для UTF-8 баз (рекомендуется для новых проектов).
    • 🔸 C или POSIX — для совместимости со старыми конфигурациями.

Если collation указан неверно, 1С может выдавать ошибки вида:

Ошибка СУБД: Cannot resolve the collation conflict between "SQL_Latin1_General_CP1_CI_AS" and "Cyrillic_General_CI_AS" in the equal to operation.

Исправить collation после создания базы крайне сложно — потребуется перенос данных в новую базу с правильными настройками. Поэтому всегда проверяйте collation на этапе создания базы, особенно при миграции с файлового варианта.

Что будет если не указать collation?

Без явного указания collation сервер БД использует настройки по умолчанию (например, SQL_Latin1_General_CP1_CI_AS для MS SQL). Это приведёт к проблемам с кириллицей: символы "А" и "а" могут считаться разными при сравнении, сортировка в отчётах будет некорректной, а поиск по русским словам — работать нестабильно. В 1С это проявится как ошибки в запросах или "битые" данные в регистрах и справочниках.

5. Размещение файлов базы данных: где и как указывать пути

Один из самых распространённых источников проблем с производительностью 1С — неправильное размещение файлов базы данных. Вот что нужно учитывать:

Где НЕЛЬЗЯ размещать файлы БД:

  • 🚫 Локальный диск C: (системный раздел Windows).
  • 🚫 Сетевые папки или NAS без поддержки SMB 3.0+.
  • 🚫 Диски с файловой системой FAT32 или exFAT.

Рекомендуемая структура каталогов:

D:\SQL_Data\Base_Trade\          # Файлы данных (.mdf)

D:\SQL_Logs\Base_Trade\ # Файлы логов (.ldf)

E:\SQL_Temp\ # TempDB (для MS SQL)

E:\SQL_Backup\ # Резервные копии

В настройках сервера 1С укажите полные пути к файлам в формате:

  • 📁 Для MS SQL: D:\SQL_Data\Base_Trade\Base_Trade.mdf
  • 📁 Для PostgreSQL: /var/lib/postgresql/14/main (или другой каталог, указанный в postgresql.conf)

⚠️ Внимание: Если вы используете SSD для размещения баз 1С, отключите дефрагментацию диска в Windows и настройте TRIM для PostgreSQL (параметр effective_io_concurrency в postgresql.conf).

💡

Для ускорения работы 1С на MS SQL разделите файлы данных (.mdf) и логи (.ldf) на разных физических дисках. Это снизит нагрузку на подсистему ввода-вывода при интенсивных транзакциях.

6. Права доступа: какие пользователи нужны и что им разрешать

Для работы 1С с сервером БД требуются специальные пользователи с ограниченными правами. Не используйте учётную запись sa (для MS SQL) или postgres (для PostgreSQL) — это небезопасно!

Минимально необходимые права для пользователя 1С:

СУБД Роль/Права Примечания
MS SQL Server db_owner на базу 1С Не назначайте sysadmin! Достаточно прав на конкретную базу.
PostgreSQL CREATE, CONNECT, TEMPORARY + права на схему Используйте команду GRANT ALL ON SCHEMA public TO user_1c;
Оба варианта Права на создание временных таблиц Для отчётов и сложных запросов в 1С требуется CREATE TEMP TABLE.

Пример создания пользователя в PostgreSQL:

CREATE USER user_1c WITH PASSWORD 'SecurePass123';

CREATE DATABASE base_1c OWNER user_1c ENCODING 'UTF8' LC_COLLATE 'ru_RU.UTF-8' LC_CTYPE 'ru_RU.UTF-8';

GRANT ALL PRIVILEGES ON DATABASE base_1c TO user_1c;

⚠️ Внимание: В MS SQL Server отключите опцию Trustworthy для базы 1С (она должна быть OFF). Включённая опция позволяет выполнять небезопасный код и может быть использована для повышения привилегий.

7. Типичные ошибки при настройке сервера БД для 1С и как их избежать

Даже опытные администраторы иногда допускают ошибки при настройке сервера БД для 1С. Вот самые распространённые из них и способы их предотвращения:

  • 🔴 Ошибка: Использование динамических портов для MS SQL Server (порт 0).
    Решение: Задайте статический порт (например, 1433) в SQL Server Configuration Manager.
  • 🔴 Ошибка: Недостаточный размер tempdb для временных таблиц.
    Решение: Установите фиксированный размер tempdb (например, 10 ГБ) с авторостом.
  • 🔴 Ошибка: Размещение файлов БД и логов на одном диске.
    Решение: Разнесите .mdf и .ldf по разным физическим носителям.
  • 🔴 Ошибка: Отсутствие резервных копий лога транзакций (transaction log).
    Решение: Настройте регулярное резервирование лога (например, каждые 15 минут для активных баз).
  • 🔴 Ошибка: Использование READ COMMITTED SNAPSHOT без настройки tempdb.
    Решение: Включите этот режим только если tempdb размещён на быстром SSD.

Если 1С выдаёт ошибку вида:

Ошибка формата потока: Недостаточно памяти для выполнения операции

проверьте настройки max server memory в MS SQL Server (должно быть не менее 70% от физической памяти сервера) или work_mem в PostgreSQL.

💡

Перед запуском 1С в продуктивном режиме всегда тестируйте сервер БД под нагрузкой. Используйте утилиты вроде SQLQueryStress (для MS SQL) или pgBench (для PostgreSQL) для имитации работы 50+ пользователей.

8. Оптимизация производительности: что настроить после подключения

После успешного подключения сервера БД к 1С выполните следующие шаги для оптимизации:

Для Microsoft SQL Server:

  • 🛠 Настройте планы обслуживания (Maintenance Plans) для:
    • 🔹 Реорганизации индексов (еженедельно).
    • 🔹 Обновления статистики (ежедневно).
    • 🔹 Проверки целостности базы (DBCC CHECKDB, ежемесячно).
  • 🛠 Включите сжатие данных (DATA_COMPRESSION = PAGE) для крупных таблиц (например, регистров накопления).
  • 🛠 Настройте параметры памяти:
    • 🔹 min server memory = 2–4 ГБ (зависит от размера базы).
    • 🔹 max server memory = ОЗУ сервера минус 2–4 ГБ (для ОС).

Для PostgreSQL:

  • 🛠 Оптимизируйте postgresql.conf:
    • 🔹 effective_cache_size = 3/4 от общей памяти сервера.
    • 🔹 random_page_cost = 1.1 (если используете SSD).
  • 🛠 Настройте автоочистку (autovacuum):
    • 🔹 autovacuum_vacuum_scale_factor = 0.1.
    • 🔹 autovacuum_analyze_scale_factor = 0.05.
  • 🛠 Используйте разделы таблиц (table partitioning) для крупных регистров (например, AccumulationRegister с миллионами записей).

Для мониторинга производительности используйте:

  • 📊 Для MS SQL: sys.dm_os_performance_counters, sp_who2.
  • 📊 Для PostgreSQL: pg_stat_activity, pg_stat_statements.

⚠️ Внимание: Если в 1С появились зависания при формировании отчётов, проверьте планы выполнения запросов в СУБД. Часто проблема кроется в отсутствии индексов на полях, используемых в ГРУППИРОВКА ПО или УПОРЯДОЧИТЬ ПО.

FAQ: Частые вопросы по настройке сервера БД для 1С

🔹 Можно ли использовать MySQL или Oracle для 1С?

Нет, платформа 1С:Предприятие 8 официально поддерживает только MS SQL Server, PostgreSQL и IBM DB2. MySQL и Oracle не совместимы из-за особенностей работы с транзакциями и блокировками, которые критичны для 1С.

🔹 Как перенести базу 1С с файлового варианта на сервер БД?

Используйте утилиту 1CV8.exe с ключом CONFIG:

  1. Создайте новую базу на сервере через конфигуратор.
  2. Выгрузите данные из файловой базы (Администрирование → Выгрузить данные).
  3. Загрузите данные в серверную базу (Администрирование → Загрузить данные).

Важно указать правильный collation при создании новой базы!

🔹 Почему 1С тормозит после переноса на SQL Server?

Частые причины:

  • Недостаточный размер tempdb (увеличьте до 10–20 ГБ).
  • Отсутствие индексов на полях, используемых в запросах (проверьте через SQL Server Profiler).
  • Неправильные настройки памяти (установите max server memory в 70–80% от ОЗУ сервера).
  • Медленные диски (используйте SSD для файлов БД и логов).
🔹 Как проверить, что 1С подключается к правильной базе?

В конфигураторе 1С выполните запрос:

ВЫБРАТЬ

ТекущаяДата() КАК ДатаСервера,

ТИПЗНАЧЕНИЯ("КаталогИБ") КАК ПутьКБазе

Или проверьте в MS SQL Server Management Studio активные подключения:

SELECT

session_id,

login_name,

host_name,

program_name

FROM sys.dm_exec_sessions

WHERE program_name LIKE '1C%';

🔹 Нужно ли обновлять MS SQL Server после установки?

Да, обязательно! Установите последний Cumulative Update (CU) для вашей версии. Например, для MS SQL Server 2019 актуальный пакет можно найти на сайте Microsoft. Обновления исправляют критические ошибки блокировок и утечки памяти, актуальные для 1С.

⚠️ Перед обновлением сделайте резервную копию системных баз (master, msdb, model)!