Развертывание серверной базы 1С:Предприятие — критически важный этап для любой компании, работающей с этой платформой. От правильности настройки зависит не только скорость работы системы, но и стабильность бизнес-процессов, безопасность данных и возможность масштабирования. Однако многие администраторы сталкиваются с проблемами уже на этапе выбора архитектуры: использовать файловый вариант или клиент-серверный, какой SQL-сервер предпочесть, как распределить нагрузку между физическими и виртуальными машинами.

В этой статье мы разберем весь процесс — от подготовки инфраструктуры до тонкой настройки производительности. Особое внимание уделим типичным ошибкам, которые приводят к падению скорости обработки данных в 2-3 раза при неправильной конфигурации кластера серверов . Материал будет полезен как начинающим администраторам, так и опытным специалистам, которые хотят оптимизировать существующую инфраструктуру.

1. Выбор архитектуры: файловый сервер vs клиент-серверный вариант

Первое решение, которое предстоит принять — это выбор между файловым и клиент-серверным вариантами развертывания. Файловый подход проще в настройке и подходит для небольших компаний с 5-10 пользователями, но он имеет критические ограничения:

  • 📉 Производительность: при одновременной работе более 15 пользователей скорость обработки транзакций падает в разы из-за блокировок файла базы.
  • 🔒 Безопасность: отсутствует централизованное управление правами доступа на уровне СУБД.
  • 📊 Масштабируемость: невозможно распределить нагрузку между несколькими серверами.

Клиент-серверная архитектура на базе Microsoft SQL Server или PostgreSQL лишена этих недостатков, но требует более сложной настройки. Например, для SQL Server потребуется лицензия (от Standard Edition для малых предприятий до Enterprise для крупных холдингов), а также правильная конфигурация tempdb и планов обслуживания.

📊 Какую архитектуру 1С вы используете?
Файловый сервер
Клиент-сервер (SQL)
Клиент-сервер (PostgreSQL)
Облачное решение (1С:Fresh)
⚠️ Внимание: При выборе PostgreSQL учитывайте, что не все конфигурации (например, 1С:ЗУП или 1С:ERP) официально поддерживают эту СУБД. Перед развертыванием проверьте совместимость в документации к вашей версии платформы.

2. Требования к серверному оборудованию и ОС

Минимальные и рекомендуемые требования к серверу зависят от количества пользователей и объема данных. Для небольшой компании (до 50 пользователей) подойдет виртуальная машина с:

  • 🖥️ Процессор: 4 ядра (рекомендуется Intel Xeon или AMD EPYC с поддержкой AVX2).
  • 🧠 ОЗУ: 16 ГБ (для SQL Server выделяйте не менее 8 ГБ отдельно).
  • 💾 Хранилище: SSD NVMe с производительностью не менее 3000 IOPS на операции чтения/записи.
  • 🌐 Сеть: 1 Гбит/с (для кластерных решений — 10 Гбит/с).

Для крупных предприятий (100+ пользователей) потребуется физический сервер или кластер с:

  • 16+ ядрами;
  • 128+ ГБ ОЗУ;
  • RAID 10 на SSD для базы данных;
  • отдельным хранилищем для логов транзакций (LDF-файлов).
Количество пользователей Тип сервера Процессор ОЗУ Хранилище
1–20 Виртуальная машина 4 ядра 8–16 ГБ SSD 250 ГБ
20–100 Физический/виртуальный 8–12 ядер 32–64 ГБ RAID 1 (SSD 500 ГБ+)
100–500 Кластер 16+ ядер 128+ ГБ RAID 10 (SSD 1 ТБ+)

Операционная система должна быть серверной версии: Windows Server 2019/2022 (для SQL Server) или Linux (для PostgreSQL). Для виртуализации рекомендуется VMware ESXi или Microsoft Hyper-V с выделенными ресурсами (без динамического распределения памяти!).

💡

Если вы развертываете базу на виртуальной машине, отключите функцию Dynamic Memory в Hyper-V или Ballooning в VMware — это предотвратит падение производительности при пиковых нагрузках.

3. Установка и настройка СУБД для 1С

Процесс установки SQL Server или PostgreSQL имеет ключевые отличия, влияющие на производительность . Рассмотрим оба варианта.

