Файловая база, MS SQL или PostgreSQL: на чём хранить данные 1С и как выбрать

· 11 мин

Содержание

1С:Предприятие 8.3 работает с базой данных в двух режимах. В файловом режиме платформа хранит всё в одном файле 1Cv8.1CD и обходится без отдельной СУБД. В клиент-серверном режиме данные лежат в одной из поддерживаемых СУБД: Microsoft SQL Server, PostgreSQL, IBM Db2 или Oracle Database. На практике в России выбирают между тремя вариантами: файл, MS SQL и PostgreSQL.

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

Какие СУБД поддерживает платформа 1С:Предприятие 8.3

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

ВариантЧто нужноГде встречается
📁 Файловый режимТолько платформа 1СНебольшие фирмы, ИП, бухгалтерия на 1-5 человек
🟦 Microsoft SQL ServerСервер 1С + MS SQLСредний и крупный бизнес, исторически самый частый выбор
🐘 PostgreSQLСервер 1С + PostgreSQL (сборка для 1С)Импортозамещение, Linux-серверы, экономия на лицензиях
IBM Db2, Oracle DatabaseСервер 1С + коммерческая СУБДРедкие проекты, где эта СУБД уже стоит у заказчика

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

Файловая база 1С: когда её хватает

Файловая информационная база — это каталог с файлом 1Cv8.1CD и служебными папками (кэш, индекс полнотекстового поиска, журнал регистрации). Работать с ней можно с одного компьютера или по сети через общую папку. Ещё один вариант — публикация на веб-сервере, тогда пользователи заходят через браузер или тонкий клиент.

Файловый вариант подходит, если:

  • 👤 с базой работают 1-5 человек одновременно;
  • 📦 объём базы — единицы гигабайт, без многолетней истории с тысячами документов в день;
  • 💰 нет бюджета на лицензию сервера 1С и администратора;
  • 🖥️ база лежит на SSD на том же компьютере или на быстром файловом сервере.

Проблемы начинаются с ростом нагрузки. Файл блокируется на запись целиком таблицами, поэтому при одновременном проведении документов пользователи ждут друг друга. По сети через общую папку каждый клиент сам читает файл, и медленная сеть или антивирус на файловом сервере резко замедляют работу.

Файловую базу нельзя держать на сетевом диске с нестабильным соединением или в папке, которую синхронизирует облачный клиент (Яндекс Диск, OneDrive и подобные). Обрыв на записи повреждает файл 1Cv8.1CD. Для проверки и исправления такой базы есть утилита chdbfl.exe в каталоге bin платформы и режим тестирования в Конфигураторе.

💡 Для файловой базы с 5-10 пользователями заметно помогает публикация на веб-сервере (Apache или IIS) на той же машине, где лежит файл. Тогда к файлу обращается только один процесс веб-сервера, а не десять клиентов по сети.

MS SQL Server для 1С: плюсы, редакции и настройка

Microsoft SQL Server много лет был основной СУБД для серверных баз 1С. Платформа с ним хорошо отлажена, большинство инструкций по администрированию и оптимизации написано именно под него.

Что даёт MS SQL:

  • 🔒 блокировки на уровне записей, а не таблиц, поэтому десятки пользователей проводят документы параллельно;
  • 💾 полноценное резервное копирование средствами СУБД, в том числе с журналом транзакций;
  • 🛠️ привычные инструменты: SQL Server Management Studio, планы обслуживания, профилировщик.

Редакции. Бесплатная редакция Express ограничена размером одной базы 10 ГБ, объёмом памяти под буферный пул и числом ядер. Для учебной или маленькой базы её хватает, для рабочей среды — редко. Для боевых задач берут Standard, для крупных кластеров — Enterprise.

Лицензирование у Microsoft строится по модели «на ядро» или «сервер + клиентские лицензии». Нужно помнить, что при работе через сервер 1С клиентские лицензии считаются по реальным пользователям 1С, а не по одному подключению сервера 1С. С 2022 года официальная покупка новых лицензий Microsoft в России затруднена — многие компании поэтому и переходят на PostgreSQL.

