MS SQL или PostgreSQL под 1С:Предприятие: что ставить в маленькой фирме и в холдинге
Содержание
Для 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С
- Максимальная степень параллелизма (MAXDOP). Для 1С традиционно ставят
1: типовые запросы платформы короткие, а параллельные планы на них часто дают ожидания и взаимные блокировки. Параметр задаётся в свойствах сервера на вкладке «Дополнительно». - Ограничение памяти. В свойствах сервера на вкладке «Память» задайте
Maximum server memoryтак, чтобы операционной системе и серверу 1С (если он на той же машине) осталось 15–25% RAM. Без ограничения SQL заберёт всю память, и рабочие процессы 1С начнут уходить в своп. - Модель восстановления. Если вы не делаете бэкапы журнала транзакций, ставьте
Simple. При моделиFullбез резервного копирования журнала файл.ldfрастёт, пока не займёт весь диск. - Смещение дат. При создании базы в консоли кластера для MS SQL указывается «Смещение дат» —
0или2000. Выберите2000: типdatetimeв MS SQL не хранит даты раньше 1753 года, а со смещением такие даты из 1С пишутся без ошибок. Менять смещение у существующей базы нельзя — только перезагрузкой через.dt. - 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С? В двух сценариях:
- Внешние источники данных. Объект конфигурации «Внешние источники данных» подключается к таблицам другой СУБД через ODBC. Так 1С читает, например, базу интернет-магазина на MySQL. Хранить в такой СУБД саму информационную базу нельзя.
- Обмен с сайтом. Сайт на MySQL обменивается с 1С через файлы, веб-сервисы или HTTP-сервисы. Сама 1С при этом работает на своей СУБД.
Oracle и Db2 на практике выбирают только там, где они уже стоят как корпоративный стандарт и есть свои администраторы. Для России после ухода вендоров это тупиковые варианты: лицензии и поддержку получить сложно, специалистов по связке с 1С мало.
Скорость и масштабирование: чем отличаются SQL-серверы на практике
Публичных честных бенчмарков «MS SQL против PostgreSQL на 1С» мало, а результаты сильно зависят от конфигурации, железа и настроек. Поэтому вместо процентов — наблюдения, которые повторяются от проекта к проекту.
| Параметр | MS SQL Server | PostgreSQL для 1С |
|---|---|---|
| Работа без настройки | Хорошая | Средняя, нужен тюнинг postgresql.conf |
| Тяжёлые отчёты с множеством соединений таблиц | Как правило, быстрее | Бывают «провалы» на отдельных запросах |
| Проведение документов, короткие транзакции | Сопоставимо | Сопоставимо |
| Много одновременных соединений | Хорошо | Хорошо на Linux, хуже на Windows |
| Обслуживание | Планы обслуживания мастером | Скрипты: vacuumdb, pg_dump, cron |
| Стоимость лицензии | Высокая, покупка затруднена | Бесплатно (или подписка на Postgres Pro) |
| Импортозамещение | Не подходит | Подходит |
Главный вывод: до 50–100 пользователей узким местом почти всегда оказывается не СУБД, а диск, память и неоптимальные запросы в самой конфигурации. Быстрый NVMe-диск под базу и журнал даст больше, чем смена MS SQL на PostgreSQL или обратно.
При росте нагрузки масштабирование идёт по одному сценарию у обеих СУБД:
- Выносим СУБД и сервер 1С на разные машины.
- Добавляем память, чтобы горячие данные помещались в кэш СУБД.
- Разносим базу, журнал транзакций и временные файлы по разным быстрым дискам.
- Добавляем рабочие серверы в кластер 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. Порядок такой:
- Установите новую СУБД и проверьте, что её версия поддерживается вашей платформой.
- В рабочей базе откройте Конфигуратор и выгрузите базу:
Администрирование → Выгрузить информационную базу(файл.dt). Выгрузка требует монопольного доступа — попросите всех выйти из базы. - В консоли администрирования серверов 1С создайте новую информационную базу с типом СУБД
PostgreSQL(илиMSSQLServer), укажите сервер БД, имя базы, пользователя и отметьте флажок «Создать базу данных в случае ее отсутствия». - Откройте новую базу в Конфигураторе и загрузите файл:
Администрирование → Загрузить информационную базу. - Проверьте работу: откройте ключевые отчёты, проведите тестовый документ, запустите регламентные задания.
- Переключите пользователей на новую базу в списке баз и отключите регламентные задания в старой, чтобы они не работали параллельно.
Не удаляйте старую базу сразу. Держите её хотя бы пару недель: если на новой СУБД вылезет проблема с каким-то отчётом или обменом, будет к чему вернуться.
Загрузка .dt большой базы может занять несколько часов. Планируйте переход на выходные и прогоните его сначала на копии, чтобы знать точное время.
Частые вопросы
Можно ли запустить 1С 8.3 на MySQL или MariaDB?
Нужна ли лицензия сервера 1С, если СУБД бесплатная?
Можно ли поставить сервер 1С и СУБД на один компьютер?
Работает ли 1С на MS SQL Server Express?
Как узнать, на какой СУБД работает база?
Источники
- Постановление Правительства РФ от 16.11.2015 № 1236
- Указ Президента РФ от 30.03.2022 № 166