К статье
Практический материал

Администрирование · 13 мин

1С:Предприятие как база данных: как устроено хранение и когда допустим прямой доступ

Как 1С:Предприятие хранит данные: файловый и клиент-серверный режимы, структура базы, прямой доступ через SQL, риски и безопасные способы интеграции.

1С:Предприятие — это не просто прикладная программа, а полноценная платформа со своей системой управления данными. Каждая информационная база хранит справочники, документы, регистры, константы и настройки в строго определённой структуре, которую платформа создаёт и обслуживает самостоятельно. Понимание того, как именно устроено это хранилище, нужно администраторам при выборе режима работы, разработчикам — при проектировании обменов, а руководителям — при оценке рисков интеграций.

Ключевая особенность платформы: разработчик и пользователь работают с объектами метаданных (справочник «Номенклатура», документ «Реализация товаров»), а физическое размещение данных платформа берёт на себя. В файловом режиме это единый файл 1Cv8.1CD, в клиент-серверном — набор таблиц в СУБД: Microsoft SQL Server, PostgreSQL, Oracle или IBM Db2. Прямое изменение этих таблиц в обход платформы — самая частая причина повреждения баз.

Ниже разобраны оба режима хранения, внутренняя структура базы, безопасные способы чтения и записи данных извне, ограничения платформы и типичные ошибки администрирования.

Как платформа 1С организует хранение данных

Платформа отделяет логическую модель от физической. В конфигураторе вы описываете объекты: справочники, документы, регистры сведений и накопления, планы счетов. При обновлении конфигурации базы данных платформа сама создаёт или изменяет физические таблицы, индексы и служебные поля. Разработчик не управляет DDL-скриптами напрямую — это принципиальное отличие от классических приложений «база + клиент».

Каждый объект получает системные поля: уникальный идентификатор (GUID), ссылку, признаки пометки удаления, версию данных. Регистры дополнительно хранят итоги — предрассчитанные остатки и обороты, благодаря которым отчёты строятся быстро. Именно поэтому ручная вставка строк в таблицу регистра ломает учёт: итоги перестают соответствовать движениям, и платформа начинает выдавать неверные остатки.

Транзакционность тоже контролирует платформа. Проведение документа, запись движений и пересчёт итогов выполняются в одной транзакции, управляемой механизмами 1С, а не внешними скриптами. Любое вмешательство вне этого механизма обходит блокировки и проверки согласованности.

Файловый режим: один файл 1Cv8.1CD

В файловом варианте вся база — конфигурация, данные, служебные структуры — находится в одном файле 1Cv8.1CD на локальном диске или сетевом ресурсе. Платформа сама реализует механизмы СУБД: индексы, блокировки, журнал транзакций. Установка отдельной СУБД не требуется, поэтому этот режим часто выбирают для небольших компаний и одиночных рабочих мест.

Ограничения режима существенны. При размещении файла на сетевом диске производительность резко падает с ростом числа одновременных пользователей, потому что блокировки и чтение идут через файловую систему. Файл имеет внутренние ограничения на размер отдельных таблиц, и при интенсивной работе фрагментируется. Практический признак перегрузки — заметные паузы при проведении документов и открытии списков уже при нескольких активных пользователях.

Обслуживание файловой базы включает периодическую проверку утилитой chdbfl.exe (поставляется с платформой) и тестирование с исправлением через конфигуратор. Обе операции выполняются только при отсутствии подключённых пользователей и только после создания резервной копии файла.

Клиент-серверный режим: 1С поверх SQL

В клиент-серверном варианте данные хранятся в промышленной СУБД — чаще всего Microsoft SQL Server или PostgreSQL. Между СУБД и пользователями стоит сервер 1С:Предприятия: именно он формирует SQL-запросы, управляет транзакциями, блокировками и кэшем. Клиенты подключаются к серверу 1С, а не к базе напрямую.

Этот режим снимает ограничения файлового варианта: поддерживаются сотни одновременных сеансов, регламентные задания выполняются на сервере, появляются штатные средства СУБД для резервного копирования и мониторинга. Цена вопроса — необходимость администрировать два продукта: и сервер 1С, и СУБД (рост базы, перестроение индексов, обновление статистики).

Важно понимать: даже в клиент-серверном режиме база в СУБД остаётся собственностью платформы. Имена таблиц генерируются служебно (например, _Reference123, _Document456), сопоставление с объектами метаданных хранится в системной таблице Params и может меняться при реструктуризации. Писать внешние скрипты, жёстко привязанные к этим именам, ненадёжно.

Сравнение режимов работы

Файловый режим

