Как устроена информационная база 1С 8.3: файловый и клиент-серверный режим, таблицы и обслуживание

· 11 мин

Содержание

База данных 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. Основная конфигурация и её копия, с которой работает Конфигуратор (так называемая конфигурация поставщика и конфигурация базы данных).
  2. Данные: элементы справочников, документы, движения регистров, константы.
  3. Список пользователей и их роли.
  4. Служебные данные: история изменений структуры, версии объектов, расширения.

Отсюда практический вывод: резервная копия базы 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. Клиент на компьютере пользователя обращается к агенту сервера 1С (по умолчанию порт 1540).
  2. Агент направляет его к менеджеру кластера (порт 1541) и дальше — к рабочему процессу. Диапазон портов рабочих процессов задаётся в свойствах рабочего сервера.
  3. Рабочий процесс выполняет код конфигурации и сам формирует запросы к СУБД.
  4. СУБД хранит таблицы, индексы и отвечает за транзакции.

Поддерживаемые СУБД:

СУБДГде встречаетсяЧто учесть
Microsoft SQL ServerСамый распространённый вариант в Windows-инфраструктуреНужна лицензия на SQL Server; есть бесплатная редакция Express с ограничением объёма базы
PostgreSQLLinux и 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С: что делать регулярно

Файловая база

  1. Резервная копия. Самый простой способ — копировать каталог базы целиком, когда в ней никто не работает. Второй способ — выгрузка в .dt через Конфигуратор: Администрирование → Выгрузить информационную базу.
  2. Тестирование и исправление. В Конфигураторе Администрирование → Тестирование и исправление. Для файловой базы режим требует монопольного доступа — попросите всех выйти. Перед запуском сделайте копию: режим исправления может удалить битые ссылки и объекты.
  3. Сжатие таблиц. Галочка «Сжатие таблиц информационной базы» в том же окне уменьшает файл после массового удаления данных.
  4. Утилита chdbfl. Если база не открывается вообще, в каталоге bin платформы есть chdbfl.exe — она проверяет и исправляет физическую структуру файла 1Cv8.1CD без запуска 1С.

Тестирование с исправлением запускайте только на копии или после свежей резервной копии. Режим необратим: удалённые «битые» объекты вернуть можно только из бэкапа.

Клиент-серверная база

Здесь основную работу делает СУБД, и её надо настроить:

  • 🔁 MS SQL Server — план обслуживания: полная копия раз в сутки, копии журнала транзакций в течение дня (если модель восстановления полная), перестроение индексов и обновление статистики в нерабочее время.
  • 🐘 PostgreSQL — регулярный VACUUM и ANALYZE (автовакуум должен быть включён и настроен под объём базы), резервные копии через pg_dump или физическое копирование.
  • 🖥️ Сервер 1С — следите за памятью рабочих процессов и сеансами в консоли администрирования кластера. Перезапуск службы сервера 1С обрывает все сеансы, поэтому делайте его в нерабочее время и заранее предупреждайте пользователей.

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

Минимальный регламент обслуживания базы 1С
Выполнено: 0 / 6

Перенос базы 1С и смена формата хранения

Главный инструмент переноса — файл .dt. Это выгрузка всей информационной базы в формат, не зависящий от способа хранения. Через него база переезжает:

  • из файлового варианта в клиент-серверный и обратно;
  • с MS SQL на PostgreSQL и наоборот;
  • со старого формата файловой базы на новый;
  • на другой компьютер или сервер.

Перевод файловой базы на сервер 1С

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

Для больших баз выгрузку удобно запускать из командной строки, без открытия окна Конфигуратора:

"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С на компьютере?
Запустите 1С, выделите базу в списке и нажмите «Изменить»: на первом шаге показан каталог для файловой базы или пара «сервер — имя базы» для серверной. Для файловой базы данные лежат в файле 1Cv8.1CD в этом каталоге.
Можно ли открыть файл 1Cv8.1CD без 1С?
Нет, формат закрытый и предназначен для платформы. Сторонние просмотрщики существуют, но для работы и восстановления используйте саму 1С или утилиту chdbfl.exe.
Сколько весит обычная база 1С?
Небольшая база бухгалтерии ИП — от сотен мегабайт до 1–2 ГБ. Торговая база с несколькими годами работы легко занимает десятки гигабайт. Основной объём обычно дают регистры, журнал регистрации и присоединённые файлы.
Подходит ли бесплатный MS SQL Server Express для 1С?
Для небольших баз — да, но у редакции Express есть ограничение на размер одной базы данных, около 10 ГБ, и на используемые ресурсы. Растущей базе такого запаса хватит ненадолго; бесплатная альтернатива без этих лимитов — PostgreSQL.
Нужна ли отдельная лицензия для клиент-серверной базы?
Да. Помимо клиентских лицензий нужна лицензия на сервер 1С:Предприятия, а для MS SQL или Oracle — ещё и лицензия на саму СУБД. Без лицензии сервер базу не запустит.