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

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

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

Официальная поддержка СУБД в 1С: что говорит вендор

Фирма не просто так рекомендует конкретные версии СУБД — это результат многолетнего тестирования и оптимизации платформы. На сегодняшний день официально поддерживаются:

  • 🔹 Microsoft SQL Server (версии 2012–2022, включая Express)
  • 🔹 PostgreSQL (версии 9.6–16, с оговорками по расширениям)
  • 🔹 Oracle Database (версии 12c–23c, но с ограничениями)
  • 🔹 IBM Db2 (реже используется, поддержка урезана)

Важно понимать, что не все функции 1С работают одинаково на разных СУБД. Например, ПОЛНЫЙТЕКСТОВЫЙПОИСК в PostgreSQL реализован иначе, чем в SQL Server, а некоторые отчёты могут выдавать разные результаты из-за особенностей обработки NULL. Поэтому перед миграцией всегда тестируйте критичные операции на тестовом стенде.

Также стоит учитывать, что регулярно обновляет список поддерживаемых версий. Например, в 2023 году была добавлена поддержка PostgreSQL 16, но при этом убрана поддержка SQL Server 2008. Чтобы не оказаться с неработающей системой после апгрейда платформы, следите за официальной документацией.

⚠️ Внимание: Если вы используете устаревшие версии СУБД (например, SQL Server 2008 или PostgreSQL 9.5), после обновления платформы база может перестать работать. Перед апгрейдом проверьте совместимость в Конфигураторе → Справка → О программе → Состав платформы.
📊 Какую СУБД вы используете с 1С?
Microsoft SQL Server
PostgreSQL
Oracle Database
IBM Db2
Другая/Не знаю

Microsoft SQL Server: плюсы и минусы для 1С

Microsoft SQL Server — самый популярный выбор среди пользователей , и на то есть причины. Эта СУБД тесно интегрирована с платформой, имеет хорошую документацию и широкий функционал. Но есть и обратная сторона медали.

Преимущества:

  • 🚀 Максимальная совместимость: оптимизирована под SQL Server, поэтому большинство типовых конфигураций (Бухгалтерия, ЗУП, УТ) работают без сбоев.
  • 🛠️ Инструменты администрирования: SQL Server Management Studio (SSMS) и Azure Data Studio упрощают настройку и мониторинг.
  • 📊 Производительность на OLTP-нагрузках: Хорошо справляется с большим количеством коротких транзакций (например, в торговле или кассовых операциях).
  • 🔒 Безопасность: Встроенные механизмы шифрования, аудита и управления доступом.

Недостатки:

  • 💰 Стоимость лицензий: Полноценные версии (Standard или Enterprise) требуют значительных вложений, особенно для крупных компаний.
  • 🐢 Тормоза на больших базах: При объёме данных свыше 500 ГБ могут возникать задержки при формировании сложных отчётов.
  • 🔄 Зависимость от Windows: Нативная работа только под Windows (хотя есть варианты для Linux через SQL Server on Linux, но с ограничениями).

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

Параметр SQL Server Standard SQL Server Enterprise PostgreSQL
Стоимость лицензии (примерно) ~3 500 USD за сервер ~14 000 USD за ядро Бесплатно (Open Source)
Макс. размер базы 524 ПБ 524 ПБ Неограничен
Поддержка 1С Полная Полная Полная (с 8.3.10)
OLAP-возможности Ограничены Полные (Analysis Services) Требует доп. расширений
⚠️ Внимание: При использовании SQL Server Express (бесплатной версии) учитывайте ограничение на размер базы в 10 ГБ и использование только 1 физического процессора. Для это критично: уже при 20–30 пользователях база может перестать помещаться.
💡

Если вы выбираете SQL Server для , обязательно настройте Autogrowth для файлов базы данных. По умолчанию он работает в режиме добавления по 1 МБ, что приводит к фрагментации и тормозам. Оптимальное значение — 256 МБ с шагом в 10%.

PostgreSQL: бесплатная альтернатива с нюансами

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

Преимущества:

  • 🆓 Нет лицензионных платежей: Подходит для стартапов и малых предприятий с ограниченным бюджетом.
  • 🐧 Кроссплатформенность: Работает на Linux, Windows, macOS и даже в Docker-контейнерах.
  • 🛡️ Надёжность: Транзакционная модель MVCC снижает риск блокировок при высокой нагрузке.
  • 🔧 Гибкость: Поддерживает расширения (например, pg_trgm для полнотекстового поиска).

