Как устроена информационная база 1С изнутри
Содержание
База 1С (информационная база) — это данные учёта вместе с конфигурацией, которая ими управляет. Хранится она одним из двух способов: в файле 1Cv8.1CD на диске (файловый режим) или в таблицах СУБД — MS SQL Server, PostgreSQL и других — под управлением сервера 1С (клиент-серверный режим). Файловый вариант выбирают для небольшой фирмы, где с базой работают несколько человек. Клиент-серверный — когда пользователей много, база большая или нужны надёжные копии средствами СУБД.
Всё, что ниже, относится к платформе 1С:Предприятие 8.3 и одинаково для Бухгалтерии, ЗУП, УТ и других конфигураций: устройство базы задаёт платформа, а не прикладное решение.
Суть информационной базы: что в ней хранится
Внутри любой базы 1С лежат три вида содержимого:
- 🧩 Конфигурация — метаданные (справочники, документы, регистры), формы, модули, макеты печатных форм. Это «программа» учёта.
- 📊 Данные — элементы справочников, документы, движения по регистрам, константы, настройки пользователей.
- 🔐 Служебная информация — список пользователей и их права, журнал регистрации, история версий объектов, если она включена.
Конфигураций в базе на самом деле две. Основная конфигурация — та, которую видит разработчик в Конфигураторе и правит. Конфигурация базы данных — та, по которой реально работают пользователи. Пока разработчик не выполнил «Обновить конфигурацию базы данных», изменения в первой на пользователей не влияют.
Отдельно от базы на каждом компьютере хранится кэш — копия части конфигурации и настроек для ускорения запуска. Он лежит в профиле пользователя Windows (%APPDATA%\1C\1cv8 и %LOCALAPPDATA%\1C\1cv8, подкаталоги с длинными именами-идентификаторами). Удаление кэша данные не трогает: база останется прежней, просто первый запуск будет дольше.
Список баз, который пользователь видит в окне запуска, — это тоже не сами базы, а файл со ссылками на них: %APPDATA%\1C\1CEStart\ibases.v8i. Его можно скопировать на другой компьютер, и список появится там целиком.
Файловый и клиент-серверный режим: в чём разница
Конфигурация и данные одни и те же, отличается только место хранения и то, кто обрабатывает запросы. В файловом режиме всю работу делает сама программа на компьютере пользователя: читает и пишет файл базы по сети. В клиент-серверном — клиент отправляет запросы серверу 1С, а тот работает с СУБД.
| Признак | Файловый режим | Клиент-серверный режим |
|---|---|---|
| Где лежат данные | Файл 1Cv8.1CD в каталоге на диске или в общей папке | Таблицы в базе данных СУБД |
| Что нужно установить | Только клиент 1С | Сервер 1С, СУБД, лицензия на сервер |
| Сколько пользователей | Ориентир — до 5–10 одновременно | Десятки и сотни |
| Блокировки | На уровне всей таблицы — при массовом проведении пользователи ждут друг друга | Управляемые, на уровне записей |
| Резервная копия | Выгрузка .dt или копия файла при закрытой базе | Средствами СУБД без остановки работы |
| Строка подключения | File="D:\Bases\Buh"; | Srvr="srv1c";Ref="buh"; |
| Стоимость | Ниже: нужен только клиент | Выше: лицензия сервера, СУБД, администрирование |
Граница в 5–10 человек — не жёсткое ограничение платформы, а практический ориентир. Файловая база на быстром локальном диске выдержит и больше, а на медленной сети или по Wi-Fi начнёт тормозить уже при трёх пользователях.
Признаки, что пора переходить на сервер:
- ⏳ закрытие месяца или массовое перепроведение блокирует остальных;
- 📦 файл
1Cv8.1CDвырос до десятков гигабайт, и копия занимает час; - 🌐 часть сотрудников работает удалённо, через тонкий клиент или веб-клиент;
- 🧯 база повреждается после сбоев питания или сети.
Что лежит в каталоге файловой базы
Файловая база — это обычная папка. Её путь виден в окне запуска внизу, когда база выделена в списке. Внутри — несколько объектов:
| Объект | Что это | Можно ли удалять |
|---|---|---|
1Cv8.1CD | Главный файл: конфигурации, данные, пользователи | Нет — это и есть база |
1Cv8Log | Журнал регистрации. В новом формате — файл 1Cv8.lgd, в старом — 1Cv8.lgf и набор файлов .lgp | Можно, но пропадёт история действий |
1Cv8FTxt (или 1Cv8FTxt2) | Индекс полнотекстового поиска | Можно — индекс перестроится |
1Cv8tmp.1CD и похожие временные файлы | Создаются во время работы | Только когда в базе никого нет |
В 1Cv8.1CD помещается всё сразу: обе конфигурации, данные и список пользователей. Поэтому для переноса файловой базы достаточно скопировать её папку целиком, когда все вышли из программы.
Копировать 1Cv8.1CD, пока с базой работают люди, нельзя. Копия получится несогласованной: часть изменений успеет записаться, часть нет. Прежде чем копировать файл, убедитесь, что в базе нет ни одного сеанса, включая фоновые задания на сервере, где лежит папка.
Пользователям нужны права на чтение и запись в этот каталог — и на уровне общей папки, и на уровне NTFS. Прав только на чтение мало: при запуске платформа создаёт в папке служебные файлы.
Как устроена серверная база: кластер, СУБД и таблицы
В клиент-серверном варианте в работе участвуют три звена: клиент 1С, сервер 1С:Предприятия и сервер СУБД. Сервер 1С и СУБД могут стоять на одной машине или на разных.
Сервер 1С состоит из нескольких процессов:
- Агент сервера (
ragent) — принимает первое обращение клиента и консоли администрирования. Порт по умолчанию —1540. - Менеджер кластера (
rmngr) — ведёт список баз кластера, сеансы, блокировки. Порт по умолчанию —1541. - Рабочие процессы (
rphost) — выполняют код конфигурации и обращаются к СУБД. Используют диапазон портов, который задаётся в свойствах рабочего сервера; по умолчанию —1560–1591.
Клиент обращается к агенту, тот направляет его к менеджеру кластера, а дальше идёт работа с рабочим процессом. Если на пути стоит межсетевой экран, открыть нужно все три группы портов.
Реестр кластера — список зарегистрированных баз и их параметров — хранится в каталоге службы, обычно в C:\Program Files\1cv8\srvinfo\reg_1541. Сами данные там не лежат, только настройки.
Данные хранятся в базе СУБД. Каждый объект конфигурации — это одна или несколько таблиц со служебными именами:
_Reference45 — справочник
_Document120 — шапка документа
_Document120_VT130 — табличная часть документа
_AccumRg300 — регистр накопления
Config, ConfigSave — конфигурация базы данных и основная конфигурация
Params — параметры базы, в том числе список пользователей
Соответствие «таблица → объект метаданных» не хранится в понятном виде. Его возвращает метод встроенного языка ПолучитьСтруктуруХраненияБазыДанных(). Именно поэтому данные 1С не правят прямыми SQL-запросами в обход платформы: таблицы связаны служебными полями, и ручная правка ломает целостность.
Для MS SQL Server при создании базы выбирают смещение дат 2000. Для PostgreSQL этот параметр не нужен. Неверное смещение потом не исправить без пересоздания базы через выгрузку .dt.
Как создать базу и добавить её в список запуска
Новую базу и подключение к уже существующей делают из одного окна запуска 1С.
Создание новой базы
- В окне запуска нажмите
Добавить…. - Выберите
Создание новой информационной базы. - Выберите шаблон конфигурации (если он установлен) или вариант без конфигурации — для разработки или загрузки
.dt. - Введите имя базы — так она будет называться в списке.
- Выберите тип расположения:
На данном компьютере или на компьютере в локальной сети— файловая база, затем укажите каталог;На сервере 1С:Предприятия— серверная база.
- Для серверной базы заполните параметры: кластер серверов
, имя базы в кластере, тип СУБД, сервер баз данных, имя базы данных, пользователя и пароль СУБД, смещение дат. Отметьте
Создать базу данных в случае ее отсутствия. - Завершите мастер и откройте базу.
Подключение существующей базы
Если база уже создана — например, коллега дал путь к общей папке или имя базы на сервере — в шаге 2 выберите Добавление в список существующей информационной базы. Мастер спросит только имя для списка и расположение. Сама база при этом не меняется.
Быстрее всего подключить базу по строке подключения: её можно скопировать у коллеги из окна запуска (кнопка Изменить…) или получить от администратора.
| Действие | Что происходит с данными |
|---|---|
| Создание новой базы | Появляется новый пустой файл 1Cv8.1CD или новая база в СУБД |
| Добавление существующей | Добавляется только строка в ibases.v8i на этом компьютере |
| Удаление из списка | Убирается строка из списка; файл или база в СУБД остаются |
Резервное копирование и восстановление баз 1С
Способов три, и они не взаимозаменяемы. Обычно используют два сразу: регулярную копию и выгрузку .dt перед обновлениями.
| Способ | Когда подходит | Ограничения |
|---|---|---|
Выгрузка .dt из Конфигуратора | Перед обновлением, для переноса между режимами | Долго на больших базах; это не мгновенный снимок |
| Копия папки файловой базы | Ежедневная копия небольшой файловой базы | Только когда никто не работает |
| Резервная копия средствами СУБД | Серверная база, копия без остановки работы | Нужен настроенный план обслуживания СУБД |
Выгрузка в .dt
В Конфигураторе: Администрирование → Выгрузить информационную базу…. Получится один файл .dt с конфигурацией, данными и пользователями. Этот формат не зависит от режима: выгрузку файловой базы можно загрузить в серверную и наоборот.
Выгрузку можно запускать по расписанию через командную строку:
"C:\Program Files\1cv8\8.3.24.1342\bin\1cv8.exe" DESIGNER /F "D:\Bases\Buh" /N "Администратор" /P "пароль" /DumpIB "E:\Backup\buh.dt" /Out "E:\Backup\dump.log"
Для серверной базы вместо /F "путь" указывают /S "srv1c\buh". Номер платформы в пути подставьте свой — он виден в каталоге установки.
Пароль в bat-файле лежит открытым текстом. Создайте для копирования отдельного пользователя 1С с минимальными правами и ограничьте доступ к файлу.
Встроенное копирование в типовых конфигурациях
В Бухгалтерии 3.0 и других решениях на БСП для файловых баз есть помощник: Администрирование → Обслуживание → Резервное копирование и восстановление. Он выгоняет пользователей, копирует базу и может делать это по расписанию. Для серверных баз этот механизм не предназначен — там копию делают на стороне СУБД.
Восстановление
Восстановление из .dt — Администрирование → Загрузить информационную базу… в Конфигураторе. Операция требует монопольного доступа и полностью заменяет текущую базу содержимым файла: всё, что ввели после выгрузки, пропадёт. Поэтому перед загрузкой сделайте выгрузку текущего состояния, даже если оно кажется испорченным.
Если нужно только достать данные из старой копии — загрузите .dt в новую пустую базу и переносите из неё, а рабочую не трогайте.
Ошибки доступа к базам 1С и что с ними делать
Большая часть проблем с доступом связана не с самой базой, а с сетью, правами на папку или службой сервера.
Утилита chdbfl.exe и режим «Тестирование и исправление» работают только с монопольным доступом и могут удалить испорченные записи. Запускайте их на копии или после выгрузки — так останется путь назад.
Отдельный случай — база открывается, но работает с ошибками отображения или зависает при запуске у одного пользователя. Чаще всего виноват кэш на этом компьютере. Закройте 1С, удалите подкаталоги кэша из профиля или запустите базу с параметром /ClearCache.
Частые вопросы
Как перевести файловую базу 1С на SQL?
.dt, создайте на сервере 1С новую пустую базу с подключением к СУБД и загрузите в неё этот файл. Пользователям останется добавить серверную базу в список запуска.Можно ли открыть файл 1Cv8.1CD без 1С?
Сколько баз можно держать на одном сервере 1С?
Почему база пропала из списка, хотя файлы на месте?
ibases.v8i в профиле пользователя Windows. После смены профиля или переустановки системы он пустой. Добавьте базу заново через Добавление в список существующей информационной базы.Чем выгрузка .dt отличается от сохранения конфигурации в .cf?
.cf попадает только конфигурация — без документов, справочников и пользователей. .dt содержит всю базу. Для резервной копии нужен именно .dt.