С самого начала этого раздела скажем, что сведения, приведенные в нем, совершенно не обязательно учить наизусть или носить с собой в виде шпаргалки. Чтобы не зависеть от особенностей базы, связанных с версией релиза, режимом совместимости и др., нужно просто помнить, что их всегда можно вызвать из вашей базы кодом:
ТаблицаСоСтруктурой = ПолучитьСтруктуруХраненияБазыДанных();
ТаблицаСоСтруктурой.Сортировать("Метаданные, ИмяТаблицыХранения");
Функция глобального контекста ПолучитьСтруктуруХраненияБазыДанных() возвращает таблицу значений, доступна на сервере, в толстом клиенте и внешнем соединении. Полученную таблицу значений сразу есть смысл отсортировать и затем любым известным способом вывести на форму. Также можно просто посмотреть ее на останове в отладчике и сразу там же вывести в табличный документ, чтобы иметь все возможности и удобства по работе с полученным списком: поиск, сохранение и др.
Создадим пустую базу. В ней создадим три прикладных объекта: Константа1, Константа2 и Справочник1. Сохраним изменения в базе и посмотрим на ее структуру описанным выше способом (в таблице 3.12.1 приведены только интересующие нас столбцы).
Таблица 3.12.1. Имена таблиц, изначально созданных при организации с нуля базы с двумя константами и справочником
| Имя таблицы хранения | Имя таблицы | Метаданные | Назначение | 
|---|---|---|---|
| "SystemSettings" | "" | "" | "ХранилищеСистемныхНастроек" | 
| "CommonSettings" | "" | "" | "ХранилищеОбщихНастроек" | 
| "RepSettings" | "" | "" | "ХранилищеПользовательскихНастроекОтчетов" | 
| "RepVarSettings" | "" | "" | "ХранилищеВариантовОтчетов" | 
| "FrmDtSettings" | "" | "" | "ХранилищеНастроекДанныхФорм" | 
| "UsersWorkHistory" | "" | "" | "ИсторияРаботыПользователей" | 
| "Const8" | "" | "Константа.Константа1" | "Константа" | 
| "Const10" | "" | "Константа.Константа2" | "Константа" | 
| "Reference7" | "Справочник.Справочник1" | "Справочник.Справочник1" | "Основная" | 
Мы работаем с релизом 8.2.18, без использования режима совместимости, поэтому каждая константа хранится в своей таблице. Если переключить режим совместимости, останется одна таблица, отвечающая за все константы.
Как будут выглядеть эти таблицы, если на эту же базу в клиент-серверной версии «1С» посмотреть средствами SQL, показано на рис. 3.12.1.

Рис. 3.12.1. Имена таблиц, изначально созданных файловой версией при создании с нуля базы с двумя константами и справочником после загрузки в клиент-серверную версию и просмотре через SQL Server Management Studio
Из приведенных выше таблицы 3.12.1 и рисунка 3.12.1 делаем выводы:
В предыдущей главе обсуждалась выгрузка сообщений обмена как узкое место при параллельной работе. Создадим план обмена и включим в него Константу2 и Справочник1, а Константу1 включать не будем. В таблице 3.12.2 видно, какие таблицы для каких объектов метаданных добавились. При добавлении еще одного плана обмена и включении регистрации в нем Константы2 и Справочника1 новые таблицы для них не появятся. В дальнейшем новые объекты включать в план обмена не будем, чтобы не загромождать материал. Скажем только, что ровно по одной таблице с назначением «РегистрацияИзменений» и подстрокой «ChngR» в имени будет создано для каждого из объектов метаданных, зарегистрированных хотя бы в одном плане обмена.
Таблица 3.12.2. Имена таблиц, добавленных к таблицам объектом метаданных после включения их в план обмена
| Имя таблицы хранения | Имя таблицы | Метаданные | Назначение | 
|---|---|---|---|
| "SystemSettings" | "" | "" | "ХранилищеСистемныхНастроек" | 
| "CommonSettings" | "" | "" | "ХранилищеОбщихНастроек" | 
| "RepSettings" | "" | "" | "ХранилищеПользовательскихНастроекОтчетов" | 
| "RepVarSettings" | "" | "" | "ХранилищеВариантовОтчетов" | 
| "FrmDtSettings" | "" | "" | "ХранилищеНастроекДанныхФорм" | 
| "UsersWorkHistory" | "" | "" | "ИсторияРаботыПользователей" | 
| "Const8" | "" | "Константа.Константа1" | "Константа" | 
| "Const10" | "" | "Константа.Константа2" | "Константа" | 
| "ConstChngR15" | "" | "Константа.Константа2" | "РегистрацияИзмененийКонстанты" | 
| "Node13" | "ПланОбмена.ПланОбмена1" | "ПланОбмена.ПланОбмена1" | "Основная" | 
| "Reference7" | "Справочник.Справочник1" | "Справочник.Справочник1" | "Основная" | 
| "ReferenceChngR14" | "" | "Справочник.Справочник1" | "РегистрацияИзменений" | 
Создадим по одному объекту каждого вида.
Объектам, которые могут иметь табличные части, добавим их (одному из документов – две).
Обратим внимание на то, что, когда мы получаем информацию о структуре через останов на отладчике (см. рис. 3.12.2), элементами строки, отвечающей за таблицу, являются также вложенные таблицы значений: «Индексы» и «Поля». Через них можно получить сведения о структуре индексов и структуре полей, и в двух следующих главах мы эти средством воспользуемся.

