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

Однако процесс миграции требует тщательной подготовки. Ошибки на этапе переноса могут привести к потере данных, неработоспособности системы или проблемам с лицензированием. В этой статье разберём пошаговый алгоритм переноса, нюансы настройки Microsoft SQL Server/PostgreSQL, а также типичные «подводные камни», о которых редко пишут в официальной документации.

Важно: если ваша база содержит критически важные данные (например, бухгалтерскую отчётность за несколько лет), рекомендуется провести тестовый перенос на копии базы перед работой с оригиналом. Это позволит оценить время процедуры и выявить возможные проблемы.

📊 Какой SQL-сервер вы планируете использовать?
Microsoft SQL Server
PostgreSQL
Оracle
Ещё не решил

1. Подготовка к переносу: что нужно сделать до начала миграции

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

Во-первых, проверьте совместимость версий. Файловая база 1С:Предприятие 8.3 должна быть актуальной — не ниже 8.3.10.2569 (для стабильной работы с SQL). Если версия устарела, обновите платформу через Конфигуратор → Справка → Обновление конфигурации. Также убедитесь, что ваша конфигурация (например, Бухгалтерия 3.0, УТ 11, ЗУП 3.1) поддерживает работу с SQL-сервером — некоторые старые редакции могут требовать доработок.

Во-вторых, оцените аппаратные требования. SQL-сервер предъявляет более высокие требования к ресурсам, чем файловая база. Минимальные рекомендации для тестовой среды:

  • 🖥️ Процессор: 4 ядра (рекомендуется 8+ для производственной среды)
  • 💾 ОЗУ: 8 ГБ (16 ГБ+ для баз объёмом свыше 50 ГБ)
  • 🗄️ Дисковое пространство: SSD с запасом в 1.5–2 раза больше текущего размера базы
  • 🌐 Сеть: гигабитное подключение между сервером и рабочими станциями

Третий шаг — резервное копирование. Создайте архивную копию файловой базы (.dt) через Конфигуратор → Администрирование → Выгрузить информационную базу. Сохраните её на отдельный носитель (не на тот же диск, где лежит оригинал!). Дополнительно экспортируйте внешние отчёты, обработки и печатные формы — они не переносятся автоматически.

Убедиться в актуальности версии платформы 1С|Проверить совместимость конфигурации с SQL|Оценить аппаратные ресурсы сервера|Создать резервную копию базы (.dt)|Экспортировать внешние обработки и отчёты|Получить лицензию на SQL-сервер (если требуется)

-->

2. Выбор SQL-сервера: сравнение вариантов для 1С

1С:Предприятие 8.3 официально поддерживает три типа SQL-серверов: Microsoft SQL Server, PostgreSQL и IBM DB2. На практике чаще всего выбирают между первыми двумя. Рассмотрим их ключевые особенности:

Критерий Microsoft SQL Server PostgreSQL
Стоимость Платная лицензия (от 900$ за Standard Edition) Бесплатная (открытое ПО)
Производительность Выше при большом количестве одновременных подключений Сравнимая, но может требовать тонкой настройки
Поддержка 1С Полная, оптимизированные драйверы Полная с версии 8.3.12, требует установки расширения 1C_Enterprise
Администрирование Удобный графический интерфейс (SSMS) Консольные команды или pgAdmin
Масштабируемость Легко масштабируется на кластеры Требует дополнительных настроек для кластеризации

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

Критичный нюанс: при использовании PostgreSQL версия сервера должна быть не ниже 9.6.5. Более старые версии не поддерживаются 1С и могут привести к ошибкам при работе с транзакциями.

💡

Если вы выбираете Microsoft SQL Server, обратите внимание на редакцию Express — она бесплатна, но имеет ограничение на объём базы (10 ГБ). Для баз крупнее этого размера потребуется Standard или Enterprise лицензия.

3. Установка и настройка SQL-сервера для 1С

Процесс установки SQL-сервера зависит от выбранной СУБД. Рассмотрим оба варианта подробно.

