Где 1С хранит данные: файловая СУБД, MS SQL Server и PostgreSQL на практике
Содержание
1С 8.3 работает с базой данных двух видов: файловой (встроенный движок платформы, всё лежит в одном файле 1Cv8.1CD) и клиент-серверной, где данные хранит внешняя СУБД — чаще всего Microsoft SQL Server или PostgreSQL, реже IBM Db2 и Oracle Database. Сама конфигурация от выбора не зависит: Бухгалтерия, ЗУП или УТ одинаково работают в любом варианте.
Частое заблуждение — «1С и есть база данных, SQL ей не нужен». Для небольшой фирмы это правда: файловый вариант обходится без отдельной СУБД. Но когда пользователей становится больше пяти-десяти, а база перерастает несколько гигабайт, без сервера 1С и полноценной СУБД скорость и надёжность падают заметно.
Как узнать, на какой базе работает ваша 1С
Прежде чем что-то выбирать, полезно понять, что уже стоит. Проверка занимает минуту.
- Откройте окно запуска 1С.
- Выделите базу в списке и посмотрите строку внизу окна.
- Если там
File="D:\Bases\Buh"— это файловый вариант. - Если
Srvr="srv1c";Ref="buh"— клиент-серверный. Тип СУБД видно в свойствах информационной базы в консоли администрирования серверов 1С.
Ещё один способ — из самой программы: меню с иконкой ☰ → Справка → О программе. В строке информационной базы будет либо путь к папке, либо имя сервера и базы.
Если база открыта через веб-клиент или опубликована на веб-сервере, строка запуска начинается с ws=. Это способ доступа, а не тип хранения: за публикацией может стоять и файловая, и серверная база.
Файловый вариант: одна папка и встроенный движок
В файловом режиме платформа сама выступает СУБД. Каталог базы содержит:
- 📁
1Cv8.1CD— главный файл: конфигурация, данные, история изменений; - 📁
1Cv8Log— журнал регистрации; - 📁
1Cv8FTxt— индекс полнотекстового поиска; - 📁 служебные файлы блокировок, которые появляются при открытых сеансах.
Ничего ставить отдельно не нужно. Базу можно скопировать на флешку, перенести на другой компьютер, положить в сетевую папку.
Где файловая база упирается в потолок
Ограничения растут не из размера, а из устройства. Каждый пользователь читает и пишет один и тот же файл по сети. При одновременном проведении документов движок блокирует целые таблицы, и остальные ждут.
| Параметр | Ориентир для файловой базы |
|---|---|
| Одновременных пользователей | комфортно 1–5, терпимо до 10 |
Размер 1Cv8.1CD | до 5–10 ГБ без заметных тормозов |
| Доступ по сети | только по локальной сети или через терминальный сервер |
| Резервное копирование | при закрытой базе или выгрузкой .dt |
| Риск повреждения | высокий при обрыве сети и отключении питания |
В старом формате хранения у файловой базы было жёсткое ограничение — 4 ГБ на одну таблицу. В современных версиях платформы 8.3 формат изменился, и практическим пределом стала скорость, а не размер.
Работать с файловой базой через VPN или по медленному Wi-Fi — главный путь к её повреждению. Если сотрудники подключаются из дома, нужен терминальный сервер , веб-публикация или переход на клиент-серверный вариант.
Клиент-серверная схема: кто за что отвечает
В клиент-серверном варианте участвуют три звена:
- Клиент 1С на компьютере пользователя — показывает формы, ничего не хранит.
- Сервер 1С:Предприятия — исполняет серверный код конфигурации, держит сеансы и управляет блокировками.
- СУБД — хранит данные в своей базе и выполняет запросы, которые ей передаёт сервер 1С.
Клиент обращается к агенту сервера (порт 1540), тот передаёт его менеджеру кластера (1541), дальше работа идёт с рабочими процессами в диапазоне портов, заданном в свойствах рабочего сервера. Пользователь СУБД не видит вообще: сервер 1С сам подключается к ней под отдельной учётной записью.
Какие СУБД поддерживает платформа
При создании серверной базы в поле типа СУБД доступны варианты:
- 🟦
MSSQLServer— Microsoft SQL Server; - 🐘
PostgreSQL— сборки PostgreSQL с доработками под 1С, в том числе Postgres Pro; - 🟪
IBMDB2— IBM Db2; - 🟥
OracleDatabase— Oracle Database.
В российских внедрениях почти всегда встречаются первые два. Db2 и Oracle остались в крупных компаниях, где эти СУБД уже были до 1С.
Для клиент-серверного варианта нужна лицензия на сервер 1С — она покупается отдельно от клиентских лицензий. Ориентировочно ключ 64-разрядного сервера стоит порядка 90–120 тыс. руб., точную цену называет партнёр 1С.
Microsoft SQL Server: классика для 1С
MS SQL исторически самая отлаженная связка. Большинство регламентов, советов по оптимизации и инструментов мониторинга писались именно под неё.
Сильные стороны:
- ✅ стабильное поведение на больших базах и сотнях пользователей;
- ✅ привычные инструменты: SQL Server Management Studio, планы обслуживания, агент заданий;
- ✅ резервное копирование «на лету», без остановки работы, плюс журнал транзакций для восстановления на конкретный момент.
Слабые стороны:
- ❌ лицензия Standard стоит дорого, а официальная покупка в России сейчас затруднена;
- ❌ бесплатная редакция Express ограничена: 10 ГБ на одну базу и урезанное использование памяти и ядер процессора;
- ❌ нужна Windows Server, если не использовать сборку SQL Server для Linux.
Настройки, которые администратор делает сразу
- 🔧 ограничить
max server memory, чтобы SQL Server не съел память у сервера 1С на той же машине; - 🔧 выставить степень параллелизма
max degree of parallelism = 1— классическая рекомендация для нагрузки 1С; - 🔧 вынести
tempdbи журналы транзакций на быстрый диск; - 🔧 выбрать модель восстановления:
SIMPLE, если хватает ежесуточных копий,FULL— если нужна точка восстановления внутри дня.
Express подходит для старта небольшой фирмы на 5–15 пользователей. Когда база приближается к 10 ГБ, заранее планируйте переход на PostgreSQL или платную редакцию — по достижении предела запись в базу прекращается.
PostgreSQL: бесплатный путь без компромисса по функциям
PostgreSQL распространяется бесплатно и не имеет лимита на размер базы. Для 1С используют не «чистый» PostgreSQL, а сборки с патчами под платформу. Их выпускает фирма 1С (дистрибутив на сайте поддержки) и компания Postgres Professional.
Почему его выбирают:
- 💰 нет затрат на лицензию СУБД;
- 🐧 работает на Linux и Windows, хорошо дружит с Linux-сервером 1С;
- 🇷🇺 есть отечественные сертифицированные сборки — это важно для госсектора и компаний с требованиями к импортозамещению.
О чём помнить:
- ⚙️ «из коробки» настройки рассчитаны на слабую машину — их нужно поправить под объём памяти;
- ⚙️ отдельные тяжёлые отчёты на PostgreSQL могут работать медленнее, чем на MS SQL, особенно со сложными запросами со множеством соединений;
- ⚙️ без регулярного
VACUUMиANALYZEбаза раздувается и теряет скорость.
Базовые параметры postgresql.conf
Ниже — стартовая точка для выделенного сервера с 32 ГБ памяти. Значения подстраивайте под свою нагрузку.
shared_buffers = 8GB
effective_cache_size = 24GB
work_mem = 64MB
maintenance_work_mem = 1GB
max_connections = 500
autovacuum = on
shared_buffers обычно берут около четверти памяти, effective_cache_size — около трёх четвертей. work_mem выделяется на каждую операцию сортировки, поэтому большое значение при сотнях соединений может исчерпать память.
Изменение shared_buffers и max_connections вступает в силу только после перезапуска службы PostgreSQL. Все сеансы 1С при этом оборвутся — делайте это вне рабочего времени и предупредите пользователей.
Какую СУБД выбрать и когда уходить с файла
Однозначного «лучше» нет. Решают число пользователей, размер базы, бюджет и наличие администратора.
| Ситуация | Что выбрать |
|---|---|
| 1–5 пользователей, одна организация, офис | Файловая база |
| 5–15 пользователей, база до 10 ГБ, нет бюджета на СУБД | Сервер 1С + PostgreSQL или MS SQL Express |
| 15–100 пользователей, несколько конфигураций | Сервер 1С + PostgreSQL или MS SQL Standard |
| Сотни пользователей, высокая нагрузка | Сервер 1С + MS SQL Standard/Enterprise или PostgreSQL с опытным администратором |
| Требования импортозамещения | Сервер 1С на Linux + отечественная сборка PostgreSQL |
Сигналы, что пора переходить на клиент-сервер
- 🐢 при проведении документов у коллег «зависает» программа;
- 🔒 регулярно появляются ошибки блокировки при одновременной работе;
- 💥 база уже повреждалась после сбоя сети или питания;
- 📈
1Cv8.1CDперевалил за 5–10 ГБ и продолжает расти; - 🌐 сотрудники работают удалённо, а терминальный сервер не спасает.
Когда переход не нужен
Не стоит «на всякий случай» поднимать сервер для двух бухгалтеров. Это лицензия сервера, отдельная машина, настройка и обслуживание. Если тормоза вызваны медленным диском или антивирусом, который проверяет 1Cv8.1CD, сервер проблему не решит — сначала уберите эти причины.
Перенос базы и регулярное обслуживание
Перенос из файла на сервер
Самый надёжный способ — через файл выгрузки .dt. Он одинаково подходит для перехода с файла на MS SQL, с файла на PostgreSQL и между СУБД.
- В файловой базе откройте Конфигуратор и выполните
Администрирование→Выгрузить информационную базу. Пользователи в этот момент должны выйти из базы. - На сервере 1С создайте новую информационную базу: в окне запуска
Добавить→Создание новой информационной базы→ вариант размещения на сервере 1С:Предприятия. Укажите тип СУБД, имя сервера СУБД, имя базы и учётную запись, отметьте создание базы данных при её отсутствии. - Откройте новую базу в Конфигураторе и выполните
Администрирование→Загрузить информационную базу, выбрав файл.dt. - Запустите базу в режиме 1С:Предприятие, проверьте остатки и несколько отчётов.
- В окне запуска у пользователей замените старую базу на новую.
Загрузка .dt полностью заменяет содержимое базы-приёмника. Если по ошибке выбрать рабочую серверную базу, её данные будут перезаписаны.
Обратный перенос — с сервера в файл — делается так же. Пригодится, чтобы отдать копию аудитору или поработать с базой на ноутбуке.
Что обслуживать в каждом варианте
| Вариант | Регулярные работы |
|---|---|
| Файловая база | ежедневная выгрузка .dt или копия папки при закрытой базе; проверка утилитой chdbfl.exe после сбоев |
| MS SQL Server | полная копия ежедневно, копии журнала транзакций при FULL; обновление статистики; перестроение индексов раз в неделю |
| PostgreSQL | pg_dump или физическое резервирование; контроль autovacuum; периодический VACUUM ANALYZE |
Утилита chdbfl.exe лежит в папке bin установленной платформы. Она проверяет файл 1Cv8.1CD без запуска 1С, но база при этом должна быть закрыта всеми пользователями.
Для серверных баз средствами 1С тоже доступна команда Администрирование → Тестирование и исправление в Конфигураторе. Она требует монопольного доступа, поэтому запускайте её после завершения всех сеансов.
Копии на уровне СУБД быстрее и надёжнее выгрузки .dt для больших баз. Выгрузку .dt при этом всё равно делайте хотя бы раз в неделю: из неё можно поднять базу на любой СУБД.