Где 1С 8.3 хранит данные: файловый режим, MS SQL Server, PostgreSQL и другие СУБД

· 11 мин

Содержание

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

Конфигурация (Бухгалтерия, ЗУП, УТ) от выбора СУБД не зависит: одна и та же база переносится из файла на SQL и обратно без переделок. Меняются скорость при многих пользователях, стоимость лицензий и объём работы администратора.

Как устроено хранение данных в платформе 1С

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

Отсюда три следствия:

  • 🔄 Переносимость. Базу можно выгрузить в файл .dt и загрузить в любой другой вариант: файл → MS SQL, MS SQL → PostgreSQL, сервер → файл.
  • 🚫 Прямые правки в таблицах запрещены. Имена таблиц в СУБД служебные (_Reference25, _Document112), а изменение данных SQL-запросом в обход платформы ломает целостность и нарушает лицензионное соглашение.
  • ⚙️ Выбор СУБД — задача администратора. Бухгалтер работает в тех же формах, разница видна только в скорости и надёжности.

Как узнать, какой вариант у вас сейчас. Откройте окно запуска 1С и выделите базу: внизу показана строка подключения.

Что видно в строкеВариант
File="C:\Bases\Buh" или путь к сетевой папкефайловая база
Srvr="server1c";Ref="buh"клиент-серверная, СУБД настроена на сервере 1С

Какая именно СУБД стоит за серверной базой, видно в консоли администрирования серверов 1С: в свойствах информационной базы есть поле «Тип СУБД».

Файловая база 1С: один файл без сервера

Файловый вариант — это каталог с файлом 1Cv8.1CD. Рядом платформа создаёт служебные файлы, например 1Cv8.lgd или папку 1Cv8Log с журналом регистрации. Никакой отдельной программы для работы с базой не нужно: всё делает клиент 1С на компьютере пользователя.

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

Плюсы файлового режима:

  • 💰 не нужны лицензия на сервер 1С и СУБД;
  • 🧩 установка за 10 минут, перенос — копированием папки (при закрытой базе);
  • 🛠️ почти нет администрирования.

Минусы:

  • 🐢 при росте числа пользователей растут ожидания на блокировках: запись в файл в каждый момент делает один сеанс;
  • 🌐 вся нагрузка идёт по сети: при отчёте за год клиент прокачивает через неё большие объёмы данных;
  • 💥 обрыв связи или выключение компьютера во время записи может повредить файл, тогда нужен режим «Тестирование и исправление» в Конфигураторе;
  • 📉 нет средств СУБД: журнала транзакций, восстановления на момент времени, гибкого резервного копирования.

Ускорить файловую базу при нескольких пользователях помогает публикация на веб-сервере (Apache или IIS) на том же компьютере, где лежит файл. Тогда клиенты ходят к веб-серверу, а с файлом работает только он. Это не заменяет сервер 1С, но снимает часть сетевых проблем и даёт доступ через тонкий клиент или браузер.

Практическая граница файлового режима — около 5–10 одновременно работающих пользователей при умеренном объёме документов. Это ориентир, а не правило платформы: в небольшой бухгалтерии с тремя сотрудниками база в 5 ГБ работает годами, а склад с пятью кладовщиками, которые одновременно проводят накладные, начнёт «висеть» раньше.

Microsoft SQL Server как СУБД для 1С

MS SQL Server — исторически самый распространённый выбор для серверной 1С на Windows. Схема такая: на сервере установлены служба сервера 1С и SQL Server (на одной машине или на разных), клиенты подключаются только к серверу 1С.

Сильные стороны:

  • ✅ большой опыт внедрений, понятная настройка, много администраторов, которые с ним работали;
  • ✅ удобные инструменты: SQL Server Management Studio, планы обслуживания, резервное копирование с журналом транзакций;
  • ✅ стабильная производительность на крупных базах.

Слабые стороны:

  • 💸 платные лицензии Standard и Enterprise. Ориентировочно лицензия Standard на 2 ядра обходится в сотни тысяч рублей, точная цена зависит от модели лицензирования и поставщика;
  • 🌍 вопросы с покупкой и продлением лицензий у российских компаний, из-за которых многие уходят на PostgreSQL;
  • 🪟 привязка к Windows Server (версии для Linux существуют, но в связке с 1С встречаются редко).

Есть бесплатная редакция SQL Server Express. Она работает с 1С, но у неё жёсткие ограничения: размер одной базы данных — до 10 ГБ, используется ограниченный объём памяти и ядер. Для небольшой организации это способ попробовать клиент-серверный режим без затрат на СУБД, но база рано или поздно упрётся в лимит.

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

PostgreSQL для 1С: бесплатная альтернатива

PostgreSQL — свободная СУБД без платы за лицензии. Для работы с 1С используют не «чистый» PostgreSQL из репозитория Linux, а сборки с доработками под 1С:

  • 🐘 сборку PostgreSQL от фирмы 1С с патчами под платформу;
  • 🐘 Postgres Pro (Standard или Enterprise) от Postgres Professional — российский дистрибутив, есть версии с сертификатами;
  • 🐘 другие отечественные сборки с поддержкой 1С.

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

Где PostgreSQL выигрывает:

  • 💰 нет платы за СУБД, нет ограничения на размер базы;
  • 🐧 хорошо работает на Linux, а значит, сервер можно собрать вообще без Windows: Linux + сервер 1С для Linux + PostgreSQL;
  • 🇷🇺 решает вопрос импортозамещения и закупок.

