На чём хранит данные 1С:Предприятие 8.3 и какую базу данных выбрать

· 10 мин

Содержание

У 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 — для очень больших нагрузок и особых требований к отказоустойчивости.

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

  1. Ограничьте память SQL Server (Max server memory), чтобы осталось место системе и рабочим процессам 1С, если они на той же машине.
  2. Установите степень параллелизма Max degree of parallelism = 1 — это классическая рекомендация для 1С.
  3. Создайте пользователя SQL с правами на создание баз (роль dbcreator) или выдайте права на конкретную базу.
  4. Выберите модель восстановления. Simple — проще, но восстановить можно только на момент полной копии. Full — нужна для восстановления на любой момент, но требует регулярного бэкапа журнала транзакций.
  5. Настройте план обслуживания: резервные копии, обновление статистики, перестроение индексов.

В модели 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_size 50–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 ServerPostgreSQL
БлокировкиТаблица целикомЗаписи (управляемые блокировки)Записи (управляемые блокировки)
Одновременных пользователейЕдиницыСотни и большеСотни и больше
Скорость «из коробки»Высокая на малой базеХорошаяСредняя, нужна настройка
После тонкой настройкиНе настраиваетсяВысокаяСопоставима с MS SQL
Стоимость СУБД0Лицензии сервера и CAL или ядер0 (или платная поддержка дистрибутива)
Резервное копированиеКопия каталога, .dtСредствами SQL Serverpg_dump, pg_basebackup

Несколько наблюдений из практики:

  • 📈 на одном пользователе и маленькой базе файловый вариант нередко быстрее серверного: нет сетевых переходов между клиентом, сервером 1С и СУБД;
  • 📈 при росте числа пользователей выигрыш серверных СУБД становится заметным именно за счёт блокировок на уровне записей;
  • 📈 PostgreSQL без настройки часто медленнее MS SQL на типовых операциях, после настройки разница обычно сокращается до незаметной для пользователей;
  • 📈 масштабирование клиент-серверного варианта идёт в двух местах: сервер 1С (можно добавлять рабочие серверы в кластер) и сервер СУБД (память, быстрые SSD, процессор).

Самое частое узкое место — не СУБД, а диск. Перенос базы на NVMe-накопитель даёт больше, чем смена MS SQL на PostgreSQL или обратно.

Перенос базы 1С из файла на SQL-сервер и между СУБД

Универсальный способ сменить СУБД — выгрузка и загрузка файла .dt. Он одинаково работает для перехода «файл → SQL», «MS SQL → PostgreSQL» и обратно.

Шаг 1. Выгрузите базу

  1. Попросите пользователей выйти из базы и откройте её в Конфигураторе.
  2. Выберите Администрирование → Выгрузить информационную базу.
  3. Сохраните файл .dt на диск. Проверьте, что размер не нулевой.

Шаг 2. Создайте пустую базу на сервере

  1. В окне запуска 1С нажмите Добавить → Создание новой информационной базы → Создание информационной базы без конфигурации.
  2. Выберите тип расположения На сервере 1С:Предприятия.
  3. Заполните поля: кластер серверов , имя базы в кластере, тип СУБД, сервер баз данных, имя базы данных, пользователь и пароль сервера БД.
  4. Отметьте Создать базу данных в случае ее отсутствия.

Ту же операцию можно сделать в консоли администрирования серверов 1С: в ветке кластера откройте Информационные базы и создайте новую.

Шаг 3. Загрузите данные

  1. Откройте новую базу в Конфигураторе.
  2. Выберите Администрирование → Загрузить информационную базу и укажите файл .dt.
  3. Дождитесь окончания загрузки и проверьте запуск в режиме 1С:Предприятие.

Загрузка .dt полностью заменяет содержимое базы-приёмника. Не загружайте файл в рабочую базу «по ошибке» — данные в ней пропадут.

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

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

Переезд крупной базы между двумя SQL-СУБД иногда делают и средствами самих СУБД, но для смены движка (MS SQL ↔ PostgreSQL) надёжнее именно .dt: платформа сама создаст структуру таблиц под нужную СУБД.

Как выбрать СУБД для 1С и обслуживать её

Выбор удобно свести к нескольким вопросам.

Какой вариант базы вам подходит?

Сколько стоит переход на клиент-серверный вариант

Ориентировочно бюджет складывается из трёх частей:

  • 💰 лицензия сервера 1С:Предприятия — обычная x64-версия стоит порядка сотни тысяч рублей, КОРП заметно дороже;
  • 💰 лицензия СУБД — PostgreSQL бесплатен, MS SQL Server Standard обходится в сотни тысяч рублей в зависимости от схемы лицензирования;
  • 💰 железо и работа администратора — сервер с запасом памяти и SSD, настройка, планы обслуживания.

Клиентские лицензии 1С нужны в любом варианте, их количество от выбора СУБД не меняется.

Регулярное обслуживание

ЗадачаФайловаяMS SQLPostgreSQL
Резервная копияКопия каталога вне рабочего времени или .dtПолный бэкап + журналpg_dump или физическая копия
Статистика—Ежедневное обновлениеANALYZE (autovacuum)
Индексы—Еженедельное перестроениеREINDEX по необходимости
Проверка целостностиchdbfl.exeDBCC CHECKDBПроверка восстановлением копии

.dt — не замена штатному бэкапу СУБД для серверной базы: на большой базе выгрузка идёт долго, а восстановление на точный момент времени даёт только резервирование средствами СУБД.

Частые ошибки при выборе и смене СУБД

  • ❌ Держать файловую базу в общей папке и пускать туда 15 человек. Блокировки и риск повреждения растут вместе с числом пользователей. Это сигнал к переходу на сервер.
  • ❌ Ставить «обычный» PostgreSQL из репозитория дистрибутива. Без патчей для 1С база либо не создастся, либо будет работать медленно и с ошибками.
  • ❌ Оставлять настройки PostgreSQL по умолчанию. Отсюда большинство жалоб «на PostgreSQL 1С тормозит».
  • ❌ Запускать продуктив на SQL Server Express. Лимит 10 ГБ на базу рано или поздно наступит — обычно в момент закрытия года.
  • ❌ Выбирать СУБД по чужому бенчмарку. Тест на другой конфигурации и другом железе мало что говорит о вашей базе. Проверьте на копии своей базы.

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

Можно ли перейти с MS SQL на PostgreSQL без потери данных?
Да. Выгрузите базу в .dt, создайте новую базу на сервере 1С с типом СУБД PostgreSQL и загрузите файл. Данные и конфигурация переносятся полностью.
Нужен ли сервер 1С, если я поставил MS SQL Server?
Да. Клиент 1С не подключается к SQL Server напрямую. Между ними всегда стоит сервер 1С:Предприятия, и на него нужна отдельная лицензия.
Сколько пользователей выдерживает файловая база?
Жёсткого лимита платформа не ставит. На практике комфортно работают 3–5 человек, при 10 и больше начинаются ожидания на блокировках.
Какая СУБД быстрее для 1С: MS SQL или PostgreSQL?
После грамотной настройки разница для пользователей обычно незаметна. Без настройки MS SQL, как правило, быстрее. Важнее СУБД — диски, память и обслуживание базы.
Можно ли запустить сервер 1С и СУБД на одном компьютере?
Можно, так делают в небольших компаниях. Ограничьте память СУБД, чтобы её хватало рабочим процессам 1С, и следите за загрузкой диска.