Сложности и ограничения:

  • 🔄 Миграция данных: Перенос базы из SQL Server в PostgreSQL требует конвертации типов данных и иногда переписывания запросов.
  • ⚙️ Настройка производительности: По умолчанию PostgreSQL не оптимизирован под — нужно вручную настроить shared_buffers, work_mem и другие параметры.
  • 📉 Производительность на аналитике: Сложные отчёты с большим количеством joins могут работать медленнее, чем на SQL Server.

Один из ключевых моментов — расширение 1c_md, которое эмулирует поведение SQL Server для . Без него некоторые механизмы (например, работа с временными таблицами) будут работать некорректно. Установить его можно через:

CREATE EXTENSION"1c_md";

Также стоит учитывать, что официально поддерживает PostgreSQL только начиная с версии платформы 8.3.10. Если у вас более старая версия, миграция может привести к ошибкам.

Убедиться, что версия платформы 1С не ниже 8.3.10|

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

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

Настроить параметры postgresql.conf (особенно shared_buffers и effective_cache_size)|

Установить расширение 1c_md-->

Oracle Database: для крупного бизнеса или нет?

Oracle Database — это enterprise-решение, которое редко выбирают для из-за высокой стоимости и сложности администрирования. Однако в некоторых случаях (например, для банков или крупных холдингов) оно может быть оправдано.

Когда стоит рассматривать Oracle:

  • 🏦 Высокие требования к отказоустойчивости: Механизмы RAC (Real Application Clusters) и Data Guard обеспечивают почти 100% доступность.
  • 📈 Очень большие базы данных (свыше 1 ТБ): Oracle лучше оптимизирован для работы с огромными объёмами данных.
  • 🔐 Жёсткие требования безопасности: Встроенные механизмы аудита и шифрования на уровне ядра.

Почему Oracle редко выбирают для 1С:

  • 💸 Дорого: Лицензия на Oracle Standard Edition 2 starts от ~17 500 USD за сервер, а Enterprise Edition — ещё дороже.
  • 🧩 Сложность настройки: Требует глубоких знаний в администрировании, что увеличивает затраты на обслуживание.
  • 🔄 Ограниченная поддержка в 1С: Не все механизмы платформы тестировались на Oracle, возможны неожиданные ошибки.

Если вы всё же рассматриваете Oracle, учтите, что официально поддерживает только версии 12c–23c, и то с оговорками. Например, некоторые функции (например, ВЫБРАТЬ РАЗРЕШЕННЫЕ...) могут работать медленнее, чем на SQL Server.

⚠️ Внимание: При использовании Oracle с обязательно отключите optimizer_adaptive_features в параметрах базы. В противном случае планы выполнения запросов могут меняться непредсказуемо, что приведёт к тормозам.

IBM Db2: экзотика или Hidden Gem?

IBM Db2 — наименее популярный вариант среди пользователей , но в некоторых случаях он может быть полезен. Например, если ваша компания уже использует IBM-инфраструктуру (например, сервера IBM Power Systems), то интеграция с Db2 может упростить администрирование.

Плюсы IBM Db2:

  • 🔗 Интеграция с IBM-экосистемой: Если у вас уже есть WebSphere или Cognos, Db2 может быть логичным выбором.
  • 📊 Хорошая производительность на аналитических запросах: В некоторых сценариях обгоняет SQL Server.
  • 🔒 Высокий уровень безопасности: Сертифицирован по стандартам FIPS 140-2 и Common Criteria.

Минусы:

  • 📉 Ограниченная поддержка в 1С: Многие механизмы (например, ПОЛНЫЙТЕКСТОВЫЙПОИСК) работают нестабильно.
  • 💰 Дорогая лицензия: Сопоставима с Oracle, но без таких же возможностей.
  • 👨‍💻 Нехватка специалистов: Найти админа, который хорошо знает и , и Db2, сложно.

Если вы всё же решите использовать IBM Db2, обязательно протестируйте работу с на тестовом стенде. Например, в некоторых конфигурациях (ERP, Комплексная автоматизация) могут возникать ошибки при работе с ВРЕМЕННЫМИ ТАБЛИЦАМИ.

Какой SQL выбрать для 1С: рекомендации по сценариям