Где нужна осторожность:

  • 🔧 PostgreSQL требует настройки под 1С: параметры памяти, автоочистки (autovacuum), числа подключений. С настройками «по умолчанию» после установки он работает заметно медленнее, чем мог бы;
  • 📊 отдельные тяжёлые запросы (сложные отчёты, закрытие месяца ) могут вести себя иначе, чем на MS SQL, и иногда требуют внимания администратора;
  • 👥 администраторов PostgreSQL с опытом 1С меньше, чем специалистов по MS SQL.

Для Windows сборки PostgreSQL под 1С тоже есть, но большинство серьёзных внедрений PostgreSQL идут на Linux.

Сравнение вариантов хранения: скорость, масштаб, стоимость

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

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

Две вещи часто путают.

Первая: клиент-серверный режим быстрее не всегда. Для одного пользователя файловая база на SSD бывает быстрее серверной: нет сетевых задержек между сервером 1С и СУБД. Выигрыш сервера проявляется при параллельной работе: блокировки идут на уровне записей, а не всего файла, тяжёлые расчёты выполняются на мощном сервере, а не на ноутбуке бухгалтера.

Вторая: MS SQL против PostgreSQL — это не «быстро против медленно». На правильно настроенном PostgreSQL типовые конфигурации работают сопоставимо. Разница в конкретных тяжёлых операциях есть, но она меньше, чем разница между настроенным и ненастроенным сервером любой из двух СУБД.

Про IBM Db2 и Oracle Database: платформа их поддерживает, но в России их ставят в основном там, где эта СУБД уже есть в компании. Для нового внедрения их обычно не выбирают из-за стоимости и сложности.

Какой вариант хранения подходит вашей базе?

Перенос базы 1С на другую СУБД и обслуживание

Перенос между вариантами хранения делают через выгрузку информационной базы в файл .dt. Этот формат не зависит от СУБД.

Порядок перехода с файловой базы на сервер:

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

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

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

Для больших баз (десятки и сотни ГБ) выгрузка и загрузка .dt идут часами. Сделайте пробный перенос в выходные заранее, засеките время — и только потом назначайте день реального переезда.

Что делать после перехода на сервер:

  • 🗄️ Резервные копии средствами СУБД. В MS SQL — полные и разностные копии по расписанию, при модели восстановления Full ещё и журнал транзакций. В PostgreSQL — pg_dump или физическое копирование с архивом WAL. Выгрузку .dt оставьте как дополнительную, а не основную копию.
  • 📈 Регламентное обслуживание. Обновление статистики и обслуживание индексов в MS SQL, контроль autovacuum и ANALYZE в PostgreSQL. Без этого база медленно деградирует по скорости.
  • 🔐 Отдельный пользователь СУБД для 1С. Не подключайте 1С под суперпользователем sa или postgres в рабочей среде, если можно выдать отдельную учётную запись с нужными правами.
  • 🧹 Контроль места. Журнал транзакций MS SQL при модели Full без резервного копирования журнала растёт до заполнения диска.

Пример простой резервной копии базы PostgreSQL по расписанию:

pg_dump -U postgres -F c -f /backup/buh_$(date +%F).dump buh

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

Если база тормозит и после перехода

Бывает, что базу перенесли на сервер, а заметного ускорения нет. Частые причины:

  • 🧠 Не хватает памяти. Сервер 1С и СУБД на одной машине делят ОЗУ. Ограничьте память SQL Server в его настройках, иначе он заберёт почти всё и оставит сервер 1С без памяти.
  • 💽 Медленные диски. Базы и журналы транзакций на HDD или перегруженном сетевом хранилище сводят на нет выигрыш от СУБД. Для рабочих баз нужны SSD.
  • ⚙️ PostgreSQL с настройками по умолчанию. Параметры памяти после установки рассчитаны на скромную машину. Их пересчитывают под объём ОЗУ сервера.
  • 🔒 Режим блокировок. Старые конфигурации, которые работают в автоматическом режиме управления блокировками, на сервере блокируют больше данных, чем нужно. Типовые конфигурации актуальных редакций используют управляемый режим.
  • 🌐 Сеть между сервером 1С и СУБД. Если они на разных машинах, задержка между ними влияет на каждую операцию. Держите их в одной локальной сети с минимальной задержкой.

Если ничего из этого не помогло, нужен разбор конкретных медленных операций: технологический журнал 1С, замер производительности в Конфигураторе, анализ планов запросов в СУБД. Это задача для администратора с опытом 1С.

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

Можно ли подключить 1С к MySQL или SQLite?
Нет, к MySQL и другим неподдерживаемым СУБД сервер 1С не подключается. SQLite использует только мобильная платформа 1С для баз на телефоне.
Нужен ли сервер 1С, если стоит MS SQL Server?
Да. Клиент 1С не работает с SQL Server напрямую: подключение всегда идёт через сервер 1С. Без лицензии сервера 1С клиент-серверную базу использовать нельзя.
Можно ли вернуть серверную базу обратно в файловую?
Да. Выгрузите .dt из серверной базы, создайте пустую файловую и загрузите в неё файл. Так делают копии для тестов или для передачи базы аудитору.
Где физически лежит файловая база 1С?
В каталоге, который указан в строке подключения в окне запуска. Нужен файл 1Cv8.1CD — он и есть база. Копируйте его только при закрытой базе.
Влияет ли выбор СУБД на обновление конфигурации?
Порядок обновления один и тот же. Разница в скорости реструктуризации больших таблиц и в том, как делать резервную копию перед обновлением.