Где 1С 8.3 хранит данные: файловый режим, MS SQL Server, PostgreSQL и другие СУБД
Содержание
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 Server | PostgreSQL |
|---|---|---|---|
| Одновременных пользователей (ориентир) | до 5–10 | десятки–сотни | десятки–сотни |
| Лицензия сервера 1С | не нужна | нужна | нужна |
| Лицензия СУБД | не нужна | платная (Express бесплатно, до 10 ГБ) | бесплатно |
| ОС сервера | любая с общей папкой | обычно Windows Server | Linux или Windows |
| Размер базы | до десятков ГБ без проблем, дальше медленно | без практических ограничений | без практических ограничений |
| Резервное копирование | копия файла или .dt при остановленной работе | средства СУБД, без остановки | средства СУБД, без остановки |
| Сложность администрирования | минимальная | средняя | средняя, нужна настройка под 1С |
Две вещи часто путают.
Первая: клиент-серверный режим быстрее не всегда. Для одного пользователя файловая база на SSD бывает быстрее серверной: нет сетевых задержек между сервером 1С и СУБД. Выигрыш сервера проявляется при параллельной работе: блокировки идут на уровне записей, а не всего файла, тяжёлые расчёты выполняются на мощном сервере, а не на ноутбуке бухгалтера.
Вторая: MS SQL против PostgreSQL — это не «быстро против медленно». На правильно настроенном PostgreSQL типовые конфигурации работают сопоставимо. Разница в конкретных тяжёлых операциях есть, но она меньше, чем разница между настроенным и ненастроенным сервером любой из двух СУБД.
Про IBM Db2 и Oracle Database: платформа их поддерживает, но в России их ставят в основном там, где эта СУБД уже есть в компании. Для нового внедрения их обычно не выбирают из-за стоимости и сложности.
.dt или копию папки в нерабочее время. Сервер 1С пока не нужен.Перенос базы 1С на другую СУБД и обслуживание
Перенос между вариантами хранения делают через выгрузку информационной базы в файл .dt. Этот формат не зависит от СУБД.
Порядок перехода с файловой базы на сервер:
- Предупредите пользователей и попросите выйти из базы: выгрузка требует монопольного доступа.
- Откройте исходную базу в Конфигураторе и выполните
Администрирование → Выгрузить информационную базу. Сохраните файл.dt. - На сервере, где установлена СУБД, проверьте, что служба СУБД запущена, а у пользователя, от имени которого 1С подключается к СУБД, есть право создавать базы данных.
- В консоли администрирования серверов 1С создайте новую информационную базу. Заполните: имя базы в кластере, сервер СУБД, имя базы данных, тип СУБД, пользователя и пароль СУБД. Отметьте флажок создания базы данных в случае её отсутствия.
- Добавьте новую базу в список окна запуска с типом «На сервере 1С:Предприятия», указав кластер и имя базы.
- Откройте её в Конфигураторе и выполните
Администрирование → Загрузить информационную базу, выбрав сохранённый.dt. - Зайдите в режиме 1С:Предприятие, проверьте остатки по ключевым счетам и пару отчётов на совпадение со старой базой.
- Старую файловую базу переведите в архив: переименуйте папку, чтобы никто не продолжил в ней работать по старому ярлыку.
Загрузка .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?
Нужен ли сервер 1С, если стоит MS SQL Server?
Можно ли вернуть серверную базу обратно в файловую?
.dt из серверной базы, создайте пустую файловую и загрузите в неё файл. Так делают копии для тестов или для передачи базы аудитору.Где физически лежит файловая база 1С?
1Cv8.1CD — он и есть база. Копируйте его только при закрытой базе.