На чём хранит данные 1С:Предприятие 8.3 и какую базу данных выбрать
Содержание
У 1С 8.3 своей «единственной» СУБД нет: платформа работает либо в файловом варианте со встроенным движком (вся база лежит в одном файле 1Cv8.1CD), либо в клиент-серверном — через сервер 1С:Предприятия и внешнюю СУБД. Из внешних поддерживаются Microsoft SQL Server, PostgreSQL, IBM Db2 и Oracle Database. На практике в России выбирают из трёх вариантов: файл, MS SQL или PostgreSQL.
Правило выбора короткое. До 5–10 одновременных пользователей и базы в пару гигабайт хватает файлового варианта. Дальше нужен сервер 1С и SQL-СУБД, а между MS SQL и PostgreSQL решают деньги, операционная система и опыт администратора.
Какие СУБД поддерживает 1С 8.3: общая карта
Конфигурация (Бухгалтерия, ЗУП, УТ, ERP) от выбора СУБД не зависит. Одну и ту же базу можно выгрузить из файла и загрузить на SQL-сервер — код и данные останутся прежними. Меняется только то, где и как платформа хранит таблицы.
| Вариант | Что нужно | Лицензия СУБД | Где обычно применяют |
|---|---|---|---|
| Файловый | Только клиент 1С | Не нужна | 1–10 пользователей, небольшие базы |
| MS SQL Server | Сервер 1С + SQL Server | Платная (Express — бесплатно, с лимитами) | Windows-инфраструктура, средние и крупные базы |
| PostgreSQL | Сервер 1С + сборка PostgreSQL для 1С | Бесплатная | Linux и Windows, импортозамещение |
| IBM Db2 | Сервер 1С + Db2 | Платная | Единичные внедрения |
| Oracle Database | Сервер 1С + Oracle | Платная | Единичные внедрения |
Тип конкретной базы виден в окне запуска: выделите базу — внизу окна будет строка вида File="D:\Base\Buh" (файловая) или Srvr="server1c";Ref="buh" (серверная).
Файловая база 1С: встроенная СУБД и её пределы
Файловый вариант — это собственный движок платформы. Вся информационная база, включая конфигурацию и данные, хранится в файле 1Cv8.1CD в каталоге базы. Рядом лежат служебные файлы, например 1Cv8.cfl и журналы.
Плюсы понятны:
- ✅ ничего не нужно устанавливать, кроме клиента;
- ✅ копию делают простым копированием каталога (при закрытой базе);
- ✅ базу легко перенести на другой компьютер или флешку;
- ✅ нет затрат на лицензию сервера 1С и СУБД.
Минусы проявляются с ростом базы и числа людей:
- ⚠️ при записи блокируется таблица целиком, а не отдельные записи. Два бухгалтера проводят документы — один ждёт другого;
- ⚠️ при работе по сети каждый клиент читает файл по SMB, поэтому скорость упирается в сеть и файловый сервер;
- ⚠️ обрыв сети или питания во время записи может повредить файл
1Cv8.1CD; - ⚠️ тяжёлые операции (закрытие месяца , пересчёт итогов) идут на компьютере пользователя.
Повреждённую файловую базу
проверяют утилитой chdbfl.exe из каталога bin платформы или через Конфигуратор: Администрирование → Тестирование и исправление. Перед любым исправлением скопируйте каталог базы целиком.
Ориентир, когда файла становится мало: регулярно больше 5–10 пользователей одновременно, база перевалила за 5–10 ГБ, блокировки и «зависания» при проведении стали ежедневными. Цифры условные: десять человек, которые только смотрят отчёты, нагружают базу меньше, чем трое, которые массово проводят документы.
Microsoft SQL Server для 1С: когда выбирать и как настроить
MS SQL Server — исторически самая распространённая СУБД для 1С. Его выбирают, когда инфраструктура построена на Windows, есть администратор, знакомый с SQL Server, и бюджет на лицензии.
Схема работы клиент-серверного варианта: клиент обращается к агенту сервера 1С (порт 1540), тот направляет его к менеджеру кластера (1541) и рабочим процессам. Рабочие процессы сами ходят в SQL Server. Пользователь к СУБД напрямую не подключается.
Редакции SQL Server
- Express — бесплатная, но с ограничением 10 ГБ на одну базу данных и урезанным использованием памяти и процессора. Подходит для теста или маленькой базы.
- Standard — основной выбор для 1С в малом и среднем бизнесе.
- Enterprise — для очень больших нагрузок и особых требований к отказоустойчивости.
Что настроить после установки
- Ограничьте память SQL Server (
Max server memory), чтобы осталось место системе и рабочим процессам 1С, если они на той же машине. - Установите степень параллелизма
Max degree of parallelism = 1— это классическая рекомендация для 1С. - Создайте пользователя SQL с правами на создание баз (роль
dbcreator) или выдайте права на конкретную базу. - Выберите модель восстановления.
Simple— проще, но восстановить можно только на момент полной копии.Full— нужна для восстановления на любой момент, но требует регулярного бэкапа журнала транзакций. - Настройте план обслуживания: резервные копии, обновление статистики, перестроение индексов.
В модели Full без резервного копирования журнала файл .ldf растёт без остановки и однажды заполняет диск. База при этом перестаёт принимать запись.
PostgreSQL в 1С: бесплатная серверная СУБД
PostgreSQL сам по себе бесплатен, а для 1С это главный аргумент. Обычный «ванильный» PostgreSQL не подходит: нужна сборка с патчами под 1С. Такие сборки распространяет фирма 1С на портале поддержки, есть и коммерческие дистрибутивы, например Postgres Pro.
Что важно знать практику:
- 🐧 PostgreSQL работает и на Linux, и на Windows, но лучшие результаты обычно получают на Linux;
- 🧩 в сборках для 1С есть расширения
online_analyzeиplantuner. Они помогают планировщику с временными таблицами, которые 1С создаёт постоянно. Их включают вpostgresql.conf; - ⚙️ после установки параметры по умолчанию слишком скромные. Стартовые ориентиры:
shared_buffersоколо 25% ОЗУ,effective_cache_size50–75% ОЗУ,work_memв десятки мегабайт; - 🧹 автоочистка (
autovacuum) должна быть включена — без неё таблицы разбухают, а запросы замедляются.
Пример фрагмента postgresql.conf для сервера с 32 ГБ ОЗУ:
shared_buffers = 8GB
effective_cache_size = 24GB
work_mem = 64MB
maintenance_work_mem = 1GB
shared_preload_libraries = 'online_analyze, plantuner'
online_analyze.enable = on
online_analyze.table_type = 'temporary'
plantuner.fix_empty_table = on
Значения — отправная точка, а не готовый рецепт. Подбирайте их по нагрузке и проверяйте на копии базы. Изменение shared_buffers и shared_preload_libraries вступает в силу только после перезапуска службы PostgreSQL — все сеансы 1С при этом оборвутся, делайте это вне рабочего времени.
Сравнение производительности и масштабируемости СУБД для 1С
Честного «рейтинга скорости» не бывает: результат зависит от конфигурации, железа, настройки и характера нагрузки. Но общие закономерности есть.
| Критерий | Файловая | MS SQL Server | PostgreSQL |
|---|---|---|---|
| Блокировки | Таблица целиком | Записи (управляемые блокировки) | Записи (управляемые блокировки) |
| Одновременных пользователей | Единицы | Сотни и больше | Сотни и больше |
| Скорость «из коробки» | Высокая на малой базе | Хорошая | Средняя, нужна настройка |
| После тонкой настройки | Не настраивается | Высокая | Сопоставима с MS SQL |
| Стоимость СУБД | 0 | Лицензии сервера и CAL или ядер | 0 (или платная поддержка дистрибутива) |
| Резервное копирование | Копия каталога, .dt | Средствами SQL Server | pg_dump, pg_basebackup |
Несколько наблюдений из практики:
- 📈 на одном пользователе и маленькой базе файловый вариант нередко быстрее серверного: нет сетевых переходов между клиентом, сервером 1С и СУБД;
- 📈 при росте числа пользователей выигрыш серверных СУБД становится заметным именно за счёт блокировок на уровне записей;
- 📈 PostgreSQL без настройки часто медленнее MS SQL на типовых операциях, после настройки разница обычно сокращается до незаметной для пользователей;
- 📈 масштабирование клиент-серверного варианта идёт в двух местах: сервер 1С (можно добавлять рабочие серверы в кластер) и сервер СУБД (память, быстрые SSD, процессор).
Самое частое узкое место — не СУБД, а диск. Перенос базы на NVMe-накопитель даёт больше, чем смена MS SQL на PostgreSQL или обратно.
Перенос базы 1С из файла на SQL-сервер и между СУБД
Универсальный способ сменить СУБД — выгрузка и загрузка файла .dt. Он одинаково работает для перехода «файл → SQL», «MS SQL → PostgreSQL» и обратно.
Шаг 1. Выгрузите базу
- Попросите пользователей выйти из базы и откройте её в Конфигураторе.
- Выберите
Администрирование → Выгрузить информационную базу. - Сохраните файл
.dtна диск. Проверьте, что размер не нулевой.
Шаг 2. Создайте пустую базу на сервере
- В окне запуска 1С нажмите
Добавить → Создание новой информационной базы → Создание информационной базы без конфигурации. - Выберите тип расположения
На сервере 1С:Предприятия. - Заполните поля: кластер серверов , имя базы в кластере, тип СУБД, сервер баз данных, имя базы данных, пользователь и пароль сервера БД.
- Отметьте
Создать базу данных в случае ее отсутствия.
Ту же операцию можно сделать в консоли администрирования серверов 1С: в ветке кластера откройте Информационные базы и создайте новую.
Шаг 3. Загрузите данные
- Откройте новую базу в Конфигураторе.
- Выберите
Администрирование → Загрузить информационную базуи укажите файл.dt. - Дождитесь окончания загрузки и проверьте запуск в режиме 1С:Предприятие.
Загрузка .dt полностью заменяет содержимое базы-приёмника. Не загружайте файл в рабочую базу «по ошибке» — данные в ней пропадут.
Что проверить после переноса
Переезд крупной базы между двумя SQL-СУБД иногда делают и средствами самих СУБД, но для смены движка (MS SQL ↔ PostgreSQL) надёжнее именно .dt: платформа сама создаст структуру таблиц под нужную СУБД.
Как выбрать СУБД для 1С и обслуживать её
Выбор удобно свести к нескольким вопросам.
Сколько стоит переход на клиент-серверный вариант
Ориентировочно бюджет складывается из трёх частей:
- 💰 лицензия сервера 1С:Предприятия — обычная x64-версия стоит порядка сотни тысяч рублей, КОРП заметно дороже;
- 💰 лицензия СУБД — PostgreSQL бесплатен, MS SQL Server Standard обходится в сотни тысяч рублей в зависимости от схемы лицензирования;
- 💰 железо и работа администратора — сервер с запасом памяти и SSD, настройка, планы обслуживания.
Клиентские лицензии 1С нужны в любом варианте, их количество от выбора СУБД не меняется.
Регулярное обслуживание
| Задача | Файловая | MS SQL | PostgreSQL |
|---|---|---|---|
| Резервная копия | Копия каталога вне рабочего времени или .dt | Полный бэкап + журнал | pg_dump или физическая копия |
| Статистика | — | Ежедневное обновление | ANALYZE (autovacuum) |
| Индексы | — | Еженедельное перестроение | REINDEX по необходимости |
| Проверка целостности | chdbfl.exe | DBCC CHECKDB | Проверка восстановлением копии |
.dt — не замена штатному бэкапу СУБД для серверной базы: на большой базе выгрузка идёт долго, а восстановление на точный момент времени даёт только резервирование средствами СУБД.
Частые ошибки при выборе и смене СУБД
- ❌ Держать файловую базу в общей папке и пускать туда 15 человек. Блокировки и риск повреждения растут вместе с числом пользователей. Это сигнал к переходу на сервер.
- ❌ Ставить «обычный» PostgreSQL из репозитория дистрибутива. Без патчей для 1С база либо не создастся, либо будет работать медленно и с ошибками.
- ❌ Оставлять настройки PostgreSQL по умолчанию. Отсюда большинство жалоб «на PostgreSQL 1С тормозит».
- ❌ Запускать продуктив на SQL Server Express. Лимит 10 ГБ на базу рано или поздно наступит — обычно в момент закрытия года.
- ❌ Выбирать СУБД по чужому бенчмарку. Тест на другой конфигурации и другом железе мало что говорит о вашей базе. Проверьте на копии своей базы.
Частые вопросы
Можно ли перейти с MS SQL на PostgreSQL без потери данных?
.dt, создайте новую базу на сервере 1С с типом СУБД PostgreSQL и загрузите файл. Данные и конфигурация переносятся полностью.