Подходит для 1–5 пользователей и небольших объёмов. Не требует СУБД, простое резервное копирование копированием файла. Ограничение: деградация скорости по сети и пределы размера таблиц.

Клиент-серверный режим

Подходит для десятков и сотен пользователей, круглосуточной работы и больших баз. Даёт надёжные бэкапы средствами СУБД. Ограничение: нужны лицензии на сервер 1С и СУБД, плюс квалифицированное администрирование.

Структура базы: что лежит внутри

Независимо от режима, логическая структура одинакова. Основные хранилища: справочники (нормативно-справочная информация), документы (факты хозяйственной деятельности), регистры накопления и сведений (движения и аналитические срезы), константы и настройки. Поверх них строятся виртуальные таблицы — остатки, обороты, срезы первых и последних, — которые платформа вычисляет из физических данных и итогов.

Отдельно хранятся служебные данные: пользователи и их роли, история версий (если включено версионирование), очереди регламентных заданий, настройки хранилища конфигурации. При переносе базы через выгрузку в файл .dt переносится всё это целиком, поэтому выгрузка/загрузка — штатный способ миграции между режимами и СУБД.

Полезно знать, что удаление объектов в 1С двухстадийное: пометка удаления, затем операция «Удаление помеченных объектов» с контролем ссылочной целостности. Платформа не даст удалить элемент справочника, пока на него ссылаются документы, — ещё один механизм, который обходится при прямом вмешательстве в таблицы.

Прямой доступ к данным: что можно и что нельзя

Вопрос «можно ли подключиться к базе 1С как к обычной базе данных» возникает у каждого интегратора. Ответ зависит от направления обмена. Чтение — условно допустимо: регламентированные отчёты, выгрузки в аналитические системы можно строить прямыми SQL-запросами к копии базы или через представления. При этом нужно учитывать, что структура таблиц не документирована и может измениться после обновления конфигурации.

Запись напрямую в таблицы СУБД запрещена практически всегда. Причины: обходятся проверки заполнения и права, не пересчитываются итоги регистров, нарушается нумерация документов, ломается механизм версионирования и обмена данными (изменения не регистрируются в планах обмена). Типичный итог — расхождение остатков, ошибки «несогласованности данных» и необходимость восстановления из копии.

Безопасные альтернативы для интеграции: встроенный язык запросов 1С, COM-соединение, OLE/Automation, HTTP- и веб-сервисы, опубликованные на сервере 1С, универсальный интерфейс OData, планы обмена и формат EnterpriseData. Все они заставляют запись проходить через объектную модель платформы, сохраняя целостность.

Типичные ошибки
01
Прямая вставка или обновление строк в таблицах SQL в обход платформы — итоги регистров расходятся с движениями, учёт приходится восстанавливать из копии.
02
Привязка внешних отчётов к служебным именам таблиц вида _Reference123 — после реструктуризации конфигурации отчёты перестают работать.
03
Копирование файла 1Cv8.1CD при открытых сеансах — полученная копия оказывается повреждённой или содержит частично записанные транзакции.
04
Чтение больших объёмов прямыми запросами к рабочей базе в часы пик — блокировки и деградация производительности у пользователей.

Резервное копирование и обслуживание

Для файловой базы минимальный надёжный способ — копирование файла 1Cv8.1CD при закрытых сеансах или штатная выгрузка в .dt через конфигуратор. Выгрузка в dt надёжнее как логический снимок, но на больших базах выполняется долго и требует монопольного доступа.

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

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

Безопасная проверка файловой базы
  1. 1
    Завершите все сеансы пользователей и убедитесь, что база не открыта ни одним процессом.
  2. 2
    Скопируйте файл 1Cv8.1CD в отдельный каталог как резервную копию.
  3. 3
    Запустите утилиту chdbfl.exe из каталога платформы и выполните проверку файла с исправлением ошибок.
  4. 4
    Откройте базу конфигуратором и выполните «Тестирование и исправление» с проверкой ссылочной целостности.
  5. 5
    Проверьте результат: база открывается, списки и отчёты строятся без ошибок, остатки сходятся с контрольными значениями.

Когда 1С не заменяет классическую СУБД

Иногда возникает соблазн использовать платформу 1С как универсальное хранилище для сторонних задач — например, держать в ней данные сайта или мобильного приложения. Это оправдано, только если данные логически принадлежат учётной системе и доступ идёт через штатные интерфейсы. Для произвольных высоконагруженных сценариев (тысячи внешних анонимных запросов, потоковая запись телеметрии) платформа не предназначена: лицензионная модель и архитектура сеансов делают такое использование дорогим и медленным.

