Комментарии (1)
Ответ сгенерирован нейросетью и может содержать ошибки
Представление объектов 1С в СУБД
Это фундаментальный вопрос для понимания архитектуры 1С. Платформа транслирует объекты конфигурации в таблицы и структуры SQL.
Основной принцип: ORM в действии
1С использует объектно-реляционное отображение (ORM). Каждый объект конфигурации преобразуется в набор таблиц СУБД:
Справочник "Контрагенты"
↓
Таблица _Reference123 (основные реквизиты)
↓
Таблица _RfRc123 (табличные части)
↓
Таблица _DeRl123 (удаления)
Справочники и Документы
Справочник (Документы аналогично) представлены тремя таблицами:
-
_Reference{N} — основная таблица объектов
SELECT ID, -- GUID объекта ParentID, -- GUID родителя (для иерархии) Code, -- Код справочника Description, -- Наименование DataVersion -- Версия для синхронизации FROM _Reference123; -
_RfRc{N} — табличные части
SELECT ID, -- GUID записи табчасти ParentID, -- GUID родительского объекта Recorder, -- Номер строки Field1, Field2, ... -- Реквизиты табчасти FROM _RfRc123; -
_DeRl{N} — таблица удалений (для синхронизации)
SELECT ID, Class FROM _DeRl123;
Регистры
Регистр накопления (например, "Остатки"):
SELECT
RecordType, -- 0 = приход, 1 = расход
Period, -- DateTime
LineNumber, -- Номер строки
Recorder, -- GUID документа
Active, -- Флаг активности
Склад, -- Реквизит регистра
Товар, -- Реквизит регистра
Количество, -- Измерение
Сумма -- Ресурс
FROM _Acc{N};
Справочники с иерархией
Для иерархических справочников используется самоссылающаяся таблица:
SELECT
ID, -- GUID объекта
ParentID, -- GUID родителя (NULL для корня)
IsFolder, -- 1 если это группа, 0 если элемент
Code,
Description
FROM _Reference456;
Система константизации ID
Каждый объект имеет внутренний ID:
DUID = ((УникальныйИД >> 112) ^ (УникальныйИД << 16)) & 0xFFFFFFFFFFFFFFFF
1С использует эту систему для оптимизации, а не прямые GUID.
Служебные таблицы
_IDRRef — маппинг ID → GUID
SELECT ID, UUID FROM _IDRRef;
_Info — информация о конфигурации
SELECT
Fld as Field,
Val as Value
FROM _Info;
Реквизиты объектов в таблицах
Каждый реквизит — колонка в таблице:
// В конфигураторе: Справочник.Контрагенты
// Реквизиты:
// - Код (String)
// - Наименование (String)
// - ИНН (String)
// - КПП (String)
FLD_1, -- Код
FLD_2, -- Наименование
FLD_3, -- ИНН
FLD_4 -- КПП
Связи и References
Связь на другой справочник хранится как GUID:
-- Реквизит "Контрагент" в документе "Счёт"
SELECT
ID,
FLD_1 as Контрагент -- GUID ссылки на Контрагентов
FROM _Document789;
Поиск объекта в коде
// В платформе 1С это простая операция:
Объект = Справочники.Контрагенты.ПолучитьСсылку(GUID);
// В СУБД преобразуется в:
SELECT * FROM _Reference123 WHERE ID = @ID;
Ключевые особенности
- GUID как первичный ключ — глобальная уникальность
- DataVersion — для отслеживания изменений в синхронизации
- RecordType в регистрах — для приходов/расходов
- Денормализация — реквизиты хранятся колонками, не в отдельных таблицах
- _Deferred таблицы — для отложенных обновлений
Практическое применение
Понимание этой модели критично для:
- Оптимизации запросов — знаешь структуру → пишешь эффективный SQL
- Синхронизации 1С — понимаешь логику репликации
- Работы с СУБД напрямую — на скорость в 100+ раз быстрее платформы
- Восстановления данных — прямая работа с СУБД при критических сбоях
Вывод: 1С транслирует объекты в нормализованно-денормализованную структуру SQL. Понимание этого соответствия — ключ к глубокому пониманию платформы и её оптимизации.