Рис. 3.12.2. Просмотр структуры базы через останов на отладчике. Видны вложенные таблицы «Индексы» и «Поля»
В таблице 3.12.3 представлены созданные таблицы базы. В столбце «Назначение» для некоторых таблиц курсивом добавлено условие, при котором эта таблица добавляется, если такое условие требует пояснения.
Таблица 3.12.3. Пример имен таблиц, созданных в базе. В базу добавлены все возможные объекты
| Имя таблицы хранения | Имя таблицы | Метаданные | Назначение | 
|---|---|---|---|
| Служебные | |||
| "CommonSettings" | "" | "" | "ХранилищеОбщихНастроек" | 
| "ExtDataSrcPrms" | "" | "" | "Основная" | 
| "FrmDtSettings" | "" | "" | "ХранилищеНастроекДанныхФорм" | 
| "RepSettings" | "" | "" | "ХранилищеПользовательскихНастроекОтчетов" | 
| "RepVarSettings" | "" | "" | "ХранилищеВариантовОтчетов" | 
| "SystemSettings" | "" | "" | "ХранилищеСистемныхНастроек" | 
| "UsersWorkHistory" | "" | "" | "ИсторияРаботыПользователей" | 
| Бизнес-процессы | |||
| "BPr23" | "БизнесПроцесс.БизнесПроцесс1" | "БизнесПроцесс.БизнесПроцесс1" | "Основная" | 
| "BPrPoints24" | "" | "БизнесПроцесс.БизнесПроцесс1" | "ТочкиМаршрута" | 
| "BPr23.VT60" | "БизнесПроцесс.БизнесПроцесс1.ТабличнаяЧасть1" | "БизнесПроцесс.БизнесПроцесс1.ТабличнаяЧасть.ТабличнаяЧасть1" | "ТабличнаяЧасть" | 
| Документы | |||
| "Document16" | "Документ.Документ1" | "Документ.Документ1" | "Основная" | 
| "Document16.VT47" | "Документ.Документ1.ТабличнаяЧасть1" | "Документ.Документ1.ТабличнаяЧасть.ТабличнаяЧасть1" | "ТабличнаяЧасть" | 
| "Document16.VT49" | "Документ.Документ1.ТабличнаяЧасть2" | "Документ.Документ1.ТабличнаяЧасть.ТабличнаяЧасть2" | "ТабличнаяЧасть" | 
| Журналы документов | |||
| "DocumentJournal37" | "ЖурналДокументов.ЖурналДокументов1" | "ЖурналДокументов.ЖурналДокументов1" | "Основная" | 
| Задачи | |||
| "Task25" | "Задача.Задача1" | "Задача.Задача1" | "Основная" | 
| "Task25.VT62" | "Задача.Задача1.ТабличнаяЧасть1" | "Задача.Задача1.ТабличнаяЧасть.ТабличнаяЧасть1" | "ТабличнаяЧасть" | 
| Константы | |||
| "Const8" | "" | "Константа.Константа1" | "Константа" | 
| "Const10" | "" | "Константа.Константа2" | "Константа" | 
| "ConstChngR15" | "" | "Константа.Константа2" | "РегистрацияИзмененийКонстанты" | 
| Перечисления | |||
| "Enum26" | "Перечисление.Перечисление1" | "Перечисление.Перечисление1" | "Основная" | 
| Планы видов расчета | |||
| "CKinds21" | "ПланВидовРасчета.ПланВидовРасчета1" | "ПланВидовРасчета.ПланВидовРасчета1" | "Основная" | 
| "CKindsDN86" | "" | "ПланВидовРасчета.ПланВидовРасчета1" | "ПорядокВытеснения" (создается, если у плана видов расчета установлен флажок ИспользуетПериодДействия) | 
| "CKinds21.BaseCK" | "ПланВидовРасчета.ПланВидовРасчета1.БазовыеВидыРасчета" | "ПланВидовРасчета.ПланВидовРасчета1.ТабличнаяЧасть.БазовыеВидыРасчета" | "БазовыеВидыРасчета" (создается, если у плана видов расчета свойство "Зависимость от базы" не "Не зависит") | 
| "CKinds21.LeadingCK" | "ПланВидовРасчета.ПланВидовРасчета1.ВедущиеВидыРасчета" | "ПланВидовРасчета.ПланВидовРасчета1.ТабличнаяЧасть.ВедущиеВидыРасчета" | "ВедущиеВидыРасчета" | 
| "CKinds21.DisplacedCK" | "ПланВидовРасчета.ПланВидовРасчета1.ВытесняющиеВидыРасчета" | "ПланВидовРасчета.ПланВидовРасчета1.ТабличнаяЧасть.ВытесняющиеВидыРасчета" | "ВытесняющиеВидыРасчета" (создается, если у плана видов расчета установлен флажок ИспользуетПериодДействия) | 
| "CKinds21.VT58" | "ПланВидовРасчета.ПланВидовРасчета1.ТабличнаяЧасть1" | "ПланВидовРасчета.ПланВидовРасчета1.ТабличнаяЧасть.ТабличнаяЧасть1" | "ТабличнаяЧасть" | 
| Планы видов характеристик | |||
| "Chrc27" | "ПланВидовХарактеристик.ПланВидовХарактеристик1" | "ПланВидовХарактеристик.ПланВидовХарактеристик1" | "Основная" | 
| "Chrc27.VT51" | "ПланВидовХарактеристик.ПланВидовХарактеристик1.ТабличнаяЧасть1" | "ПланВидовХарактеристик.ПланВидовХарактеристик1.ТабличнаяЧасть.ТабличнаяЧасть1" | "ТабличнаяЧасть" | 
| Планы обмена | |||
| "Node13" | "ПланОбмена.ПланОбмена1" | "ПланОбмена.ПланОбмена1" | "Основная" | 
| "Node13.VT56" | "ПланОбмена.ПланОбмена1.ТабличнаяЧасть1" | "ПланОбмена.ПланОбмена1.ТабличнаяЧасть.ТабличнаяЧасть1" | "ТабличнаяЧасть" | 
| Планы счетов | |||
| "Acc22" | "ПланСчетов.ПланСчетов1" | "ПланСчетов.ПланСчетов1" | "Основная" | 
| "Acc22.ExtDim72" | "ПланСчетов.ПланСчетов1.ВидыСубконто"(создается, если максимальное количество субконто больше 0) | "ПланСчетов.ПланСчетов1.ТабличнаяЧасть.ВидыСубконто" | "ВидыСубконто" | 
| "Acc22.VT53" | "ПланСчетов.ПланСчетов1.ТабличнаяЧасть1" | "ПланСчетов.ПланСчетов1.ТабличнаяЧасть.ТабличнаяЧасть1" | "ТабличнаяЧасть" | 
| Последовательности | |||
| "Seq41" | "Последовательность.Последовательность1" | "Последовательность.Последовательность1" | "Основная" | 
| "SeqB42" | "" | "Последовательность.Последовательность1" | "ГраницыПоследовательности" | 
| Регистры бухгалтерии | |||
| "AccRg28" | "РегистрБухгалтерии.РегистрБухгалтерии1" | "РегистрБухгалтерии.РегистрБухгалтерии1" | "Основная" | 
| "AccRgAT030" | "" | "РегистрБухгалтерии.РегистрБухгалтерии1" | "ИтогиПоСчетам" | 
| "AccRgAT174" | "" | "РегистрБухгалтерии.РегистрБухгалтерии1" | "ИтогиПоСчетамССубконто1" (создается, если максимальное количество субконто у плана счетов больше 0) | 
| "AccRgAT275" | "" | "РегистрБухгалтерии.РегистрБухгалтерии1" | "ИтогиПоСчетамССубконто2" (создается, если максимальное количество субконто у плана счетов больше 1) | 
| "AccRgCT65" | "" | "РегистрБухгалтерии.РегистрБухгалтерии1" | "ИтогиМеждуСчетами" " (создается, если регистр поддерживает корреспонденцию) | 
| "AccRgED77" | """ | "РегистрБухгалтерии.РегистрБухгалтерии1" | "ЗначенияСубконто" (создается, если максимальное количество субконто у плана счетов больше 0) | 
| "AccRgOpt34" | "" | "РегистрБухгалтерии.РегистрБухгалтерии1" | "НастройкиХраненияИтоговРегистраБухгалтерии" | 
| Регистры накопления типа «Остатки» | |||
| "AccumRg17" | "РегистрНакопления.РегистрНакопления1" | "РегистрНакопления.РегистрНакопления1" | "Основная" | 
| "AccumRgAggGrid92" | "" | "РегистрНакопления.РегистрНакопления1" | "СписокАгрегатовРегистровНакопления" (создалась после создания агрегатов для Регистра накопления2) | 
| "AccumRgAggOpt94" | "" | "РегистрНакопления.РегистрНакопления1" | "НастройкиРежимаАгрегатовРегистровНакопления" " (создалась после создания агрегатов для Регистра накопления2) | 
| "AccumRgOpt20" | "" | "РегистрНакопления.РегистрНакопления1" | "НастройкиХраненияИтоговРегистраНакопления" | 
| "AccumRgT19" | "" | "РегистрНакопления.РегистрНакопления1" | "Итоги" | 
| Регистры накопления типа «Обороты» | |||
| "AccumRg78" | "РегистрНакопления.РегистрНакопления2" | "РегистрНакопления.РегистрНакопления2" | "Основная" | 
| "AccumRgAgg31h97" | "" | "РегистрНакопления.РегистрНакопления2" | "АгрегатРегистраНакопления" (создалась после создания агрегатов) | 
| "AccumRgAggGrid93" | "" | "РегистрНакопления.РегистрНакопления2" | "СписокАгрегатовРегистровНакопления" (создалась после создания агрегатов) | 
| "AccumRgAggOpt95" | "" | "РегистрНакопления.РегистрНакопления2" | "НастройкиРежимаАгрегатовРегистровНакопления" (создалась после создания агрегатов) | 
| "AccumRgBf99" | "" | "РегистрНакопления.РегистрНакопления2" | "БуферОборотов" (создалась после создания агрегатов) | 
| "AccumRgDl98" | "" | "РегистрНакопления.РегистрНакопления2" | "НовыеОбороты" (создалась после создания агрегатов) | 
| "AccumRgOpt79" | "" | "РегистрНакопления.РегистрНакопления2" | "НастройкиХраненияИтоговРегистраНакопления" | 
| "AccumRgSt100" | "" | "РегистрНакопления.РегистрНакопления2" | "СтатистикаЗапросов" (создалась после создания агрегатов) | 
| "AccumRgTn85" | "" | "РегистрНакопления.РегистрНакопления2" | "Обороты" (создается, если есть хоть одно измерение) | 
| Регистры расчета | |||
| "CRg36" | "РегистрРасчета.РегистрРасчета1" | "РегистрРасчета.РегистрРасчета1" | "Основная" | 
| "CRgActP88" | "" | "РегистрРасчета.РегистрРасчета1" | "ПериодыДействия" (создается, если установлено свойство "Период действия" ) | 
| "CRgRecalc87" | "РегистрРасчета.РегистрРасчета1.Перерасчет.Перерасчет1" | "РегистрРасчета.РегистрРасчета1.Перерасчет.Перерасчет1" | "Основная" (создается, если добавлен перерасчет ) | 
| Регистры сведений | |||
| "InfoRg38" | "РегистрСведений.РегистрСведений1" | "РегистрСведений.РегистрСведений1" | "Основная" | 
| Справочники | |||
| "Reference7" | "Справочник.Справочник1" | "Справочник.Справочник1" | "Основная" | 
| "ReferenceChngR14" | "" | "Справочник.Справочник1" | "РегистрацияИзменений" | 
| "Reference7.VT45" | "Справочник.Справочник1.ТабличнаяЧасть1" | "Справочник.Справочник1.ТабличнаяЧасть.ТабличнаяЧасть1" | "ТабличнаяЧасть" | 
Несколько комментариев к таблице: