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

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

Прежде чем приступать к настройке, убедитесь, что ваша инфраструктура соответствует системным требованиям 1С для серверного варианта. Это касается как аппаратной части (ОЗУ, процессор, дисковая подсистема), так и программного обеспечения (версии СУБД, операционной системы и платформы 1С).

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

1. Выбор СУБД для серверной базы 1С

От выбора системы управления базами данных (СУБД) зависит не только производительность, но и стоимость владения решением. 1С:Предприятие 8.3 официально поддерживает три варианта:

  • 🔹 Microsoft SQL Server — наиболее распространённый выбор для корпоративных решений. Поддерживает все функции 1С, включая распределённые базы и высоконагруженные системы. Лицензия платная, но есть бесплатная версия Express Edition (с ограничением по ресурсам).
  • 🔹 PostgreSQL — открытое ПО с хорошей производительностью и низкой стоимостью владения. Подходит для средних и крупных баз, но требует дополнительной настройки для оптимальной работы с 1С.
  • 🔹 IBM DB2 — используется реже, но подходит для высоконагруженных систем с большим объёмом данных. Лицензирование сложнее, чем у SQL Server.

Для большинства компаний оптимальным решением остаётся Microsoft SQL Server Standard — он обеспечивает баланс между стоимостью и функциональностью. Если бюджет ограничен, можно начать с PostgreSQL, но учтите, что некоторые функции (например, FULLTEXT-поиск) могут требовать доработок.

⚠️ Внимание: При использовании PostgreSQL для 1С необходимо устанавливать версию не ниже 9.6.3 (для 1С:Предприятие 8.3.20 и выше). Более ранние версии могут не поддерживать все функции платформы.
СУБД Минимальная версия Лицензия Особенности
Microsoft SQL Server 2012 SP4 Платная (Express — бесплатно) Полная поддержка всех функций 1С, интеграция с Active Directory
PostgreSQL 9.6.3 Бесплатная (открытая) Требует ручной настройки параметров work_mem и shared_buffers
IBM DB2 11.1 Платная Оптимизирована для больших объёмов данных, сложное администрирование

2. Установка и настройка кластера серверов 1С

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

  1. Скачайте дистрибутив 1С:Предприятие 8.3 (серверная версия) с официального сайта или из личного кабинета партнёра.
  2. Запустите установщик и выберите компоненты:
    • 📌 Сервер 1С:Предприятия (обязательно)
    • 📌 Агент сервера (для распределённых систем)
    • 📌 Консоль администрирования (для управления кластером)
  3. Укажите порт для работы кластера (по умолчанию 1540 или 1541).
  4. Добавьте кластер в Консоль администрирования серверов 1С (rac.exe).
  5. После установки проверьте статус кластера в консоли администрирования. Он должен отображаться как Работает. Если статус Остановлен, запустите его вручную или перезагрузите службу 1C:Enterprise 8.3 Server Agent.

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

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

    Если кластер не запускается, проверьте:

    • 🔧 Наличие прав у учётной записи, под которой работает служба.
    • 🔧 Корректность пути к каталогу временных файлов в настройках кластера.
    • 🔧 Отсутствие конфликтов с другими программами, использующими те же порты.

3. Создание базы данных в выбранной СУБД

Перед тем как добавить базу в , её необходимо создать непосредственно в СУБД. Процесс отличается в зависимости от выбранной системы:

Для Microsoft SQL Server:

  1. Откройте SQL Server Management Studio и подключитесь к серверу.
  2. Щёлкните правой кнопкой по папке DatabasesNew Database.
  3. Укажите имя базы (например, Base1C_Trade) и настройте файлы данных:
    • 📁 Основной файл данных (.mdf) — рекомендуемый размер не менее 10 ГБ (зависит от объёма данных).
    • 📁 Файл журнала транзакций (.ldf) — размер от 2 ГБ.
  • В свойствах базы установите режим совместимости SQL Server 2012 (110) или выше.
  • Для PostgreSQL:

    Используйте команду в psql или pgAdmin:

    CREATE DATABASE base1c_trade
    

    WITH

    OWNER = postgres

    ENCODING = 'UTF8'

    LC_COLLATE = 'Russian_Russia.1251'

    LC_CTYPE = 'Russian_Russia.1251'

    TABLESPACE = pg_default

    CONNECTION LIMIT = -1;

    Критично! Для корректной работы 1С с PostgreSQL необходимо установить расширение uuid-ossp:

    CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
    ⚠️ Внимание: При создании базы в PostgreSQL убедитесь, что кодировка установлена в UTF8, а локаль — Russian_Russia.1251. Несоответствие кодировок приведёт к ошибкам при работе с кириллическими символами.

    4. Добавление информационной базы в кластер 1С

    Теперь, когда СУБД готова, можно добавить базу в кластер 1С:Предприятие. Это делается через Консоль администрирования серверов 1С (rac.exe) или программно с помощью 1cv8.

    Способ 1: Через консоль администрирования

    1. Запустите rac.exe (обычно находится в C:\Program Files\1cv8\8.3.x.xxx\bin\).
    2. Подключитесь к кластеру (если он ещё не добавлен, нажмите Добавить и укажите адрес сервера).
    3. В дереве кластера выберите Информационные базыСоздать.
    4. Заполните параметры:
      • 📌 Имя — отображаемое имя базы (например, Торговля_Сервер).
      • 📌 Каталог — путь к папке с файлами 1С (например, D:\Bases\Trade\).
      • 📌 Сервер базы данных — выберите тип СУБД и укажите строку подключения (пример для SQL Server: SRV-SQL\INSTANCE;Database=Base1C_Trade).
      • 📌 Пользователь СУБД — учётная запись с правами на базу (рекомендуется создать отдельного пользователя для 1С).
    5. Нажмите Готово и дождитесь создания базы.
    6. Способ 2: Через командную строку

      Для автоматизации можно использовать утилиту 1cv8:

      1cv8 CREATEINFOBASE /S "srv-1c\cluster" /InfobaseName "Торговля_Сервер" /DBMS SQLServer /DBServerName "SRV-SQL" /DBName "Base1C_Trade" /DBAuth /DBUID "1c_user" /DBPWD "password123" /Locale ru /CreateDistributionAllow

      После добавления базы проверьте её статус в консоли — он должен быть Зелёный (работает). Если база не запускается, проверьте:

      • 🔍 Корректность строки подключения к СУБД.
      • 🔍 Наличие прав у пользователя СУБД на чтение/запись.
      • 🔍 Доступность порта 1433 (для SQL Server) или 5432 (для PostgreSQL).
    💡

    Если при добавлении базы возникает ошибка "Не удалось подключиться к серверу баз данных", проверьте, разрешено ли подключение по TCP/IP в настройках SQL Server (через SQL Server Configuration Manager).

    5. Миграция данных из файлового режима в серверный

    Если вы переходите с файлового режима на серверный, необходимо перенести данные. Этот процесс включает два этапа: выгрузку данных из файловой базы и загрузку их в серверную.

    Шаг 1: Выгрузка данных из файловой базы

    1. Откройте файловую базу в Конфигураторе (режим 1C:Enterprise).
    2. Перейдите в Администрирование → Выгрузить информационную базу.
    3. Укажите путь для сохранения файла (.dt).
    4. Дождитесь завершения выгрузки (время зависит от объёма данных).

    Шаг 2: Загрузка данных в серверную базу

    1. Подключитесь к серверной базе через Конфигуратор.
    2. Выберите Администрирование → Загрузить информационную базу.
    3. Укажите путь к выгруженному файлу .dt.
    4. Подтвердите замену данных (если база не пустая).

    После миграции обязательно выполните:

    • 🔄 Проверку целостности (Администрирование → Тестирование и исправление).
    • 🔄 Реиндексацию таблиц (через SQL Server Management Studio или pg_reindex для PostgreSQL).
    • 🔄 Обновление конфигурации (если версия платформы изменилась).
    ⚠️ Внимание: При миграции больших баз (более 50 ГБ) рекомендуется использовать утилиту 1cv8 с ключом /DumpIB для выгрузки и /RestoreIB для загрузки. Это ускоряет процесс и снижает риск ошибок.
    Что делать, если после миграции не работают отчёты?

    После переноса данных некоторые отчёты могут не открываться из-за различий в настройках прав доступа между файловым и серверным режимами. Проверьте:

    1. Права пользователей в конфигураторе (Администрирование → Пользователи).

    2. Наличие ролей в СУБД (например, db_datareader и db_datawriter для SQL Server).

    3. Соответствие версий конфигурации и платформы 1С.

    Если проблема сохраняется, выполните Тестирование и исправление с флагом Пересоздать индексы.

    6. Настройка прав доступа и безопасности

    Серверная база требует более строгого контроля доступа, чем файловая. Основные шаги:

    1. Настройка пользователей в 1С

    В Конфигураторе перейдите в Администрирование → Пользователи и:

    • 👤 Создайте учётные записи для всех сотрудников.
    • 👤 Назначьте роли (например, Полные права, Бухгалтер, Кладовщик).
    • 👤 Установите пароли (рекомендуется использовать политику сложности).

    2. Настройка прав в СУБД

    Для Microsoft SQL Server:

    USE [Base1C_Trade]
    

    GO

    CREATE LOGIN [1c_user] WITH PASSWORD = 'StrongPassword123!'

    GO

    CREATE USER [1c_user] FOR LOGIN [1c_user]

    GO

    EXEC sp_addrolemember 'db_owner', '1c_user'

    GO

    Для PostgreSQL:

    CREATE USER "1c_user" WITH PASSWORD 'StrongPassword123!';
    

    GRANT ALL PRIVILEGES ON DATABASE "base1c_trade" TO "1c_user";

    3. Безопасность на уровне ОС

    • 🔒 Ограничьте доступ к папке с базами 1С (например, D:\Bases\) только для администраторов и службы 1C:Enterprise.
    • 🔒 Настройте брандмауэр для разрешения трафика только на порты 1540-1541 (кластер 1С) и 1433/5432 (СУБД).
    • 🔒 Включите шифрование трафика между клиентами и сервером (в настройках кластера 1С).
    💡

    Никогда не используйте учётную запись sa (для SQL Server) или postgres (для PostgreSQL) для подключения 1С к базе. Создайте отдельного пользователя с минимально необходимыми правами.

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

    После запуска серверной базы её производительность может оказаться ниже ожидаемой. Основные направления оптимизации:

    1. Настройка СУБД

    • 🛠 Для SQL Server:
      • Установите MAXDOP = 4-8 (зависит от количества ядер процессора).
      • Настройте Memory → Maximum server memory (рекомендуется оставлять 2-4 ГБ для ОС).
    • 🛠 Для PostgreSQL:
      shared_buffers = 4GB          # 25% от общей памяти сервера
      

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

      maintenance_work_mem = 512MB # Для VACUUM и REINDEX

      effective_cache_size = 12GB # 75% от общей памяти

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

    В файле конфигурации кластера (1CV8Clst.lst) можно оптимизировать:

    • 📊 MaxMemoryUsage = 80 — максимальное использование памяти (в %).
    • 📊 MaxConnections = 100 — максимальное количество подключений.
    • 📊 SessionTimeout = 3600 — таймаут неактивных сессий (в секундах).

    3. Оптимизация запросов

    Если база тормозит при выполнении отчётов:

    • 🔍 Проверьте планы выполнения запросов в SQL Server Management Studio (ищите Table Scan вместо Index Seek).
    • 🔍 Обновите индексы:
    -- Для SQL Server
    

    ALTER INDEX ALL ON [dbo].[_Document123] REBUILD;

    -- Для PostgreSQL

    REINDEX TABLE public._document123;

    ⚠️ Внимание: Детали настроек СУБД могут отличаться в зависимости от версии. Например, для SQL Server 2022 рекомендуется использовать Query Store для мониторинга производительности, а в PostgreSQL 15+ появились новые параметры для работы с памятью.

    8. Типичные ошибки и их решение

    При добавлении серверной базы пользователи часто сталкиваются с следующими проблемами:

    Ошибка Причина Решение
    Не удалось подключиться к серверу баз данных Некорректная строка подключения или заблокирован порт Проверьте настройки фаервола и строку подключения в консоли 1С
    Ошибка блокировки при записи Конфликт транзакций между пользователями Увеличьте таймаут блокировки в СУБД или оптимизируйте запросы
    Недостаточно памяти для выполнения операции Нехватка ОЗУ на сервере или неправильные настройки work_mem Увеличьте shared_buffers в PostgreSQL или Maximum server memory в SQL Server
    Ошибка преобразования типов данных Несоответствие кодировок между 1С и СУБД Пересоздайте базу с правильной кодировкой (UTF8 для PostgreSQL)

    Если ошибка не устраняется, проверьте журналы 1С:

    • 📄 C:\Program Files\1cv8\srvinfo\reg_1540\log\ — логи кластера.
    • 📄 C:\Users\Public\1C\1Cv8\ — логи сеансов пользователей.

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

    • 🔍 SQL Server Profiler (для MS SQL).
    • 🔍 EXPLAIN ANALYZE (для PostgreSQL).
    • 🔍 Встроенный Перфоманс-монитор в консоли администрирования 1С.
    💡

    Если после миграции пользователи жалуются на медленную работу, включите в 1С режим Отладка производительности (Отладка → Начать отладку производительности) и проанализируйте "узкие места".

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

    Можно ли перенести серверную базу 1С на другой сервер без потери данных?

    Да, для этого:

    1. Сделайте резервную копию базы через SQL Server Management Studio или pg_dump (для PostgreSQL).
    2. Перенесите файл резервной копии на новый сервер.
    3. Восстановите базу из резервной копии.
    4. Обновите строку подключения в консоли администрирования 1С.

    Если используете PostgreSQL, можно также перенести папку с данными (PGDATA) при одинаковых версиях СУБД.

    Какой минимальный сервер нужен для 10 пользователей?

    Для 10 пользователей достаточно сервера со следующими характеристиками:

    • 🖥 Процессор: 4 ядра (Intel Xeon или AMD EPYC).
    • 🖥 ОЗУ: 16 ГБ (из них 8 ГБ для СУБД).
    • 🖥 Диск: SSD на 256 ГБ (для базы) + HDD/SSD для резервных копий.
    • 🖥 Сеть: 1 Гбит/с (для локальной сети).

    Для PostgreSQL рекомендуется увеличить shared_buffers до 4 ГБ.

    Что делать, если после добавления базы она не отображается в списке?

    Проверьте:

    • 🔍 Корректность прав доступа к папке базы (учётная запись службы 1С должна иметь права на чтение/запись).
    • 🔍 Наличие файла 1Cv8.1CD в каталоге базы (если его нет, база не инициализирована).
    • 🔍 Состояние кластера в консоли администрирования (если кластер не работает, база не будет доступна).

    Если проблема сохраняется, перезапустите службу Агент сервера 1С:Предприятие 8.3.

    Можно ли использовать серверную базу 1С без кластера?

    Нет, серверная база всегда требует наличия кластера 1С:Предприятие. Кластер отвечает за:

    • 🔗 Управление подключениями пользователей.
    • 🔗 Кэширование данных.
    • 🔗 Выполнение фоновых задач (например, регламентные задания).

    Без кластера можно работать только в файловом режиме.

    Как часто нужно делать резервное копирование серверной базы?

    Рекомендуемая частота:

    • 📅 Ежедневно: Полное резервное копирование (например, через SQL Server Agent или pg_dump).
    • 📅 Каждые 4 часа: Копирование транзакционных логов (для SQL Server).
    • 📅 Еженедельно: Проверка целостности резервных копий.

    Для автоматизации можно использовать скрипты или специализированные утилиты (например, 1C:Backup).