Универсального ответа на вопрос"какой SQL лучше для ?" не существует — всё зависит от ваших задач, бюджета и инфраструктуры. Ниже мы собрали рекомендации длячных сценариев.

🏠 Малый бизнес (до 10 пользователей, база до 50 ГБ):

  • 🔹 PostgreSQL: Бесплатно, достаточно производительно для небольших нагрузок. Подойдёт, если у вас Linux-сервер или ограниченный бюджет.
  • 🔹 SQL Server Express: Если вам нужна максимальная совместимость с и вы работаете на Windows. Но следите за размером базы!

🏢 Средний бизнес (10–100 пользователей, база 50–500 ГБ):

  • 🔹 SQL Server Standard: Оптимальный баланс цены и производительности. Хорошо справляется с OLTP-нагрузками (торговля, склад, бухгалтерия).
  • 🔹 PostgreSQL с тюнингом: Если у вас есть опытный админ, который может настроить postgresql.conf и оптимизировать запросы.

🏭 Крупный бизнес (100+ пользователей, база свыше 500 ГБ):

  • 🔹 SQL Server Enterprise: Если нужны Always On, Columnstore индексы и высокая доступность.
  • 🔹 Oracle Database: Только если у вас уже есть инфраструктура на Oracle и критические требования к надёжности.

🌐 Облачные решения (1С в облаке):

  • 🔹 Azure SQL Database: Если вы используете Microsoft Azure, это самый простой вариант с автоматической масштабируемостью.
  • 🔹 PostgreSQL в AWS RDS или Yandex Cloud: Дешевле, но потребуется дополнительная настройка.

Если вы сомневаетесь, какой вариант выбрать, воспользуйтесь тестовым периодом. Например, Microsoft предлагает 180-дневную пробную версию SQL Server, а PostgreSQL можно установить бесплатно и протестировать на реальных данных.

💡

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

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

Независимо от того, какую СУБД вы выбрали, есть универсальные рекомендации, которые помогут улучшить производительность :

  1. 🔧 Настройка индексов: В часто используются запросы с ГДЕ и УПОРЯДОЧИТЬ ПО. Убедитесь, что на эти поля есть индексы. Но не переусердствуйте — лишние индексы замедляют INSERT/UPDATE.
  2. 🗃️ Разделение базы на файлы: В SQL Server разделите базу на несколько файлов (.mdf, .ndf) и разместите их на разных физических дисках.
  3. 🧹 Регулярное обслуживание:
    • 🔄 Обновляйте статистику: EXEC sp_updatestats; (для SQL Server) или ANALYZE; (для PostgreSQL).
    • 🗑️ Чистите лог транзакций: В SQL Server настройте режим восстановления SIMPLE, если не нужны point-in-time recovery.
  4. 📊 Мониторинг производительности: Используйте SQL Server Profiler или pg_stat_statements для выявления медленных запросов.
  5. Один из самых распространённых источников тормозов в — это неоптимизированные запросы в конфигурации. Например, конструкция вида:

    ВЫБРАТЬ *
    

    ИЗ Документ.ЗаказПокупателя

    ГДЕ Дата МЕЖДУ &НачалоПериода И &КонецПериода

    может работать в 10 раз медленнее, чем:

    ВЫБРАТЬ
    

    Ссылка,

    Дата,

    СуммаДокумента

    ИЗ Документ.ЗаказПокупателя

    ГДЕ Дата >= &НачалоПериода

    И Дата <= &КонецПериода

    Также стоит обратить внимание на блокировки. В SQL Server их можно диагностировать через:

    SELECT
    

    session_id,

    command,

    blocking_session_id,

    wait_type,

    wait_time

    FROM sys.dm_exec_requests

    WHERE blocking_session_id <> 0;

    Что делать, если 1С тормозит из-за SQL?

    1. Проверьте, не перегружен ли сервер CPU или дисковой подсистемой (используйте Task Manager или htop).

    2. Включите трассировку запросов в через Тестовый центр → Производительность → Начать сбор статистики.

    3. Если проблема в конкретном отчёте, попробуйте разбить его на части или использовать ВЫГРУЗИТЬ вместо ПОЛУЧИТЬ.

    4. Для SQL Server проверьте фрагментацию индексов: SELECT * FROM sys.dm_db_index_physical_stats(DB_ID, NULL, NULL, NULL,'LIMITED');. Если avg_fragmentation_in_percent > 30, выполните REORGANIZE или REBUILD.

    Частые ошибки при выборе и настройке SQL для 1С

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

    • 🚫 Игнорирование резервного копирования: Многие считают, что раз сама делает бэкапы через 1CV8.exe, то дополнительные бэкапы не нужны. Это не так! Восстановление из .dt может занять часы, а то и дни для больших баз.
    • 🚫 Неправильный выбор режима восстановления: В SQL Server режим FULL без настройки резервного копирования лога транзакций приводит к его разрастанию и остановке базы.
    • 🚫 Отсутствие мониторинга: Многие не следят за свободным местом на диске, из-за чего база внезапно перестаёт работать (особенно актуально для SQL Server Express с лимитом в 10 ГБ).
    • 🚫 Использование дефолтных настроек: Например, в PostgreSQL по умолчанию shared_buffers установлен в 128 МБ, что катастрофически мало для .

