На чём хранить базу 1С: сравнение СУБД и выбор под задачу
Содержание
1С:Предприятие 8.3 работает в двух вариантах. Файловый хранит всю базу в одном файле 1Cv8.1CD и отдельной СУБД не требует. Клиент-серверный использует внешнюю СУБД: Microsoft SQL Server, PostgreSQL, IBM Db2 или Oracle Database. На практике выбор почти всегда стоит между тремя вариантами: файл, MS SQL или PostgreSQL.
Файловую базу берут, когда пользователей мало и нет сервера. MS SQL — когда есть Windows-инфраструктура и бюджет на лицензии. PostgreSQL — когда нужна бесплатная СУБД, Linux или требования импортозамещения. Db2 и Oracle встречаются редко, обычно там, где эта СУБД уже стоит в компании.
Файловый вариант: когда базе 1С не нужна отдельная СУБД
Файловая база — это каталог с файлом 1Cv8.1CD и служебными файлами. Движок данных встроен в саму платформу. Ставить и настраивать ничего не нужно: скопировали каталог, добавили базу в список — работаете.
✅ Плюсы:
- 💰 бесплатно: нужны только клиентские лицензии 1С;
- ⚡ быстрая установка и простое резервное копирование — копия каталога при закрытой базе;
- 🧳 базу легко перенести на флешку или другой компьютер.
❌ Минусы:
- 👥 при одновременной работе нескольких человек растут блокировки, тормоза начинаются при проведении документов и закрытии месяца;
- 🌐 работа по сети через общую папку чувствительна к качеству сети, обрыв может повредить файл;
- 📈 большой файл (десятки гигабайт) работает заметно медленнее, а проверка и восстановление занимают часы;
- 🔧 нет механизмов СУБД: журнала транзакций, точечного восстановления на момент времени, распределения нагрузки.
Ориентир из практики: файловый вариант комфортен для 1–5 одновременных пользователей и базы до нескольких гигабайт. Жёсткого лимита на число пользователей нет, но после 5–10 человек, работающих одновременно, переход на клиент-сервер обычно окупается.
Файловую базу можно опубликовать на веб-сервере и работать через тонкий или веб-клиент. Это снимает проблему «общей папки по сети», но не снимает ограничения самого файлового движка.
MS SQL Server для 1С: когда его выбирают
Microsoft SQL Server — исторически самая распространённая СУБД для 1С. Большинство администраторов и консультантов знают её лучше всего, а платформа на ней ведёт себя предсказуемо без глубокой донастройки.
Что нужно для работы:
- 🖥 сервер 1С:Предприятия (служба агента сервера) и лицензия на него;
- 🗄 установленный SQL Server на Windows (SQL Server для Linux 1С тоже поддерживает, но встречается реже);
- 🔑 лицензии на сам SQL Server — по ядрам или «сервер + клиентские лицензии».
Редакции:
| Редакция | Для чего подходит | Ограничения |
|---|---|---|
| Express | тест, маленькая база | размер одной базы до 10 ГБ, ограничение по памяти и ядрам |
| Standard | рабочие базы малого и среднего бизнеса | ограничение по объёму используемой памяти и числу ядер |
| Enterprise | крупные нагруженные системы | без существенных ограничений, самая дорогая |
С 2022 года официально купить лицензии Microsoft в России сложно. Компании с действующими лицензиями продолжают работать, новые проекты всё чаще уходят на PostgreSQL.
Настройки, которые администратор делает сразу после установки:
- Задать параметр
max server memory, чтобы SQL Server не забрал всю память у сервера 1С на той же машине. - Выбрать модель восстановления.
Simple— если хватает ежедневной полной копии.Full— только вместе с регулярными копиями журнала транзакций. - Настроить план обслуживания: обновление статистики, реорганизацию индексов, резервное копирование.
- При создании базы из консоли кластера указать сопоставление
Cyrillic_General_CI_AS(так же создаёт базу и сама 1С, если её не создавали вручную).
PostgreSQL в 1С: бесплатная СУБД с оговорками
PostgreSQL бесплатна, работает на Linux и Windows и входит в реестры для импортозамещения в сборке Postgres Pro. Для бюджетных организаций и госсектора это часто единственный реальный вариант.
Обычный PostgreSQL из репозитория дистрибутива для 1С не подходит. Платформе нужны дополнительные расширения (например, тип mchar и функции для временных таблиц). Используют одну из сборок:
- 📦 PostgreSQL от фирмы «1С» — выкладывается вместе с дистрибутивами платформы для пользователей с подпиской ИТС;
- 📦 Postgres Pro Standard или Enterprise — сборки компании Postgres Professional с поддержкой 1С.
Перед установкой сверьте версию: каждая версия платформы поддерживает определённые версии PostgreSQL. Список приводится в требованиях к платформе и в описании сборки.
Что важно в настройке:
- ⚙️ параметры памяти (
shared_buffers,work_mem,effective_cache_size) по умолчанию рассчитаны на слабую машину. Без их подбора под объём ОЗУ база работает в разы медленнее, чем могла бы; - 🌍 кластер баз создают с русской локалью, например
ru_RU.UTF-8; - 🧹 нужен регулярный
VACUUMиANALYZE(автовакуум должен быть включён) и резервное копирование черезpg_dumpили физические копии.
PostgreSQL прощает меньше ошибок администрирования, чем MS SQL. Если в компании нет человека, который будет её настраивать и обслуживать, заложите бюджет на внешнего специалиста.
IBM Db2 и Oracle: редкие варианты для 1С
Платформа 8.3 поддерживает IBM Db2 и Oracle Database. Технически база 1С на них работает так же, как на MS SQL или PostgreSQL: структура таблиц создаётся платформой, запросы транслируются в SQL нужной СУБД.
Когда их выбирают:
- 🏢 в компании уже есть Oracle или Db2 с лицензиями, командой DBA и регламентами;
- 🔗 служба безопасности требует держать все данные на одной корпоративной СУБД.
Почему почти никто не выбирает их с нуля:
- 💸 лицензии Oracle и Db2 дороже MS SQL, а покупка в России сейчас ещё сложнее;
- 👨🔧 специалистов по 1С на этих СУБД мало, типовые советы по оптимизации написаны в основном для MS SQL и PostgreSQL;
- 🧪 проблемы конкретной связки «платформа + СУБД» дольше ищутся и исправляются.
Если вы не обязаны использовать Db2 или Oracle по политике компании, берите MS SQL или PostgreSQL.
Производительность СУБД в 1С: что влияет сильнее выбора движка
Вопрос «какая СУБД быстрее для 1С» обычно задают, когда база уже тормозит. Разница между MS SQL и PostgreSQL на правильно настроенном сервере есть, но она меньше, чем разница между настроенным и ненастроенным сервером.
Сравнение по практическим критериям:
| Критерий | Файловая | MS SQL Server | PostgreSQL |
|---|---|---|---|
| Пользователей одновременно | 1–5, редко до 10 | десятки и сотни | десятки и сотни |
| Стоимость СУБД | 0 | лицензии Microsoft | 0 (Postgres Pro — платно) |
| ОС сервера | любая, где есть 1С | Windows, реже Linux | Linux или Windows |
| Настройка «из коробки» | не нужна | работает прилично сразу | требует подбора параметров |
| Резервное копирование | копия каталога или .dt | средствами SQL, на момент времени | pg_dump, физические копии |
| Типичная слабость | блокировки при многопользовательской работе | стоимость лицензий | тяжёлые запросы без настройки |
Что реально определяет скорость базы:
- 💾 Диски. SSD/NVMe под файлы данных и журнал дают больше, чем смена СУБД.
- 🧠 Память. База и индексы должны по возможности помещаться в ОЗУ СУБД.
- 🔁 Обслуживание. Устаревшая статистика — частая причина внезапно медленных отчётов.
- 🧱 Код конфигурации. Запросы в цикле и тяжёлые доработки замедлят любую СУБД.
- 🌐 Сеть между сервером 1С и СУБД. Лучше ставить их на одну машину или в одну быструю сеть.
Для быстрой оценки «железа» администраторы используют тест Гилёва — он показывает условные попугаи производительности однопоточной работы. Для сравнения СУБД надёжнее прогнать одни и те же операции на копии своей базы: закрытие месяца , перепроведение за период, тяжёлый отчёт.
Как выбрать базу данных для 1С: алгоритм по шагам
- Посчитайте одновременных пользователей, а не всех, у кого есть доступ. До 5 — файловый вариант, больше 10 — клиент-сервер, между ними решают объём и нагрузка.
- Оцените рост базы. Если за год база вырастет с 2 до 20 ГБ, проще сразу ставить СУБД, чем потом переезжать в спешке.
- Проверьте лицензии 1С. Для клиент-серверного варианта нужна лицензия на сервер 1С:Предприятия (ПРОФ или КОРП). Клиентские лицензии остаются те же.
- Определите ОС сервера. Только Linux — значит PostgreSQL. Windows с лицензиями SQL Server — можно MS SQL.
- Учтите требования к ПО. Госзаказчикам и компаниям с требованиями импортозамещения подходит Postgres Pro.
- Решите, кто будет обслуживать. Нет администратора — либо файловый вариант, либо договор на сопровождение сервера.
- Проверьте совместимость версий платформы 1С и выбранной СУБД до покупки и установки.
Как узнать, на какой СУБД работает база, и как её перенести
Самый быстрый способ — посмотреть строку подключения в окне запуска 1С. Выделите базу в списке: внизу окна показан путь.
File="C:\Bases\Buh"— файловая база;Srvr="srv1c";Ref="buh"— клиент-серверная, база на сервереsrv1c.
Для клиент-серверной базы тип СУБД виден в консоли администрирования серверов 1С: откройте кластер → «Информационные базы» → свойства нужной базы. Там указаны тип СУБД, сервер баз данных и имя базы в СУБД. В самой программе информация о подключении есть в окне «О программе» (значок с вопросом в правом верхнем углу).
Перенос между любыми вариантами делается через выгрузку в файл .dt:
- Запустите базу в Конфигураторе и выполните
Администрирование → Выгрузить информационную базу. - Создайте новую базу нужного типа: файловую — в окне запуска, клиент-серверную — в консоли кластера или при добавлении базы в список с флагом создания базы в СУБД.
- Откройте новую базу в Конфигураторе:
Администрирование → Загрузить информационную базу, укажите файл.dt. - Проверьте открытие базы в пользовательском режиме, работу обменов, регламентных заданий и лицензий.
Выгрузка .dt требует монопольного доступа: все пользователи должны выйти из базы. Загрузка .dt полностью заменяет данные в целевой базе — проверьте, что загружаете не поверх рабочей.
Так же переезжают с MS SQL на PostgreSQL: прямой конвертации средствами самих СУБД 1С не предусматривает, используется .dt. Для больших баз выгрузка и загрузка занимают часы, переезд планируют на выходные.
Ошибки при выборе и настройке СУБД для 1С
max server memory, оставив память серверу 1С и ОС.Full без копий журнала транзакций. Настройте резервное копирование журнала или переведите базу в Simple, если восстановление на момент времени не нужно.shared_buffers, work_mem, выполните ANALYZE.Ещё две ошибки, которые дорого обходятся:
- 🗃 Нет резервных копий средствами СУБД. Копия
.dtраз в месяц — это не резервирование. Нужны ежедневные копии базы с проверкой восстановления. - 🧩 Сервер 1С и СУБД разнесены по медленной сети. Каждый запрос 1С — это много обращений к СУБД, сетевые задержки складываются в секунды.