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

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

Если вы администрируете 1С самостоятельно или планируете нанять подрядчика, эта инструкция поможет избежать подводных камней. Для технических специалистов приведём команды настройки СУБД и скрипты миграции, а для руководителей — сравнительный анализ затрат и выгод. Начнём с главного: когда именно стоит переходить на сервер, и какие альтернативы worth considering.

Файловая vs серверная база 1С: когда пора менять архитектуру

Файловый режим работает по принципу «один файл базы — один пользователь в момент записи». Это означает, что при одновременной работе нескольких сотрудников система либо блокирует данные, либо создаёт конфликты версий. Серверная архитектура устраняет эти ограничения за счёт:

  • 🔄 Транзакционной обработки: изменения фиксируются атомарно, без риска «разорванных» операций.
  • 🚀 Параллельного выполнения запросов: сервер СУБД оптимизирует нагрузку, а не последовательно обрабатывает действия пользователей.
  • 🛡️ Автоматического резервного копирования: поддерживаются инкрементальные бэкапы и репликация.
  • 📊 Масштабируемости: можно добавлять пользователей, не жертвуя производительностью.

Критические признаки, что файловая база исчерпала ресурсы:

ПроблемаФайловый режимСерверный режим
Количество пользователейДо 5-10 (с задержками)100+ (зависит от железа)
Блокировки данныхЧастые, ручное разрешениеМинимальные, автоматические
Производительность отчётовМедленная (один поток)Быстрая (параллельные вычисления)
Резервное копированиеТолько полная копия файлаИнкрементальное, по расписанию
НадёжностьВысокий риск потери при сбоеВосстановление до точки сбоя

Однако серверная база требует дополнительных затрат: лицензии на СУБД (от 50 000 ₽ для MS SQL Server Standard), аренда/покупка сервера (от 30 000 ₽/мес для облака), администрирование. Окупаемость наступает при 15+ пользователях или если бизнес-процессы критично зависят от скорости работы 1С (например, онлайн-кассы или логистика).

⚠️ Внимание: Если ваша файловая база весит более 10 ГБ, миграция потребует предварительной очистки архивных данных. Серверные СУБД плохо оптимизированы для хранения бинарных вложений (например, сканов документов) — их лучше вынести в отдельное хранилище.

Выбор СУБД для 1С: сравнение PostgreSQL, MS SQL и IBM DB2

Платформа 1С:Предприятие поддерживает три серверные СУБД, но их возможности и стоимость владения радикально отличаются. Рассмотрим ключевые критерии выбора:

  • 💰 Стоимость лицензий:
    • PostgreSQL: бесплатен (лицензия MIT).
    • MS SQL Server: от 50 000 ₽ за Standard Edition (на 1 сервер + CAL-лицензии).
    • IBM DB2: от 200 000 ₽ (цена зависит от количества ядер).
  • Производительность:
    • PostgreSQL: оптимален для средних нагрузок (до 50 пользователей).
    • MS SQL: лучшая оптимизация под 1С, поддержка CLR-интеграции.
    • DB2: максимальная отказоустойчивость, но сложен в администрировании.
  • 🔧 Сложность настройки:
    • PostgreSQL: требует ручной оптимизации postgresql.conf.
    • MS SQL: удобные графические инструменты (SQL Server Management Studio).
    • DB2: нужны специализированные знания по DB2 Command Line Processor.

Для большинства компаний оптимален PostgreSQL — он бесплатен, стабилен и имеет активное сообщество. MS SQL Server выбирают, если нужна глубокая интеграция с другими продуктами Microsoft (например, Power BI) или если штат включает сертифицированных администраторов MSSQL. IBM DB2 актуален только для крупных предприятий с высокими требованиями к отказоустойчивости.

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

При выборе учитывайте не только текущие нужды, но и перспективы роста. Например, PostgreSQL легко масштабируется горизонтально (добавляя реплики), а MS SQL — вертикально (увеличивая мощность сервера). Также проверьте совместимость с вашей версией 1С: некоторые релизы 1С:УТ 11 или 1С:ERP могут требовать конкретных версий СУБД.

