MS SQL или PostgreSQL под 1С:Предприятие: что ставить в маленькой фирме и в холдинге

· 10 мин

Содержание

Для 1С 8.3 в клиент-серверном режиме на практике выбирают между двумя СУБД: Microsoft SQL Server и PostgreSQL в сборке для 1С. Если у вас уже есть легальный MS SQL и Windows-инфраструктура — оставайтесь на нём. Если покупаете с нуля, работаете с госзаказчиками или хотите сервер на Linux — берите PostgreSQL: он бесплатный, а на типовых нагрузках до сотни пользователей разница в скорости почти не заметна.

MySQL и MariaDB платформа 1С как СУБД для информационной базы не поддерживает вообще. Кроме MS SQL и PostgreSQL официально поддерживаются ещё IBM Db2 и Oracle Database, но в российских внедрениях они встречаются редко. Дальше — как сравнить варианты по деньгам, скорости и сопровождению и не ошибиться при установке.

На что смотреть при выборе СУБД для 1С

Скорость — не единственный и даже не главный критерий. Сначала стоит ответить на пять вопросов.

  • 💰 Стоимость владения. Лицензия СУБД, лицензия операционной системы, лицензия сервера 1С и время администратора. Лицензия сервера 1С нужна при любой СУБД, её цена от выбора базы данных не зависит.
  • 🐧 Операционная система. MS SQL живёт на Windows Server (версии для Linux есть, но в связке с 1С встречаются редко). PostgreSQL стабильнее и быстрее работает на Linux, хотя на Windows тоже ставится.
  • 👥 Число пользователей и объём базы. Для пяти бухгалтеров с базой на 10 ГБ подойдёт что угодно. Для 300 пользователей ERP с базой на 1 ТБ решают настройка, железо и опыт администратора.
  • 🛠 Кто будет сопровождать. Администратор, который десять лет обслуживает MS SQL, сделает на нём больше, чем на «модном» PostgreSQL, который видит впервые.
  • 📜 Требования к импортозамещению. Госсектору и субъектам КИИ иностранное ПО закупать нельзя или нежелательно (ПП РФ № 1236, Указ № 166). Для них вопрос выбора фактически закрыт.

Перед выбором СУБД проверьте, не хватит ли файлового режима. Для 3–5 пользователей в локальной сети с базой до нескольких гигабайт файловая база проще и не требует ни сервера 1С, ни SQL. Переходить на SQL имеет смысл, когда пользователи начинают ждать блокировок, база растёт или нужна работа через интернет без терминала.

Microsoft SQL Server под 1С: проверенный вариант с юридическими оговорками

MS SQL много лет был стандартом для 1С. Под него написано большинство методик по оптимизации, его планировщик запросов хорошо справляется с тяжёлыми отчётами типовых конфигураций, а инструменты администрирования (SQL Server Management Studio, планы обслуживания, агент) понятны любому Windows-администратору.

Сильные стороны

  • ✅ Предсказуемая производительность «из коробки» — без глубокой настройки.
  • ✅ Удобные планы обслуживания: резервные копии, перестроение индексов, обновление статистики настраиваются мастером.
  • ✅ Огромная база знаний по связке «1С + MS SQL» у специалистов по производительности.

Ограничения и риски

  • ⚠️ С 2022 года Microsoft не продаёт лицензии в России напрямую. Купить новую легальную лицензию сложно, продление и обновление версий тоже под вопросом. Уже купленные лицензии продолжают действовать.
  • ⚠️ Редакция Express бесплатная, но с жёсткими лимитами: база данных до 10 ГБ, одна физическая процессорная сокета (до 4 ядер) и ограничение памяти под буферный кэш. Для небольшой фирмы на первое время хватит, но когда бухгалтерская база перевалит за 10 ГБ, она просто перестанет принимать данные.
  • ⚠️ Нужна ещё и лицензия Windows Server с клиентскими лицензиями доступа.

Настройки, которые нужны именно для 1С

  1. Максимальная степень параллелизма (MAXDOP). Для 1С традиционно ставят 1: типовые запросы платформы короткие, а параллельные планы на них часто дают ожидания и взаимные блокировки. Параметр задаётся в свойствах сервера на вкладке «Дополнительно».
  2. Ограничение памяти. В свойствах сервера на вкладке «Память» задайте Maximum server memory так, чтобы операционной системе и серверу 1С (если он на той же машине) осталось 15–25% RAM. Без ограничения SQL заберёт всю память, и рабочие процессы 1С начнут уходить в своп.
  3. Модель восстановления. Если вы не делаете бэкапы журнала транзакций, ставьте Simple. При модели Full без резервного копирования журнала файл .ldf растёт, пока не займёт весь диск.
  4. Смещение дат. При создании базы в консоли кластера для MS SQL указывается «Смещение дат» — 0 или 2000. Выберите 2000: тип datetime в MS SQL не хранит даты раньше 1753 года, а со смещением такие даты из 1С пишутся без ошибок. Менять смещение у существующей базы нельзя — только перезагрузкой через .dt.
  5. TempDB на быстром диске. 1С активно пользуется временными таблицами. Вынесите tempdb на SSD и разбейте на несколько файлов одинакового размера.