Ещё одна типичная ошибка — нетестированная миграция. Перенос базы с SQL Server на PostgreSQL (или наоборот) должен проходить в несколько этапов:

  1. Создать тестовую копию базы.
  2. Перенести данные с помощью 1CV8.exe или утилит вроде pgloader.
  3. Проверить работу всех критичных отчётов и документов.
  4. Обучить пользователей (если изменился интерфейс администрирования).

И конечно, никогда не обновляйте или СУБД на боевой системе без предварительного тестирования. Даже минорные апдейты могут ломать совместимость.

⚠️ Внимание: Если вы используете PostgreSQL с , никогда не обновляйте его до новой мажорной версии без проверки совместимости. Например, переход с PostgreSQL 12 на 16 может потребовать пересоздания базы через pg_upgrade, что не всегда проходит гладко.

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

Можно ли использовать MySQL или MariaDB с 1С?

Нет, 1С:Предприятие официально не поддерживает MySQL или MariaDB. Хотя технически можно попробовать подключиться через ODBC, это приведёт к ошибкам при работе с транзакциями, временными таблицами и некоторыми типами данных. Если вам нужен бесплатный SQL-сервер, лучше выбрать PostgreSQL.

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

Для SQL Server Standard с базой до 200 ГБ рекомендуется:

  • 🖥️ CPU: 8 ядер (лучше Intel Xeon или AMD EPYC).
  • 💾 RAM: 32 ГБ (из них 20 ГБ выделить под SQL Server).
  • 💿 Диски: SSD NVMe для файлов базы и лога (минимум 500 ГБ).
  • 🌐 Сеть: 1 Гбит/с (для распределённых баз лучше 10 Гбит/с).

Если бюджет ограничен, можно начать с 4 ядер и 16 ГБ RAM, но тогда придётся тщательно оптимизировать запросы.

Что делать, если после миграции на PostgreSQL 1С стала работать медленнее?

Возможные причины и решения:

  1. Не хватает памяти: Увеличьте shared_buffers до 25–30% от общего объёма RAM (но не более 8 ГБ для баз до 100 ГБ).
  2. Нет индексов: В PostgreSQL индексы создаются иначе, чем в SQL Server. Проверьте их через \d таблица в psql.
  3. Проблемы с планировщиком: Выполните ANALYZE; для обновления статистики.
  4. Не установлено расширение 1c_md: Без него некоторые запросы работают в 5–10 раз медленнее.

Также проверьте настройки postgresql.conf:

effective_cache_size = 16GB # ~75% от доступной RAM

work_mem = 16MB # Для сложных сортировок

maintenance_work_mem = 1GB # Для VACUUM и CREATE INDEX

Можно ли использовать SQL Server Express для 1С с 30 пользователями?

Технически да, но с оговорками:

  • 🔹 База не должна превышать 10 ГБSQL Server Express это жёсткое ограничение).
  • 🔹 Максимально используемый объём RAM — 1,4 ГБ, что может привести к тормозам.
  • 🔹 Нет SQL Agent, поэтому автоматические задачи (например, бэкапы) придётся настраивать через Планировщик заданий Windows.

Если у вас 30 пользователей, но база небольшая (до 5 ГБ) и нагрузка в основном OLTP (торговля, кассовые операции), то Express может подойти. Но для бухгалтерии или аналитики лучше выбрать Standard.

<