Как устроена информационная база 1С 8.3: файловый и клиент-серверный режим, таблицы и обслуживание
Содержание
База данных 1С — это не программа и не «папка с бухгалтерией», а хранилище, в котором лежат одновременно данные учёта и сама конфигурация. В 1С 8.3 она бывает двух видов: файловая (один файл 1Cv8.1CD на диске) и клиент-серверная (таблицы внутри СУБД — MS SQL Server, PostgreSQL, IBM Db2 или Oracle Database).
Частое заблуждение — что «базу 1С» можно открыть Excel’ем или SQL-запросом и поправить руками. Технически таблицы доступны, но читать и менять их должна только платформа 1С: она одна знает, какое поле что значит и какие данные связаны между собой. Всё, что описано ниже, касается платформы 1С:Предприятие 8.3 и не зависит от конфигурации — Бухгалтерия, ЗУП и УТ хранятся одинаково.
Как 1С хранит данные: платформа, конфигурация и информационная база
Чтобы разобраться в устройстве, полезно разделить три слоя:
- 🧩 Платформа — исполняемые файлы (
1cv8.exe,1cv8c.exe, серверragent.exe). Она ничего не знает про проводки и зарплату, она умеет читать и писать данные. - 📐 Конфигурация — описание справочников, документов, регистров, форм и кода. Это «чертёж» базы.
- 🗄️ Информационная база — то, где лежат и конфигурация, и данные пользователей.
В 1С термин «информационная база» шире, чем «база данных» в обычном смысле. В неё входят:
- Основная конфигурация и её копия, с которой работает Конфигуратор (так называемая конфигурация поставщика и конфигурация базы данных).
- Данные: элементы справочников, документы, движения регистров, константы.
- Список пользователей и их роли.
- Служебные данные: история изменений структуры, версии объектов, расширения.
Отсюда практический вывод: резервная копия базы 1С — это одновременно копия данных и копия конфигурации со всеми доработками. Отдельно сохранять «обработки программиста» не нужно, если они встроены в конфигурацию или расширение. Внешние отчёты и обработки (.epf, .erf) хранятся в базе, только если их добавили в справочник дополнительных отчётов и обработок.
Список баз, который вы видите в окне запуска, — не сами базы, а ярлыки к ним. Он хранится в файле ibases.v8i в профиле пользователя (%APPDATA%\1C\1CEStart\). Удаление строки из списка ничего не удаляет на диске.
Файловая база данных 1С: один файл и встроенный движок
В файловом варианте платформа сама играет роль СУБД. Все таблицы — справочники, документы, регистры, конфигурация — упакованы в один файл 1Cv8.1CD. Каждый пользователь работает с этим файлом напрямую, через общий сетевой ресурс или локальный диск.
Плюсы файлового режима:
- ✅ не нужен сервер 1С и отдельная лицензия на него;
- ✅ установка за несколько минут, копирование базы — это копирование каталога;
- ✅ подходит для одного рабочего места, ноутбука бухгалтера, учебной и тестовой базы.
Ограничения:
- ⚠️ при одновременной работе нескольких человек растут блокировки: пока один проводит документ, остальные ждут;
- ⚠️ скорость сильно зависит от сети: открытие базы по Wi-Fi или через медленную шару — частая причина тормозов;
- ⚠️ при обрыве связи или отключении питания во время записи файл может повредиться;
- ⚠️ файл не уменьшается сам после удаления данных — место освобождается внутри, но размер на диске остаётся прежним до сжатия.
Ориентир, который называют администраторы, — файловая база комфортно живёт при одном-пяти одновременных пользователях и объёме в единицы гигабайт. Дальше картина зависит от конфигурации и характера работы: в ЗУП с расчётом зарплаты раз в месяц пользователи мешают друг другу меньше, чем в торговле с постоянным проведением реализаций.
Форматы файловой базы
У файла 1Cv8.1CD есть внутренний формат хранения. В старых базах встречается формат с маленькой страницей и ограничением размера отдельной таблицы около 4 ГБ. Базы, созданные на современных версиях платформы 8.3, используют формат 8.3.8 с увеличенным размером страницы, где это ограничение на практике снято и большие таблицы обрабатываются быстрее.
Если база создавалась давно и с тех пор только обновлялась, она могла остаться в старом формате. Обновление конфигурации формат хранения не меняет.
Клиент-серверная база: 1С поверх SQL
В клиент-серверном варианте данные хранит промышленная СУБД, а между ней и пользователями стоит сервер 1С:Предприятия. Схема обмена такая:
- Клиент на компьютере пользователя обращается к агенту сервера 1С (по умолчанию порт
1540). - Агент направляет его к менеджеру кластера (порт
1541) и дальше — к рабочему процессу. Диапазон портов рабочих процессов задаётся в свойствах рабочего сервера. - Рабочий процесс выполняет код конфигурации и сам формирует запросы к СУБД.
- СУБД хранит таблицы, индексы и отвечает за транзакции.
Поддерживаемые СУБД:
| СУБД | Где встречается | Что учесть |
|---|---|---|
| Microsoft SQL Server | Самый распространённый вариант в Windows-инфраструктуре | Нужна лицензия на SQL Server; есть бесплатная редакция Express с ограничением объёма базы |
| PostgreSQL | Linux и Windows, импортозамещение | Нужна сборка с доработками для 1С (дистрибутивы с патчами 1С или Postgres Pro) |
| IBM Db2 | Редко, крупные компании | Требует опытного администратора СУБД |
| Oracle Database | Редко, крупные компании | Аналогично, плюс вопросы лицензирования |
Что даёт клиент-серверный режим:
- 🚀 десятки и сотни одновременных пользователей без очередей на каждом проведении;
- 🔒 транзакции на уровне СУБД: сбой связи у одного пользователя не портит базу;
- 📊 тяжёлые отчёты и закрытие месяца выполняются на сервере, а не на компьютере бухгалтера;
- 🛠️ резервное копирование средствами СУБД, в том числе без остановки работы.
Цена — сервер, лицензии на сервер 1С и СУБД (кроме бесплатного PostgreSQL), а также человек, который это обслуживает.
Файловая или серверная база 1С: что выбрать для бизнеса
Выбор определяется не размером компании, а тем, сколько людей одновременно работает в базе и насколько критичен простой.
| Ситуация | Рекомендуемый вариант |
|---|---|
| ИП или бухгалтер на аутсорсе, 1–2 пользователя | Файловая база на локальном диске |
| Небольшой офис, 3–5 человек, редкое одновременное проведение | Файловая база на терминальном сервере или сервисе облачной 1С |
| Торговля, склад, 5–10 человек и больше в одной базе | Клиент-серверная, чаще на PostgreSQL или MS SQL |
| База больше 10–20 ГБ, регулярные тормоза при закрытии месяца | Клиент-серверная |
| Тестовая копия, учебная база, проверка обновления | Файловая |
Открывать файловую базу с нескольких компьютеров через общую папку на домашнем NAS или по VPN — плохая идея. Обрыв соединения во время записи — типичный путь к ошибке Файл базы данных поврежден.
Что лежит в каталоге файловой базы и в таблицах SQL
Каталог файловой базы
Откройте каталог, путь к которому указан в свойствах базы в окне запуска. Обычно там:
| Файл или папка | Что это | Можно ли удалить |
|---|---|---|
1Cv8.1CD | Сама база: данные и конфигурация | Нет, это и есть база |
1Cv8.cfl | Файл блокировки, появляется во время работы | Только когда в базе точно никого нет |
1Cv8tmp.1CD | Временный файл, возникает при тестировании и реструктуризации | После завершения операции и закрытия базы |
1Cv8Log | Журнал регистрации (1Cv8.lgd в новом формате или 1Cv8.lgf + файлы .lgp в старом) | Можно сократить средствами журнала, вручную — только при закрытой базе |
1Cv8FTxt | Индекс полнотекстового поиска | Да, при закрытой базе; индекс строится заново |
Кэш конфигурации в этом каталоге не хранится. Он лежит в профиле каждого пользователя: %APPDATA%\1C\1cv8\ и %LOCALAPPDATA%\1C\1cv8\, в папках с длинными именами-идентификаторами баз.
Таблицы в СУБД
В клиент-серверной базе каждый объект конфигурации превращается в одну или несколько таблиц со служебными именами:
_Reference45— справочник;_Document123— документ,_Document123_VT456— его табличная часть;_AccumRg78— регистр накопления, рядом таблицы итогов;_InfoRg90— регистр сведений;_AccRg12— регистр бухгалтерии;_Const— константы.
Поля называются так же обезличенно: _IDRRef (ссылка), _Fld1234 (реквизит), _Marked (пометка удаления), _Posted (проведён). Конфигурация и служебные данные лежат в таблицах Config, ConfigSave, Params, Files, DBSchema, пользователи — в v8users.
Узнать, какая таблица соответствует какому объекту, можно встроенной функцией ПолучитьСтруктуруХраненияБазыДанных(). Пример для консоли кода или внешней обработки (выполняется на сервере):
Структура = ПолучитьСтруктуруХраненияБазыДанных(, Истина);
Для Каждого Строка Из Структура Цикл
Если СтрНайти(Строка.Метаданные, "Документ.РеализацияТоваровУслуг") > 0 Тогда
Сообщить(Строка.Метаданные + " -> " + Строка.ИмяТаблицыХранения);
КонецЕсли;
КонецЦикла;
Второй параметр Истина возвращает имена таблиц и полей в формате СУБД, а не в терминах 1С.
Не меняйте данные в таблицах 1С SQL-запросами в обход платформы. Платформа держит кэши, версии объектов и связи между таблицами. Ручной UPDATE легко рассинхронизирует итоги регистров с движениями, а такие ошибки потом выглядят как необъяснимые расхождения в отчётах. Читать таблицы для диагностики или выгрузки в BI допустимо, но только на копии или с минимальной нагрузкой.
При создании базы на MS SQL задаётся смещение дат (обычно 2000 лет). Поэтому дата 2025-01-15 в таблице может выглядеть как 4025-01-15 — это не ошибка, а особенность хранения.
Обслуживание базы данных 1С: что делать регулярно
Файловая база
- Резервная копия. Самый простой способ — копировать каталог базы целиком, когда в ней никто не работает. Второй способ — выгрузка в
.dtчерез Конфигуратор:Администрирование → Выгрузить информационную базу. - Тестирование и исправление. В Конфигураторе
Администрирование → Тестирование и исправление. Для файловой базы режим требует монопольного доступа — попросите всех выйти. Перед запуском сделайте копию: режим исправления может удалить битые ссылки и объекты. - Сжатие таблиц. Галочка «Сжатие таблиц информационной базы» в том же окне уменьшает файл после массового удаления данных.
- Утилита chdbfl. Если база не открывается вообще, в каталоге
binплатформы естьchdbfl.exe— она проверяет и исправляет физическую структуру файла1Cv8.1CDбез запуска 1С.
Тестирование с исправлением запускайте только на копии или после свежей резервной копии. Режим необратим: удалённые «битые» объекты вернуть можно только из бэкапа.
Клиент-серверная база
Здесь основную работу делает СУБД, и её надо настроить:
- 🔁 MS SQL Server — план обслуживания: полная копия раз в сутки, копии журнала транзакций в течение дня (если модель восстановления полная), перестроение индексов и обновление статистики в нерабочее время.
- 🐘 PostgreSQL — регулярный
VACUUMиANALYZE(автовакуум должен быть включён и настроен под объём базы), резервные копии черезpg_dumpили физическое копирование. - 🖥️ Сервер 1С — следите за памятью рабочих процессов и сеансами в консоли администрирования кластера. Перезапуск службы сервера 1С обрывает все сеансы, поэтому делайте его в нерабочее время и заранее предупреждайте пользователей.
Тестирование и исправление средствами Конфигуратора для серверной базы тоже доступно, но запускают его реже: физическую целостность здесь обеспечивает СУБД.
Перенос базы 1С и смена формата хранения
Главный инструмент переноса — файл .dt. Это выгрузка всей информационной базы в формат, не зависящий от способа хранения. Через него база переезжает:
- из файлового варианта в клиент-серверный и обратно;
- с MS SQL на PostgreSQL и наоборот;
- со старого формата файловой базы на новый;
- на другой компьютер или сервер.
Перевод файловой базы на сервер 1С
- Попросите пользователей выйти и откройте файловую базу в Конфигураторе.
- Выполните
Администрирование → Выгрузить информационную базуи сохраните.dt. - На сервере 1С создайте новую базу через окно запуска (
Добавить → Создание новой информационной базы → Создание информационной базы без конфигурации) с типом размещения «На сервере 1С:Предприятия». Укажите сервер СУБД, тип СУБД, имя базы данных и отметьте создание базы в СУБД, если её ещё нет. - Откройте новую базу в Конфигураторе и выполните
Администрирование → Загрузить информационную базу, выбрав сохранённый.dt. - Запустите базу в режиме пользователя, проверьте остатки и пару отчётов. Старую файловую базу не удаляйте, пока не убедитесь, что всё на месте.
Для больших баз выгрузку удобно запускать из командной строки, без открытия окна Конфигуратора:
"C:\Program Files\1cv8\8.3.24.1586\bin\1cv8.exe" DESIGNER /F"D:\Bases\Buh" /N"Администратор" /P"пароль" /DumpIB"D:\Backup\buh.dt"
Загрузка в серверную базу — ключом /RestoreIB и параметром /S"сервер\имя_базы" вместо /F. Номер версии платформы в пути замените на установленный у вас.
Платформа, на которой загружаете .dt, должна быть не ниже той, на которой его выгрузили. Иначе загрузка может завершиться ошибкой.
Смена формата файловой базы
Обновление конфигурации и платформы не переводит старую файловую базу на новый формат. Надёжный путь — выгрузить .dt, создать на текущей платформе новую пустую файловую базу и загрузить выгрузку в неё. После этого старый каталог можно убрать в архив.
Обратный перенос: с сервера в файл
Нужен для отладки, передачи копии программисту или проверки обновления. Порядок тот же: выгрузка .dt из серверной базы — создание пустой файловой — загрузка. Учтите, что большая серверная база в файловом режиме будет работать заметно медленнее.
Частые вопросы о базах данных 1С
Где физически находится база 1С на компьютере?
1Cv8.1CD в этом каталоге.Можно ли открыть файл 1Cv8.1CD без 1С?
chdbfl.exe.