Правильная граница: 1С — мастер-система для учётных данных, а внешние системы получают их через сервисы и обмены. Если требуется аналитика по большим объёмам, данные выгружают в отдельное аналитическое хранилище, где их можно читать любыми инструментами без риска для оперативной работы.

Маршрут решения

Как выбрать способ доступа к данным

Нужно читать данные для отчёта или аналитикиИспользуйте язык запросов 1С, OData или прямое чтение из копии базы — не из рабочей.
Нужно записывать данные из внешней системыИспользуйте HTTP-сервисы, веб-сервисы, COM или планы обмена — только через объектную модель платформы.
Пользователей больше 5–10 и работа идёт по сетиПланируйте переход на клиент-серверный режим с полноценной СУБД.
Нужна миграция между режимами или СУБДВыполните выгрузку в файл .dt и загрузку в новую базу, затем сверьте контрольные итоги.

Проверка результата и контроль целостности

После любых операций с базой — обслуживания, переноса, интеграции — нужна проверка. Минимальный набор: база открывается в конфигураторе и в режиме предприятия без ошибок; журнал регистрации не содержит новых критических сообщений; ключевые отчёты (оборотно-сальдовая ведомость, остатки склада) дают ожидаемые итоги.

Для интеграций дополнительно проверяйте ссылочную целостность: отсутствие «битых» ссылок вида «Объект не найден», корректную регистрацию изменений в планах обмена и совпадение количества записей в источнике и приёмнике.

Контрольные точки

Как проверить состояние базы

Открытие базы и построение отчётов
Норма

База открывается, отчёты строятся за обычное время

Тревожный признак

Ошибки при открытии, зависания, сообщения о несогласованности данных

Ссылочная целостность
Норма

Поиск «битых» ссылок не даёт результатов

Тревожный признак

В документах встречаются значения «Объект не найден»

Итоги регистров
Норма

Остатки по отчётам совпадают с данными движений

Тревожный признак

Расхождения остатков, отрицательные значения без причины

Резервная копия
Норма

Копия успешно восстанавливается на тестовом стенде

Тревожный признак

Копия не восстанавливается или восстановленная база не открывается

Часто задаваемые вопросы

Можно ли открыть файл 1Cv8.1CD без платформы 1С?

Штатных сторонних инструментов нет: формат файла внутренний и не документирован. Существуют неофициальные средства чтения, но они подходят только для аварийного извлечения данных и не гарантируют корректности. Рабочий способ доступа — платформа: конфигуратор, режим предприятия или выгрузка в dt.

Как узнать, в каком режиме работает база?

В режиме предприятия откройте «О программе» — там указан режим (файловый или клиент-серверный) и, для сервера, тип СУБД. Также это видно в списке информационных баз стартера: у клиент-серверных баз указаны сервер и имя базы данных.

Безопасно ли читать данные напрямую из SQL-базы 1С?

Чтение не разрушает данные, но создаёт риски: запросы могут вызывать блокировки и замедлять работу пользователей, а привязка к недокументированной структуре таблиц ломается после обновлений конфигурации. Безопасный вариант — читать из резервной копии или реплики, либо использовать OData и запросы 1С.

Что делать, если файл базы не открывается после сбоя?

Не запускайте базу повторно и не удаляйте никакие файлы. Сделайте копию 1Cv8.1CD «как есть», затем проверьте копию утилитой chdbfl.exe с исправлением, после чего выполните тестирование и исправление в конфигураторе. Если ошибки остаются — восстанавливайтесь из последней проверенной резервной копии.

Когда файловую базу пора переводить в клиент-серверный режим?

Признаки: одновременно работают более 5–10 пользователей, документы проводятся заметно медленно, файл базы стабильно растёт и приближается к внутренним ограничениям, требуется круглосуточная работа и регламентные задания. Переход выполняется выгрузкой в dt и загрузкой в базу на сервере 1С.

Можно ли использовать 1С как базу данных для сайта или мобильного приложения?

Технически — через HTTP-сервисы или OData, и это нормальный сценарий для данных, принадлежащих учёту (цены, остатки, заказы). Но для высоких анонимных нагрузок платформа не рассчитана: каждый сеанс потребляет ресурсы и лицензии. Для массового внешнего доступа обычно делают промежуточное хранилище, синхронизируемое с 1С.

Итог

Что важно запомнить

1С:Предприятие — самодостаточная система управления данными: файловый режим хранит всё в 1Cv8.1CD, клиент-серверный — в таблицах внешней СУБД под контролем сервера 1С. Чтение извне допустимо с осторожностью и лучше из копии, запись — только через объектную модель платформы. Резервные копии делайте штатными средствами и регулярно проверяйте их восстановлением.