PostgreSQL для 1С 8.3: бесплатно, но только в правильной сборке

PostgreSQL — главный выбор новых внедрений последних лет. Лицензия бесплатная, сервер ставится на Linux, проблем с санкциями нет. Но есть нюанс, о котором часто забывают.

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

СборкаГде взятьСтоимостьДля кого
PostgreSQL для 1С от фирмы 1СПортал релизов для владельцев лицензийБесплатноМалый и средний бизнес
Postgres Pro Standard / Enterprise (сборки для 1С)Компания Postgres ProfessionalПлатно, есть в реестре российского ПОГоссектор, крупные базы, нужна поддержка
Сборки от других российских вендоровСайты вендоровОбычно бесплатноЕсли нужен конкретный дистрибутив Linux

Версию сборки сверяйте со списком поддерживаемых СУБД для вашей версии платформы: слишком свежая или слишком старая СУБД может не запуститься с сервером 1С.

Что настроить после установки

Конфигурация по умолчанию рассчитана на машину с минимумом памяти, для 1С её надо поправить в postgresql.conf. Ориентиры для выделенного сервера с 32 ГБ RAM:

shared_buffers = 8GB            # около 25% памяти
effective_cache_size = 22GB     # 2/3-3/4 памяти: подсказка планировщику
work_mem = 64MB                 # на одну операцию сортировки/хеширования
maintenance_work_mem = 1GB      # для VACUUM и построения индексов
max_connections = 500           # с запасом под сеансы 1С

Изменение shared_buffers и max_connections вступает в силу только после перезапуска службы PostgreSQL. Перезапуск обрывает все сеансы 1С — делайте это вне рабочего времени, предупредив пользователей.

Отдельно следите за автоочисткой (autovacuum). Если её отключить или зажать, таблицы раздуваются, и через пару месяцев база «вдруг» начинает тормозить. Для 1С её не выключают, а наоборот делают агрессивнее на больших таблицах.

Ставьте PostgreSQL на Linux, даже если сервер 1С остаётся на Windows. На Linux СУБД стабильнее работает с большим числом соединений и лучше использует файловый кэш.

MariaDB, MySQL и другие СУБД: что поддерживает платформа

Короткий ответ: MySQL и MariaDB хранить информационную базу 1С не могут. В консоли кластера при создании базы просто нет такого типа СУБД. Список поддерживаемых платформой 8.3 вариантов:

  • 🟦 Microsoft SQL Server — тип MSSQLServer;
  • 🐘 PostgreSQL (сборки для 1С) — тип PostgreSQL;
  • 🔷 IBM Db2 — тип IBMDB2;
  • 🟥 Oracle Database — тип OracleDatabase.

Плюс файловый режим, где база — это один файл 1Cv8.1CD и SQL-сервер не нужен.

Где же тогда встречаются MySQL и MariaDB рядом с 1С? В двух сценариях:

  1. Внешние источники данных. Объект конфигурации «Внешние источники данных» подключается к таблицам другой СУБД через ODBC. Так 1С читает, например, базу интернет-магазина на MySQL. Хранить в такой СУБД саму информационную базу нельзя.
  2. Обмен с сайтом. Сайт на MySQL обменивается с 1С через файлы, веб-сервисы или HTTP-сервисы. Сама 1С при этом работает на своей СУБД.

Oracle и Db2 на практике выбирают только там, где они уже стоят как корпоративный стандарт и есть свои администраторы. Для России после ухода вендоров это тупиковые варианты: лицензии и поддержку получить сложно, специалистов по связке с 1С мало.

Скорость и масштабирование: чем отличаются SQL-серверы на практике

Публичных честных бенчмарков «MS SQL против PostgreSQL на 1С» мало, а результаты сильно зависят от конфигурации, железа и настроек. Поэтому вместо процентов — наблюдения, которые повторяются от проекта к проекту.