⚠️ Внимание: Если вы используете нетиповую конфигурацию 1С с кастомными запросами, протестируйте её работу на выбранной СУБД до миграции. Некоторые конструкции ТЗ (текстовый запрос) могут выполняться по-разному в PostgreSQL и MS SQL.

Подготовка сервера: требования к железу и ОС

Минимальные требования к серверу для 1С зависят от количества пользователей и объёма данных, но есть универсальные рекомендации:

  • 🖥️ Процессор: от 4 ядер (рекомендуется Intel Xeon или AMD EPYC с поддержкой AVX2).
  • 🧠 ОЗУ: 16 ГБ + 1 ГБ на каждого пользователя (например, для 30 пользователей — 46 ГБ).
  • 💾 Хранилище:
    • Для СУБД: SSD NVMe (минимум 500 ГБ, RAID 10 для отказоустойчивости).
    • Для временных файлов 1С: отдельный SSD SATA (200+ ГБ).
  • 🌐 Сеть: 1 Гбит/с (для облака — канал от 100 Мбит/с с гарантированной полосой).

Операционная система:

СУБДПоддерживаемые ОСРекомендация
PostgreSQLWindows Server 2019+, Linux (Ubuntu 20.04+, CentOS 8+)Linux (меньше накладных расходов)
MS SQL ServerWindows Server 2016+Windows Server 2022 (лучшая совместимость)
IBM DB2Windows Server, Linux (RHEL, SUSE)Linux (оптимизирован для DB2)

Для виртуализации подойдёт VMware ESXi или Hyper-V, но физический сервер предпочтительнее — он исключает «соседние» нагрузки. Если выбираете облако, обратите внимание на Yandex Cloud (поддерживает PostgreSQL «из коробки») или Microsoft Azure (оптимизирован для MS SQL).

Установить последние обновления ОС|

Настроить статический IP-адрес|

Отключить энергосберегающие режимы|

Создать отдельного пользователя для СУБД (не root/Administrator)|

Открыть порты 1540-1541 (для 1С) и 5432/1433 (для СУБД)-->

Не экономьте на резервном копировании: настройте автоматическое создание снапшотов дисков (ежедневно) и выгрузку базы в облако (еженедельно). Для PostgreSQL можно использовать pg_dump, для MS SQLSQL Server Agent.

Пошаговая инструкция: перенос файловой базы 1С на сервер

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

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