3.1. Microsoft SQL Server

Для установки SQL Server:

  1. Скачайте дистрибутив с официального сайта Microsoft (версия не ниже 2017 для полной совместимости с 1С:Предприятие 8.3.20+).
  2. При установке выберите компоненты:
    • 📋 Database Engine Services (основной компонент);
    • 🔧 Management Tools (для администрирования через SSMS);
    • 🔄 Full-Text Search (необходим для некоторых конфигураций, например, 1С:Документооборот).
  • На этапе конфигурации укажите:
    • Режим аутентификации: Смешанный (Windows + SQL);
    • Путь для баз данных: на отдельном диске (не системном!);
    • Выделите не менее 20% от объема ОЗУ для SQL Server (через sp_configure).
    • После установки выполните обязательные настройки:

      -- Установить максимальный размер памяти для SQL Server (пример для 32 ГБ ОЗУ)
      

      EXEC sp_configure 'show advanced options', 1;

      RECONFIGURE;

      EXEC sp_configure 'max server memory', 28000; -- Оставить 4 ГБ для ОС

      RECONFIGURE;

      3.2. PostgreSQL

      Для PostgreSQL (поддерживается с 1С:Предприятие 8.3.18+):

      1. Установите версию не ниже 12.x (рекомендуется 14.x или 15.x).
      2. Отредактируйте файл postgresql.conf:
        shared_buffers = 8GB          # 25% от общего ОЗУ
        

        effective_cache_size = 24GB # 75% от общего ОЗУ

        maintenance_work_mem = 2GB # Для операций обслуживания

        work_mem = 64MB # Для сложных запросов

        max_connections = 200 # Количество подключений 1С

      3. Создайте роль для :
        CREATE ROLE _1c WITH LOGIN PASSWORD 'ваш_пароль';
        

        ALTER ROLE _1c SET search_path TO "$user", public;

      ⚠️ Внимание: При использовании PostgreSQL отключите autovacuum для баз и настройте ручное выполнение VACUUM FULL ANALYZE в периоды минимальной нагрузки (например, ночью). В противном случае фоновая очистка может заблокировать таблицы во время рабочего дня.

      4. Установка платформы 1С:Предприятие и серверных компонентов

      Для развертывания серверной части потребуется:

      1. Скачать дистрибутив платформы с официального сайта (версия не ниже 8.3.20 для полной поддержки SQL и PostgreSQL).
      2. Установить компоненты:
        • 🖥️ Сервер 1С:Предприятия (основной компонент);
        • 🔗 Агент сервера 1С:Предприятия (для кластерной работы);
        • 📊 Консоль администрирования серверов 1С (для управления кластером).
    • Запустить Консоль администрирования (1CEnterprise.exe) и создать центральный сервер кластера.

    При создании кластера укажите:

    • 📍 Порт центрального сервера: по умолчанию 1540 (можно изменить, если порт занят);
    • 🔐 Аутентификацию: Операционная система или 1С:Предприятие;
    • 📂 Каталог временных файлов: на отдельном диске с высокой скоростью записи (например, D:\1C_Temp).

    ☑️ Проверка установки сервера 1С

    Выполнено: 0 / 5

    После создания кластера добавьте рабочий сервер в кластер через консоль. Для балансировки нагрузки можно добавить несколько рабочих серверов (например, на разных физических машинах).

    5. Создание и настройка базы данных

    Теперь перейдем к созданию самой базы данных. Этот процесс отличается для SQL Server и PostgreSQL, но общая логика следующая:

    5.1. Создание базы в SQL Server

    Шаги:

    1. Откройте SQL Server Management Studio (SSMS).
    2. Подключитесь к экземпляру сервера.
    3. Создайте новую базу данных:
      CREATE DATABASE [1C_Base]
      

      ON PRIMARY

      (NAME = N'1C_Base', FILENAME = N'D:\SQL_Data\1C_Base.mdf', SIZE = 10GB, FILEGROWTH = 1GB)

      LOG ON

      (NAME = N'1C_Base_log', FILENAME = N'E:\SQL_Logs\1C_Base.ldf', SIZE = 5GB, FILEGROWTH = 512MB);

    4. Настройте права для пользователя :
      USE [1C_Base];
      

      CREATE LOGIN [1C_User] WITH PASSWORD = 'ваш_пароль';

      CREATE USER [1C_User] FOR LOGIN [1C_User];

      EXEC sp_addrolemember 'db_owner', '1C_User';

    5.2. Создание базы в PostgreSQL

    Шаги:

    1. Подключитесь к PostgreSQL через psql:
    2. Создайте базу и пользователя:
      CREATE DATABASE "1C_Base" OWNER _1c ENCODING 'UTF8';
      

      GRANT ALL PRIVILEGES ON DATABASE "1C_Base" TO _1c;

    3. Настройте параметры подключения в pg_hba.conf:
      # TYPE  DATABASE        USER            ADDRESS                 METHOD
      

      host 1C_Base _1c 192.168.1.0/24 md5

    После создания базы в SQL или PostgreSQL приступите к развертыванию конфигурации :

    1. Запустите 1С:Предприятие в режиме Конфигуратор.
    2. Выберите Файл → Новая информационная база.
    3. Укажите тип расположения: На сервере 1С:Предприятия.
    4. Введите параметры подключения к кластеру и выберите созданную базу SQL/PostgreSQL.
    ⚠️ Внимание: При создании базы в 1С:Конфигураторе отключите опцию Создавать демонстрационную информационную базу, если развертываете рабочую систему. Демонстрационные данные могут занимать до 500 МБ и замедлять первую загрузку.

    6. Оптимизация производительности серверной базы

    Даже правильно настроенная база может работать медленно из-за неоптимальных параметров SQL или . Вот ключевые направления для оптимизации:

    6.1. Настройка SQL Server

    • 🔧 Индексы: создайте индексы для часто используемых полей (например, Ссылка, Дата в документах). Используйте Database Engine Tuning Advisor для анализа.
    • 📊 Статистика: обновляйте статистику еженедельно:
      EXEC sp_updatestats;
    • 🗑️ Логи транзакций: настройте регулярное архивирование логов, если используете модель восстановления FULL.

    6.2. Настройка PostgreSQL

    • 🛠️ Autovacuum: отключите для баз и запускайте вручную:
      VACUUM (VERBOSE, FULL, ANALYZE) "1C_Base";
    • 📈 Work Mem: увеличьте work_mem до 128MB для сложных отчетов.
    • 🗄️ Tablespaces: разместите таблицы и индексы на разных физических дисках.

    6.3. Настройка кластера 1С

    В Консоли администрирования серверов 1С:

    • 🔄 Балансировка нагрузки: настройте распределение сессий между рабочими серверами (вкладка Балансировка).
    • ⏱️ Таймауты: увеличьте Время ожидания ответа от сервера до 300 секунд для медленных запросов.
    • 📡 Кэширование: включите кэширование метаданных и данных сессий (вкладка Кэш).
    Параметр Рекомендуемое значение Примечание
    Максимальное количество соединений с SQL 100–200 Зависит от количества пользователей
    Время ожидания ответа от SQL (мс) 30000 Увеличьте для сложных отчетов
    Размер кэша метаданных (МБ) 512–1024 Для баз с большим количеством объектов
    💡

    Регулярное обслуживание базы (обновление статистики, перестроение индексов, очистка логов) может увеличить производительность на 30–50% при больших объемах данных.

    7. Резервное копирование и восстановление

    Система резервного копирования должна учитывать особенности работы с SQL/PostgreSQL:

    7.1. Стратегии резервирования

    • 🔄 Полное резервное копирование: еженедельно (например, в воскресенье).
    • 📝 Дифференциальное: ежедневно (копирует только изменения с последнего полного бекапа).
    • ⏱️ Логи транзакций: каждые 15–30 минут (для минимальных потерь данных).

    7.2. Инструменты для SQL Server

    Используйте:

    • SQL Server Agent для планирования задач;
    • Ola Hallengren’s Maintenance Solution (скрипты для автоматического обслуживания);
    • 1С:Администрирование сервера для копирования информационных баз.

    Пример скрипта для полного бекапа:

    BACKUP DATABASE [1C_Base]
    

    TO DISK = N'F:\Backups\1C_Base_Full.bak'

    WITH COMPRESSION, STATS = 10;

    7.3. Инструменты для PostgreSQL

    Для PostgreSQL используйте:

    • pg_dump для логического дампа:
      pg_dump -U _1c -F c -b -v -f "1C_Base_backup.dump" "1C_Base"
    • pg_basebackup для физического копирования;
    • Barman или WAL-G для инкрементальных бекапов.
    ⚠️ Внимание: При восстановлении базы из бекапа SQL Server всегда используйте опцию WITH RECOVERY, иначе база останется в режиме Restoring и будет недоступна для записей.

    Проверяйте целостность бекапов ежемесячно с помощью тестового восстановления на отдельном сервере.

    8. Мониторинг и решение типичных проблем

    После развертывания важно настроить мониторинг ключевых метрик:

    8.1. Инструменты мониторинга

    • 📊 SQL Server: SQL Server Profiler, Extended Events, Grafana + Prometheus.
    • 📈 PostgreSQL: pgBadger, pg_stat_statements.
    • 🖥️ 1С: Журнал регистрации 1С, Перфоманс-монитор Windows.

    8.2. Типичные проблемы и решения

    Проблема Причина Решение
    Медленная работа отчетов Отсутствие индексов, устаревшая статистика Перестроить индексы, обновить статистику
    Ошибка "Недостаточно памяти" Мало выделено ОЗУ для SQL или 1С Увеличить max server memory или work_mem
    Блокировки таблиц Долгие транзакции, автоочистка в PostgreSQL Настроить VACUUM в нерабочее время

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

    SELECT
    

    t1.resource_type,

    t1.resource_database_id,

    t1.request_mode,

    t1.request_session_id,

    t2.blocking_session_id

    FROM

    sys.dm_tran_locks t1

    INNER JOIN

    sys.dm_os_waiting_tasks t2 ON t1.lock_owner_address = t2.resource_address;

    Как найти медленные запросы в 1С?

    Включите Журнал регистрации в конфигураторе (меню Администрирование → Журнал регистрации). Установите уровень детализации Подробно и фильтр по времени выполнения (например, > 1000 мс). После сбора данных экспортируйте журнал в Excel и отсортируйте по столбцу Длительность.

    FAQ: Частые вопросы по развертыванию серверной базы 1С

    Можно ли использовать бесплатную версию SQL Server Express для 1С?

    SQL Server Express имеет ограничение на размер базы (10 ГБ) и количество ядер (4), что делает его непригодным для большинства рабочих систем. Однако его можно использовать для тестирования или небольших баз (до 10 пользователей). Для производственной среды рекомендуется Standard Edition или выше.

    Как перенести базу с файлового варианта на SQL?

    Используйте утилиту chdbfl.exe (входит в комплект ):

    1. Создайте пустую базу в SQL Server.
    2. Выполните команду:
      chdbfl.exe создатьSQL /F "путь_к_файловой_базе" /S "сервер\экземпляр" /DB "имя_базы" /U sa /P "пароль"
    3. Проверьте целостность данных в новой базе.

    Почему после обновления платформы 1С база стала работать медленнее?

    Причины могут быть разные:

    • Новая версия платформы использует другие планы выполнения запросов;
    • Устарела статистика в SQL Server;
    • Изменились настройки кэширования.

    Решение: обновите статистику, пересоберите индексы и проверьте настройки кластера на соответствие новой версии.

    Как настроить репликацию базы 1С между двумя серверами?

    Для SQL Server используйте встроенную репликацию (Transaction Replication), для PostgreSQLLogical Replication или Slony. Важно:

    • Репликация поддерживается только для однонаправленной синхронизации;
    • Для требуется настройка идентичных схем баз данных;
    • Тестируйте репликацию на тестовом стенде перед внедрением в продакшн.

    Какие порты нужно открыть в брандмауэре для работы серверной 1С?

    Минимальный набор портов:

    • 1540–1541 — для связи с кластером ;
    • 1433 — для SQL Server (или 5432 для PostgreSQL);
    • 135, 139, 445 — для доступа к сетевым ресурсам (если используются файлы на сетевом диске).