ПараметрMS SQL ServerPostgreSQL для 1С
Работа без настройкиХорошаяСредняя, нужен тюнинг postgresql.conf
Тяжёлые отчёты с множеством соединений таблицКак правило, быстрееБывают «провалы» на отдельных запросах
Проведение документов, короткие транзакцииСопоставимоСопоставимо
Много одновременных соединенийХорошоХорошо на Linux, хуже на Windows
ОбслуживаниеПланы обслуживания мастеромСкрипты: vacuumdb, pg_dump, cron
Стоимость лицензииВысокая, покупка затрудненаБесплатно (или подписка на Postgres Pro)
ИмпортозамещениеНе подходитПодходит

Главный вывод: до 50–100 пользователей узким местом почти всегда оказывается не СУБД, а диск, память и неоптимальные запросы в самой конфигурации. Быстрый NVMe-диск под базу и журнал даст больше, чем смена MS SQL на PostgreSQL или обратно.

При росте нагрузки масштабирование идёт по одному сценарию у обеих СУБД:

  1. Выносим СУБД и сервер 1С на разные машины.
  2. Добавляем память, чтобы горячие данные помещались в кэш СУБД.
  3. Разносим базу, журнал транзакций и временные файлы по разным быстрым дискам.
  4. Добавляем рабочие серверы в кластер 1С — это уже масштабирование на стороне 1С, а не СУБД.

Если отдельный отчёт на PostgreSQL выполняется заметно дольше, чем на MS SQL, сначала проверьте, что статистика актуальна: выполните ANALYZE по базе. Частая причина «тормозов» после переноса — база загружена из .dt, а статистика по таблицам ещё не собрана.

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

Какая у вас ситуация?

Ориентиры по бюджету (примерно, без учёта железа):

  • 💵 Лицензия сервера 1С (обычная, не КОРП) — порядка 80–100 тыс. руб., нужна при любой СУБД.
  • 💵 PostgreSQL для 1С — 0 руб. Postgres Pro Standard — по подписке, цену запрашивают у вендора.
  • 💵 MS SQL Server Standard — до 2022 года сотни тысяч рублей за ядра или сервер с клиентскими лицензиями; сейчас официальной покупки в России нет.
  • 💵 Linux — бесплатный дистрибутив или платный российский (Astra, РЕД ОС) для тех, кому нужен реестр.

Как перейти с MS SQL на PostgreSQL и обратно

Переход между СУБД делается средствами 1С, без конвертеров на уровне SQL. Порядок такой:

  1. Установите новую СУБД и проверьте, что её версия поддерживается вашей платформой.
  2. В рабочей базе откройте Конфигуратор и выгрузите базу: Администрирование → Выгрузить информационную базу (файл .dt). Выгрузка требует монопольного доступа — попросите всех выйти из базы.
  3. В консоли администрирования серверов 1С создайте новую информационную базу с типом СУБД PostgreSQL (или MSSQLServer), укажите сервер БД, имя базы, пользователя и отметьте флажок «Создать базу данных в случае ее отсутствия».
  4. Откройте новую базу в Конфигураторе и загрузите файл: Администрирование → Загрузить информационную базу.
  5. Проверьте работу: откройте ключевые отчёты, проведите тестовый документ, запустите регламентные задания.
  6. Переключите пользователей на новую базу в списке баз и отключите регламентные задания в старой, чтобы они не работали параллельно.

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

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

Перед запуском базы на новой СУБД
Выполнено: 0 / 6

Частые вопросы

Можно ли запустить 1С 8.3 на MySQL или MariaDB?
Нет. Платформа не поддерживает эти СУБД для хранения информационной базы. Подключиться к ним можно только как к внешнему источнику данных через ODBC.
Нужна ли лицензия сервера 1С, если СУБД бесплатная?
Да. Лицензия сервера 1С нужна для клиент-серверного режима при любой СУБД, включая PostgreSQL и MS SQL Express.
Можно ли поставить сервер 1С и СУБД на один компьютер?
Можно, для 20–30 пользователей это обычная схема. Ограничьте память СУБД, чтобы рабочим процессам 1С хватало оперативки.
Работает ли 1С на MS SQL Server Express?
Работает, но база ограничена 10 ГБ, а СУБД использует лишь часть процессора и памяти. Подходит для небольших баз и тестовых стендов.
Как узнать, на какой СУБД работает база?
Откройте консоль администрирования серверов 1С, найдите базу в списке информационных баз кластера и посмотрите её свойства: там указаны тип СУБД, сервер и имя базы данных.

Источники

  • Постановление Правительства РФ от 16.11.2015 № 1236
  • Указ Президента РФ от 30.03.2022 № 166