Скачайте дистрибутив 1С:Предприятие для сервера с официального сайта (раздел «Технологическая платформа»). Для установки:

  1. Запустите setup.exe с правами администратора.
  2. Выберите компоненты:
    • Сервер 1С:Предприятия
    • Агент сервера 1С:Предприятия (для Linux)
    • Консоль администрирования
  • Укажите путь установки (например, C:\Program Files\1cv8\).
  • Настройте службу 1C:Enterprise 8 Server Agent на автоматический запуск.
  • После установки проверьте работу службы командой:

    sc query "1C:Enterprise 8 Server Agent"

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

    Кластер управляет распределением нагрузки между рабочими процессами. Для его создания:

    1. Откройте Консоль администрирования серверов 1С (ras.exe).
    2. Добавьте новый кластер:
      • Имя: MainCluster (или любое другое).
      • Порт: 1540 (по умолчанию).
      • Адрес: localhost (или IP сервера).
  • Добавьте рабочий процесс:
    • Количество соединений: 100 (начинайте с этого значения).
    • Путь к базе: укажите папку для временных файлов (например, D:\1C_Temp\).
    • Проверьте статусы кластера и процесса — они должны быть Зелёный (работает).

      3. Создание информационной базы на сервере

      Теперь перенесём саму базу:

      1. В Консоли администрирования выберите Информационные базы → Создать.
      2. Укажите параметры:
        • Имя: OurCompany (произвольное).
        • Тип СУБД: выберите вашу базу (PostgreSQL/MS SQL).
        • Сервер СУБД: localhost:5432 (для PostgreSQL) или localhost\SQLEXPRESS (для MS SQL).
        • Имя базы данных: ourcompany_db (будет создана автоматически).
        • Пользователь СУБД: postgres или sa (с правами на создание БД).
    • Нажмите Готово — сервер создаст пустую базу.
    • 4. Выгрузка/загрузка данных из файловой базы

      Для переноса данных:

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

      После загрузки проверьте целостность данных командой:

      TESTDB "СтрокаПодключения" CHDB /F"D:\logs\testdb.log"

      5. Настройка подключения клиентов

      Обновите список информационных баз на клиентских машинах:

      1. Запустите 1С:Предприятие в режиме выбора базы.
      2. Нажмите Добавить и укажите:
        • Имя: OurCompany (Сервер).
        • Расположение: сервер:1540\OurCompany.
    • Проверьте подключение под тестовым пользователем.
    💡

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

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

    Даже после успешной миграции база может работать медленнее ожидаемого. Основные причины:

    • 🐢 Неоптимизированные запросы: в файловом режиме они «терпели» из-за малой нагрузки, а на сервере становятся узким местом.
    • 🗄️ Неправильные индексы: СУБД не использует индексы, созданные 1С по умолчанию.
    • 🔌 Сетевые задержки: если сервер и клиенты в разных подсетях.
    • 🖥️ Нехватка ресурсов: ОЗУ или CPU загружены на 90%+.

    Инструменты для диагностики:

    ПроблемаИнструментКоманда/действие
    Медленные запросыЖурнал регистрации 1СВключите регистрацию событий Запрос и ДлительнаяОперация.
    Нагрузка на СУБДpgAdmin / SQL Server ProfilerАнализ планов выполнения запросов.
    Сетевые задержкиPing / Tracerouteping сервер_1с -n 100
    Нехватка ОЗУДиспетчер задач / topПроверьте Свободно в разделе Память.

    Топ-3 действия для ускорения:

    1. Оптимизируйте запросы:
      • Замените ПОМЕСТИТЬ на ВЫБРАТЬ РАЗРЕШЕННЫЕ.
      • Используйте ИНДЕКСИРОВАТЬ ПО для полей, по которым часто ищут.
    2. Настройте СУБД:
      • Для PostgreSQL: увеличьте shared_buffers до 25% от ОЗУ.
      • Для MS SQL: включите Optimize for Ad hoc Workloads.
  • Разделите нагрузку:
    • Вынесите отчёты на отдельный рабочий процесс.
    • Настройте репликацию для чтения (если пользователей > 50).
    Как найти самые медленные запросы в 1С?

    Откройте журнал регистрации 1С (файл 1Cv8Log\*.lgp) и отфильтруйте события с длительностью > 1000 мс. Обратите внимание на запросы с конструкциями ГДЕ по неиндексированным полям или ОБЪЕДИНИТЬ без ограничений.

    Если после оптимизации проблемы остаются, рассмотрите апгрейд железа или переход на 1С:ERP с поддержкой Managed Locks (уменьшает блокировки).

    Типичные ошибки при миграции и как их избежать

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

    • 🔴 Ошибка подключения к СУБД:

      Причина: неверные учётные данные или не открыт порт (5432 для PostgreSQL, 1433 для MS SQL).

      Решение: проверьте настройки файрвола и права пользователя СУБД.

    • 🔴 База не загружается из файла .dt:

      Причина: несовместимость версий платформы 1С (файловая база старше серверной).

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

    • 🔴 Медленная работа после миграции:

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

      Решение: используйте План выполнения запроса в Конфигураторе.

    • 🔴 Ошибки блокировок:

      Причина: длинные транзакции или ручные блокировки в коде.

      Решение: разбейте операции на более мелкие транзакции.

    Ещё одна распространённая проблема — нехватка лицензий. Серверная база требует:

    • Лицензию на сервер 1С (от 50 000 ₽).
    • Лицензии на клиентские подключения (по количеству пользователей).
    • Лицензию на СУБД (если не PostgreSQL).
    ⚠️ Внимание: Если вы используете 1С:Бухгалтерию или 1С:УТ в облаке (например, 1С:Фреш), миграция на собственный сервер может нарушить условия лицензирования. Уточните детали у партнёра 1С.

    Для минимизации рисков:

    Создать полный бэкап файловой базы|

    Проверить совместимость версий 1С и СУБД|

    Тестировать миграцию на тестовом сервере|

    Подготовить план отката (на случай сбоя)|

    Обучить пользователей работе с новой базой-->

    Обновление и поддержка серверной базы 1С

    Серверная база требует регулярного обслуживания. Минимальный набор действий:

    • 🔄 Обновление платформы 1С: выпускаются критические патчи раз в 1-2 месяца. Используйте команду:
      rac cluster update --cluster=MainCluster --version=8.3.22.1830
    • 🗃️ Обновление СУБД:
      • Для PostgreSQL: apt upgrade postgresql-14 (Linux).
      • Для MS SQL: через SQL Server Installation Center.
    • 📦 Резервное копирование:
      • Ежедневно: pg_dump -U postgres ourcompany_db > backup.sql.
      • Еженедельно: полный снапшот виртуальной машины.
    • 🧹 Очистка логов:
      • Для PostgreSQL: pg_repack (уменьшает фрагментацию).
      • Для MS SQL: DBCC SHRINKFILE.

    Автоматизируйте рутинные задачи с помощью Cron (Linux) или Задач планировщика (Windows). Например, для ежедневного бэкапа в PostgreSQL:

    0 2   * /usr/bin/pg_dump -U postgres ourcompany_db | gzip > /backups/ourcompany_$(date +\%Y-\%m-\%d).sql.gz

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

    • Zabbix или Prometheus (отслеживание нагрузки).
    • 1С:Администрирование сервера (входит в дистрибутив).
    • SQL Diagnostic Manager (для MS SQL).
    ⚠️ Внимание: После обновления платформы 1С всегда проверяйте работу критичных отчётов и обработок. Некоторые изменения в ядре могут ломать нетиповой функционал (например, кастомные запросы с ПОДСЧЁТ).

    FAQ: ответы на частые вопросы

    Сколько стоит переход с файловой базы на серверную?

    Минимальные затраты (для 10 пользователей):

    • Лицензия на сервер 1С: ~50 000 ₽.
    • Лицензии на клиентские подключения: ~3 000 ₽ × 10 = 30 000 ₽.
    • СУБД: 0 ₽ (PostgreSQL) или 50 000 ₽ (MS SQL Standard).
    • Сервер (аренда): от 15 000 ₽/мес (облако) или 100 000 ₽ (железо).
    • Администрирование: от 20 000 ₽/мес (аутсорс).

    Итого: от 100 000 ₽ (разово) + 35 000 ₽/мес.

    Можно ли вернуть файловую базу после миграции на сервер?

    Да, но это трудоёмкий процесс:

    1. Сделайте выгрузку серверной базы в .dt через Конфигуратор.
    2. Создайте новую файловую базу и загрузите в неё .dt.
    3. Обновите ссылки на клиентских машинах.

    Учтите, что некоторые данные (например, журналы регистрации) могут не перенестись полностью.

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

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

    • Пароли пользователей сбросятся — их придётся восстановить вручную.
    • Права на уровне СУБД (например, READ ONLY для отчётников) нужно настраивать отдельно.

    Для массового сброса паролей используйте обработку УстановкаПаролейПользователей.epf (доступна на Инфостарте).

    Что делать, если после миграции пропала история документов?

    Это типичная проблема при некорректной выгрузке/загрузке. Проверьте:

    1. Был ли включён флаг Выгружать историю данных при создании .dt.
    2. Совпадают ли версии конфигурации в файловой и серверной базе.

    Если история критична, восстановите её из резервной копии файловой базы с помощью ВосстановлениеДанных.epf.

    Нужно ли обновлять конфигурацию 1С перед миграцией?