Для Microsoft SQL Server:

  1. Скачайте дистрибутив с официального сайта Microsoft (выберите версию не ниже SQL Server 2016 для стабильной работы с 1С).
  2. При установке выберите компоненты:
    • 📋 Database Engine Services (основной компонент)
    • 🔧 Management Tools (для удобства администрирования)
    • 🔒 Client Tools Connectivity (для подключения 1С)
  • На этапе настройки экземпляра укажите Mixed Mode (смешанная аутентификация) и задайте пароль для пользователя sa.
  • После установки откройте SQL Server Management Studio (SSMS) и создайте новую базу данных с параметрами:
    • 🗂️ Collation: Cyrillic_General_CI_AS (важно для корректной работы с кириллицей!)
    • 📏 Initial Size: 1.5–2 раза больше текущего размера файловой базы
    • 🔄 Autogrowth: включить с шагом 10–20%
    • Для PostgreSQL:

      1. Скачайте дистрибутив с сайта postgresql.org (версия 9.6.5 или новее).
      2. При установке оставьте параметры по умолчанию, но запомните порт (обычно 5432) и пароль для пользователя postgres.
      3. После установки подключитесь к серверу через pgAdmin или консоль и выполните команды:
        CREATE DATABASE имя_базы WITH ENCODING='UTF8' LC_COLLATE='ru_RU.UTF-8' LC_CTYPE='ru_RU.UTF-8';
        

        CREATE USER имя_пользователя WITH PASSWORD 'пароль';

        GRANT ALL PRIVILEGES ON DATABASE имя_базы TO имя_пользователя;

      4. Установите расширение для 1С:
        CREATE EXTENSION "1C_Enterprise";
      Почему важна кодировка Cyrillic_General_CI_AS в MS SQL?

      Если выбрать неправильную кодировку (например, SQL_Latin1_General_CP1_CI_AS), то при работе с 1С могут возникать ошибки сортировки русских букв, а также проблемы с поиском по строкам. Например, запрос "Иванов" не найдёт запись "ИВАНОВ" из-за различия в регистре. Кодировка Cyrillic_General_CI_AS обеспечивает корректную обработку кириллицы без учёта регистра.

      4. Пошаговый перенос файловой базы в SQL

      Когда SQL-сервер установлен и настроен, можно приступать к самой миграции. Процесс состоит из трёх основных этапов: выгрузка файловой базы, создание пустой SQL-базы и загрузка данных.

      Этап 1. Выгрузка файловой базы в формат .dt

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

      Этап 2. Создание новой SQL-базы через Конфигуратор

      1. В Конфигураторе выберите Файл → Новая информационная база.
      2. Укажите тип Сервер 1С:Предприятия и выберите Создание новой информационной базы.
      3. В поле Сервер баз данных укажите:
        • 🖥️ Для MS SQL: Имя_сервера\Имя_экземпляра (например, LOCALHOST\SQLEXPRESS)
        • 🐧 Для PostgreSQL: Имя_сервера:5432
    • Введите данные для подключения (имя базы, логин, пароль) и нажмите Далее.
    • На этапе создания базы выберите Создать пустую базу данных.

    Этап 3. Загрузка данных в SQL-базу

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

      Не прерывайте процесс загрузки данных! Если на этапе переноса возникнет ошибка, база может остаться в неконсистентном состоянии. В этом случае придётся удалять её через SQL-менеджер и начинать заново.

      5. Типичные ошибки при переносе и их решения

      Даже при тщательной подготовке процесс миграции может сопровождаться ошибками. Рассмотрим наиболее распространённые проблемы и способы их устранения.

      Ошибка 1: "Не удалось подключиться к серверу баз данных"

      • 🔌 Причина: неверные настройки подключения, заблокирован порт или не запущена служба SQL-сервера.
      • 🔧 Решение:
        • Проверьте, что служба SQL-сервера запущена (services.msc для Windows).
        • Убедитесь, что в брандмауэре открыт порт 1433 (MS SQL) или 5432 (PostgreSQL).
        • Для MS SQL включите протокол TCP/IP в SQL Server Configuration Manager.

      Ошибка 2: "Некорректная версия сервера баз данных"

      • 📋 Причина: используется устаревшая версия SQL-сервера (например, MS SQL 2008 или PostgreSQL 9.4).
      • 🔧 Решение: обновите сервер до поддерживаемой версии (MS SQL 2016+ или PostgreSQL 9.6.5+).

      Ошибка 3: "Недостаточно прав для создания базы данных"

      • 🔐 Причина: пользователь, от имени которого подключается 1С, не имеет прав на создание объектов в SQL.
      • 🔧 Решение:
        • Для MS SQL назначьте роль db_owner через SSMS.
        • Для PostgreSQL выполните команду: ALTER USER имя_пользователя CREATEDB;

      Ошибка 4: "Превышен тайм-аут ожидания"

      • ⏱️ Причина: медленное сетевое соединение или нехватка ресурсов сервера.
      • 🔧 Решение:
        • Увеличьте тайм-аут подключения в файле conf.cfg (параметр DBMSConnectTimeout).
        • Проверьте нагрузку на сервер (CPU, RAM, диск) через Диспетчер задач или top (Linux).
      💡

      Если при переносе возникает ошибка "Объект не найден (Metadata)", попробуйте очистить кэш метаданных 1С. Для этого в Конфигураторе выполните Файл → Открыть → [выберите базу] → Отмена, затем повторите загрузку.

      6. Настройка 1С для работы с SQL-базой

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

      Шаг 1. Обновление строки подключения

      В файле 1CEStart.cfg (расположен в каталоге пользователя, например, C:\Users\ИмяПользователя\AppData\Roaming\1C\1CEStart) найдите раздел с описанием вашей базы и измените параметр Connect:

      • 🔗 Для MS SQL: Connect=Srvr="ИмяСервера\Экземпляр";Ref="ИмяБазы";
      • 🔗 Для PostgreSQL: Connect=Srvr="ИмяСервера:5432";Ref="ИмяБазы";DBMS=PostgreSQL;

      Шаг 2. Проверка лицензий

      При переходе на SQL может потребоваться обновление лицензий:

      • 📄 Для 1С:Предприятия проверьте, что у вас есть клиент-серверная лицензия (а не файловая).
      • 🔑 Для SQL-сервера:
        • MS SQL: требуется лицензия на ядра процессора или CAL (в зависимости от модели лицензирования).
        • PostgreSQL: лицензия не требуется (открытое ПО).

      Шаг 3. Оптимизация производительности

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

      • ⚡ В SQL Server Management Studio (для MS SQL) установите модель восстановления базы в Simple, если не используете резервное копирование через SQL-сервер.
      • 🗃️ Для PostgreSQL увеличьте параметр shared_buffers в файле postgresql.conf до 25–30% от объёма ОЗУ.
      • 🔄 В Конфигураторе 1С включите кэширование метаданных: Сервис → Параметры → Запуск 1С:Предприятия → Кэшировать метаданные на клиенте.
      💡

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

      7. Тестирование и контроль после миграции

      Перенос базы — это только половина дела. Чтобы убедиться в корректности работы новой SQL-базы, необходимо провести комплексное тестирование. Начните с проверки целостности данных:

      Проверка данных:

      • 📊 Сравните итоги по ключевым регистрам (например, остатки по счётам бухгалтерского учёта или остатки товаров на складах).
      • 📄 Откройте несколько случайных документов и проверьте их реквизиты (даты, суммы, контрагентов).
      • 🔍 Выполните тестовые проводки и убедитесь, что они корректно отражаются в отчётах.

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

      • ⏱️ Замерьте время открытия тяжёлых отчётов (например, Оборотно-сальдовая ведомость за год).
      • 🖥️ Симулируйте одновременную работу нескольких пользователей (можно использовать утилиту 1С:Тест-центр).
      • 📈 Сравните показатели с файловой базой — улучшение должно быть заметно (особенно при 5+ пользователях).

    Проверка резервного копирования:

    • 💾 Настройте автоматическое резервное копирование SQL-базы (через SQL Server Agent или pg_dump для PostgreSQL).
    • 🔄 Протестируйте восстановление из резервной копии на тестовом сервере.
    • Как проверить, что 1С действительно работает с SQL-базой?

      Откройте Конфигуратор, подключитесь к базе и выполните запрос:

      ВЫБРАТЬ ТИПЗНАЧЕНИЯ(ИНФОРМАЦИОННАЯБАЗАПАРАМЕТРЫ().ТипСервераБазыДанных) КАК ТипСервера;

      Если в результате отобразится SQLServer или PostgreSQL, значит, подключение настроено корректно.

      8. Автоматизация резервного копирования SQL-базы 1С

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

      Для Microsoft SQL Server:

      Используйте SQL Server Agent для создания заданий:

      1. Откройте SSMS и подключитесь к серверу.
      2. Разверните узел SQL Server Agent → Jobs.
      3. Создайте новое задание (New Job) и добавьте шаг типа Transact-SQL со скриптом:
        BACKUP DATABASE [ИмяБазы] TO DISK = 'D:\Backups\ИмяБазы.bak'
        

        WITH COMPRESSION, STATS = 10;

      4. Настройте расписание (например, ежедневно в 23:00).

      Для PostgreSQL:

      Настройте автоматический бэкап через cron (Linux) или Задачи Windows:

      1. Создайте скрипт backup.sh:
        #!/bin/bash
        

        PGPASSWORD="ваш_пароль" pg_dump -U имя_пользователя -h localhost -p 5432 имя_базы > /backups/имя_базы_$(date +%Y-%m-%d).sql

      2. Добавьте задачу в crontab -e:
        0 23   * /путь/к/backup.sh

    Дополнительные рекомендации:

    • 📁 Храните бэкапы на отдельном физическом диске (не на системном!).
    • 🔄 Периодически тестируйте восстановление из бэкапов (хотя бы раз в квартал).
    • 📊 Для крупных баз (>50 ГБ) используйте дифференциальное или транзакционное резервирование.
    RESTORE DATABASE [ИмяБазы] FROM DISK = 'D:\Backups\ИмяБазы.bak'
    

    WITH BUFFERCOUNT = 20, MAXTRANSFERSIZE = 4194304;

    Это увеличивает количество буферов для операции и сокращает время восстановления на 30–50%.

    -->

    ⚠️ Внимание: параметры лицензирования SQL-серверов могут изменяться. Например, Microsoft периодически обновляет условия использования редакций Express и Standard. Перед покупкой лицензии уточните актуальные тарифы на официальном сайте вендора или у партнёров 1С.

    FAQ: Частые вопросы по переносу 1С в SQL

    Можно ли перенести базу с файловой версии на SQL без остановки работы пользователей?

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

    Альтернативный вариант — развернуть параллельную SQL-базу, синхронизировать данные через 1С:Конвертацию данных, а затем переключить пользователей на новую базу в один день. Однако этот метод требует дополнительных затрат времени на настройку.

    Сколько времени занимает перенос базы объёмом 20 ГБ?

    Время зависит от производительности дисковой подсистемы и сети:

    • 🖥️ На SSD и локальном сервере: 30–60 минут.
    • 🌐 При переносе по сети (1 Гбит/с): 1.5–2 часа.
    • 🐢 На HDD или медленном соединении: до 4–5 часов.

    Для ускорения процесса можно предварительно архивировать базу .dt и распаковать её непосредственно на сервере.

    Что делать, если после переноса некоторые отчёты работают медленнее, чем в файловой базе?

    Это типичная ситуация, которая обычно связана с:

    • 🔧 Неоптимальными индексами в SQL. Запустите Анализ производительности в Конфигураторе и создайте недостающие индексы.
    • 📊 Большим количеством временных таблиц. В настройках SQL-сервера увеличьте объём памяти для tempdb (для MS SQL) или work_mem (для PostgreSQL).
    • 🖥️ Нехваткой ресурсов сервера. Проверьте загрузку CPU и дисков через Диспетчер задач.

    Также поможет обновление статистики: для MS SQL выполните EXEC sp_updatestats;, для PostgreSQL — ANALYZE;.

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

    Сам перенос не требует обновления конфигурации, но:

    • 📋 Если ваша конфигурация старая (например, Бухгалтерия 2.0), она может не поддерживать работу с SQL. В этом случае потребуется обновление до актуальной версии (например, Бухгалтерия 3.0).
    • 🔄 После переноса рекомендуется обновить платформу 1С до последней стабильной версии (например, 8.3.22.1864), так как в новых релизах оптимизирована работа с SQL.
    Можно ли вернуть файловую базу обратно, если что-то пойдёт не так?

    Да, но с оговорками:

    • 🔙 Если вы сохранили резервную копию .dt, вы можете создать новую файловую базу и загрузить в неё данные.
    • ⚠️ Однако данные, добавленные или изменённые уже в SQL-базе, не будут перенесены обратно автоматически. Их придётся вносить вручную или через выгрузку/загрузку.
    • 📅 Если после переноса прошло много времени, лучше сделать выгрузку из SQL-базы в .dt и работать с ней дальше.