Что настроить при создании базы на MS SQL:

  1. Ограничьте память сервера SQL (параметр max server memory), чтобы осталось место под ОС и рабочие процессы 1С, если они на той же машине.
  2. Для баз, где не нужно восстановление на момент времени, выберите модель восстановления Simple. Для Full настройте регулярный бэкап журнала, иначе файл .ldf вырастет до размера диска.
  3. Настройте план обслуживания: обновление статистик ежедневно, перестроение индексов раз в неделю в нерабочее время.
  4. При добавлении базы в кластере 1С укажите смещение дат 2000. Это значение нужно именно для MS SQL, на PostgreSQL оставляют 0.

PostgreSQL для 1С: открытая альтернатива

PostgreSQL — свободная СУБД без платы за лицензию. Для 1С используют не «чистый» PostgreSQL из репозитория дистрибутива, а сборку с патчами для 1С. Её выпускает фирма 1С (распространяется пользователям с подпиской вместе с платформой) и компании-партнёры, например Postgres Professional.

Патчи нужны, потому что 1С ожидает от СУБД поведения, близкого к MS SQL. В сборку добавлены расширения, например mchar (строки фиксированной длины с нечувствительностью к регистру), fulleq, fasttrun, а также online_analyze и plantuner, которые помогают планировщику на временных таблицах. С обычным PostgreSQL создание базы 1С либо не пройдёт, либо база будет работать медленно.

СборкаЦенаКогда выбирают
PostgreSQL от фирмы 1СБесплатно для пользователей с подпискойБольшинство внедрений на 5-100 пользователей
Postgres Pro Standard / EnterpriseПлатная лицензияНужна техподдержка СУБД, отечественное ПО в реестре, крупные базы

Плюсы PostgreSQL для 1С: нет затрат на лицензию СУБД, хорошо работает на Linux (вместе с сервером 1С для Linux), нет проблем с покупкой.

Минусы: без настройки postgresql.conf производительность ниже, чем у MS SQL на тех же задачах. Некоторые отчёты с тяжёлыми запросами выполняются дольше. Администратору нужен опыт именно с PostgreSQL.

Минимальная настройка после установки :

# postgresql.conf — ориентиры для сервера с 32 ГБ ОЗУ, где стоит только СУБД
shared_buffers = 8GB            # около 25% памяти
effective_cache_size = 22GB     # примерно 2/3-3/4 памяти
work_mem = 64MB
maintenance_work_mem = 1GB
max_connections = 500

Цифры подбирайте под свою машину. Если на этом же сервере работает кластер 1С, уменьшите shared_buffers и effective_cache_size, чтобы рабочим процессам 1С хватило памяти.

Регулярно запускайте VACUUM ANALYZE (или проверьте, что работает автоочистка autovacuum). Без этого статистика устаревает, а таблицы разбухают, и база 1С постепенно замедляется.

Сравнение режимов работы базы данных 1С

Сведём разницу в одну таблицу. Оценки производительности условные: многое зависит от железа, конфигурации и настройки.

КритерийФайловый режимMS SQL ServerPostgreSQL
Пользователей одновременнодо 5-10десятки — сотнидесятки — сотни
Лицензия сервера 1Сне нужнанужнанужна
Лицензия СУБДне нужнаплатная (кроме Express)бесплатно (сборка 1С)
Ограничение размеранет жёсткого, но тормозит на больших объёмахExpress — 10 ГБ на базунет
Блокировкипо таблицампо записямпо записям
ОС сервералюбая, где работает клиентWindows (в основном)Windows и Linux
Резервное копированиекопия файла при закрытой базе или выгрузка .dtсредства СУБД, онлайнpg_dump, средства СУБД, онлайн
Сложность администрированияминимальнаясредняясредняя, нужна настройка

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

  • 💼 лицензия на сервер 1С:Предприятия x86-64 — ориентировочно 80-100 тыс. ₽, версия КОРП — в несколько раз дороже;
  • 🐘 PostgreSQL от 1С — 0 ₽ сверх подписки;
  • 🟦 MS SQL Standard — сотни тысяч рублей на сервер при лицензировании по ядрам, если удаётся купить.

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

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

Требования к серверу баз данных для 1С

Точные требования зависят от конфигурации и интенсивности работы. ERP на 100 пользователей и Бухгалтерия на 15 — разные нагрузки. Ориентиры для старта:

ПользователейПроцессорОЗУ (СУБД + сервер 1С на одной машине)Диски
10-204-6 ядер16-32 ГБSSD NVMe
20-508-12 ядер32-64 ГБSSD NVMe, отдельный диск под журналы
50-15016+ ядер64-128 ГБМассив NVMe, СУБД и 1С лучше разнести

На что смотреть в первую очередь:

  1. Диски. Для СУБД главное — скорость случайной записи. Классические HDD для рабочей базы 1С сегодня не используют.
  2. Память. Чем больше база помещается в кэш СУБД, тем реже обращения к диску. Если база весит 40 ГБ, сервер с 16 ГБ будет постоянно читать с диска.
  3. Частота ядра. Рабочие процессы 1С выигрывают от высокой частоты больше, чем от большого числа медленных ядер.
  4. Сеть между сервером 1С и СУБД. Если они на разных машинах, нужна быстрая локальная сеть с минимальной задержкой. Разносить их по разным площадкам нельзя.

Не размещайте сервер СУБД и кластер 1С на одном виртуальном хосте с «тяжёлыми» соседями без выделенных ресурсов. Перегруженный гипервизор даёт задержки дисков, и 1С тормозит при нормальных показателях внутри виртуальной машины.

Сетевые порты. Клиенты подключаются к агенту сервера 1С (порт 1540), менеджеру кластера (1541) и рабочим процессам (диапазон по умолчанию 1560-1591). К самой СУБД обращается только сервер 1С: MS SQL по умолчанию слушает порт 1433, PostgreSQL — 5432. Пользовательским компьютерам доступ к портам СУБД не нужен.

Перенос базы 1С между файлом, MS SQL и PostgreSQL

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

Порядок переноса

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

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

Выгрузка и загрузка требуют монопольного доступа: все сеансы пользователей в базе будут недоступны. Планируйте перенос на вечер или выходные. Для базы на 50-100 ГБ загрузка может идти несколько часов.

Что учесть при переносе

  • 🔑 Пользователи и пароли 1С переносятся вместе с .dt. Если в базе настроена аутентификация операционной системы, проверьте имена доменных пользователей на новом сервере.
  • 🧩 Расширения конфигурации попадают в .dt, но после переноса убедитесь, что они подключены и активны.
  • 🔄 Если база участвует в обменах (РИБ, обмен с ЗУП, с сайтом), пропишите в настройках обмена новый адрес базы. Узлы обмена должны продолжить нумерацию, а не начать заново.
  • 📅 При переходе с MS SQL на PostgreSQL смещение дат в новой базе указывайте 0. Значение влияет только на хранение в СУБД, сами данные в .dt от него не зависят.
  • 📈 После загрузки на PostgreSQL выполните ANALYZE по всей базе, иначе первые часы работы запросы будут медленными из-за отсутствия статистики.

Обратный переход с сервера на файловую базу делается так же: выгрузили .dt из серверной базы, создали пустую файловую, загрузили. Это удобно, чтобы сделать копию для тестирования обновления на своём компьютере.

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

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

Можно ли подключить 1С к MySQL или SQLite?
Нет. Платформа 1С:Предприятие 8.3 поддерживает только файловый режим и СУБД MS SQL Server, PostgreSQL, IBM Db2 и Oracle Database. Другие СУБД доступны лишь как внешние источники данных, а не как хранилище информационной базы.
Нужна ли лицензия сервера 1С, если стоит бесплатный PostgreSQL?
Да. Бесплатна только СУБД. Клиент-серверный режим требует лицензию на сервер 1С:Предприятия плюс клиентские лицензии на пользователей.
Как узнать, файловая у меня база или серверная?
Посмотрите строку под названием базы в окне запуска 1С. Для файловой там путь к каталогу (File=...), для серверной — имя сервера и базы (Srvr=...;Ref=...).
Можно ли открыть файл 1Cv8.1CD средствами SQL?
Нет. Это собственный формат платформы, обычные СУБД его не читают. Для работы с данными используйте саму 1С или перенесите базу в СУБД через выгрузку .dt.
Быстрее ли серверная база файловой для одного пользователя?
Не обязательно. При одном-двух пользователях файловая база на локальном SSD часто работает так же быстро или быстрее. Выигрыш сервера проявляется при одновременной работе многих людей и на больших объёмах.