Общие сведения об организации хранения данных

#std683

Область применения: управляемое приложение, мобильное приложение, обычное приложение.

Методическая рекомендация (полезный совет)

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

2. При выборе типа объектов метаданных в общем случае следует руководствоваться следующей схемой прикладного решения:

* Стрелки на схеме обозначают взаимосвязи между данными (взаимные ссылки).

На схеме выделяются следующие блоки:

1. Условно-постоянная информация. К этой части относится информация, которая вводится один раз, сравнительно редко изменяется и многократно используется. Примером такой информации могут служить различные классификаторы, настройки, перечни, реестры, нормативно-справочная информация и т.п.

2. Различные события процессов предметной области, которые привязаны ко времени и могут порождать при регистрации различные сведения, изменять значения показателей. Пример – документооборот предприятия, ведение учета; регистрация заявок, звонков и т. п.

3. Накопленные сведения, значения показателей, которые характеризуют процессы и текущее состояние прикладной области. В отличие от первых двух частей, эти данные имеют необъектную природу и не являются самостоятельными сущностями с точки зрения прикладной области. Пример – история продаж товара, остатки на складах, текущий бухгалтерский баланс, история изменения курсов валют и т.п.

Отдельно выделяются средства для анализа и обработки данных, отчеты, механизмы, которые опираются на данные всех остальных блоков, но сами данных не содержат.

Подробнее о задачах и принципах хранении информации см. в книге «Профессиональная разработка в системе 1С Предприятие 8» глава 6.

2.1. Таким образом, упрощенно, для каждой сущности предметной области необходимо выбрать соответствующий блок по следующей схеме:

Более подробные критерии выбора того или иного блока:

Критерий /
блок
Условно-постоянная
информация
События процессов
предметной области
Накопленные сведения,
значения показателей
Основное предназначение Необходимо хранить нормативно-справочную информацию, реестры Необходимо регистрировать события процессов, обеспечивать документальное подтверждение сведениям Необходимо хранить данные, которые характеризуют процессы и текущее состояние прикладной области
Отслеживание изменения состояния Не требуется Требуется регистрация документа к учету, отмена регистрации учета документа, учет запусков или окончаний процесса, изменения состояния задач, формирование движений Не требуется
Иерархия, группировка данных Требуется иерархия и группировка, возможно между разными сущностями Не требуется Не требуется
Ключевые свойства Необходимо иметь наименование, код Необходимо учитывать дату события, его номер Не требуется
Хранение значений дополнительных реквизитов сущности Необходимо хранить редко изменяемые реквизиты произвольных данных Необходимо хранить ссылки на другие объекты и значения параметров, характеризующие событие Необходимо хранить только значения реквизитов для других объектов базы
Нумерация Необходимы серии кодов по всем элементам данного типа или в пределах иерархии Необходимы серии номеров по всем элементам данного типа или в пределах периода по дате, сквозная нумерация объектов разных типов Не требуется

2.2. Затем, необходимо принять решение о конкретном виде типа объекта метаданных внутри выбранного блока:

2.2.1. Для хранения условно-постоянной информации:

Область применения (уточнение): управляемое приложение, обычное приложение.

1. Если требуется хранение плана счетов для организации учета по принципам двойной записи, то используется специализированный объект метаданных «План счетов»
2. Если требуется хранение перечня видов расчета для организации учета начислений и удержаний, то используется специализированный объект метаданных «План видов расчета»
3. Если требуется хранить список характеристик (свойств), причем состав самого списка, тип характеристик, их состав определяются пользователем, то используется объект метаданных «План видов характеристик»

4. Если требуется хранить одиночное значение, которое редактирует пользователь (как правило, это администратор, выполняющий настройки системы), не требующего ссылок из других данных, то используется объект метаданных «Константа»
5. Если необходимо определить фиксированный список значений не редактируемый пользователем, без каких-либо дополнительных реквизитов, то используется объект метаданных «Перечисление»
6. В остальных случаях, как правило, используется объект метаданных «Справочник»

Более подробные критерии выбора того или иного вида объекта метаданных:

Критерий /
тип объекта
Константа Перечисление План видов
характеристик *
Справочник
Основное предназначение Необходимо хранение одиночных значений, предопределенных данных Необходимо хранение списка неизменных представлений без дополнительных их атрибутов Необходимо хранение списка сущностей и значений характеристик экземпляров сущности Требуется хранение списка объектов и значений их атрибутов
Добавление и редактирование пользователем Требуется только изменение значения Не требуется Требуется добавление, удаление и изменение элементов, редактирование состава и значений характеристик сущности Требуется добавление, удаление, изменение элементов
Иерархия, группировка данных Не требуется Не требуется Требуется в пределах одной сущности Требуется в пределах одной сущности или между разными сущностями
Хранение значений дополнительных реквизитов сущности Не требуется Не требуется Необходимо хранить произвольные данные для атрибутов сущности Необходимо хранить произвольные данные для атрибутов сущности
Хранение списков значений дополнительных реквизитов Не требуется Не требуется Требуется хранение списков наборов значений реквизитов для сущности Требуется хранение списков наборов значений реквизитов для сущности
Возможность ввода на основании других объектов Не требуется Не требуется Необходим ввод новых элементов с использованием информации других объектов Необходим ввод новых элементов с использованием информации других объектов
Нумерация Не требуется Не требуется Необходимы серии кодов по всем элементам одного типа или в пределах группировки Необходимы серии кодов по всем элементам одного типа или в пределах группировки или подчинения

* область применения (уточнение): управляемое приложение, обычное приложение.

2.2.2. Для хранения событий процессов предметной области:

Область применения (уточнение): управляемое приложение, обычное приложение.

1. Если требуется учет одиночных событий, адресованных некоторому исполнителю (пользователю, сотруднику, группе или роли) не требуется формирование движений по результатам события: то используется объект метаданных «Задача»
2. Если требуется регистрировать в системе возникновение и ход регулярного процесса, состоящего из последовательности действий (событий), то используется объект метаданных «Бизнес-процесс». Для учета событий, действий в рамках процесса используется объект метаданных «Задача»

3. В остальных случаях, как правило, используется объект метаданных «Документ»

Более подробные критерии выбора того или иного вида объекта метаданных:

Критерий /
тип объекта
Задача * Бизнес-процесс *
(с задачами)
Документ
Основное предназначение Необходимо вести учет одиночных событий, адресованных некоторым исполнителям Необходимо вести учет последовательности событий, адресованных некоторым исполнителям Необходима регистрация событий во времени, генерация вторичных данных, соответствующих этим событиям
Вложенность Не требуется Требуется учет процессов, вложенных в другие процессы (иерархия задач) Не требуется
Объединение в журналы Не требуется Не требуется Необходимо объединение документов разных видов в одном журнале
Состояние объекта Требуются состояния «новый», «выполнено» Требуются состояния «новый», «в работе», «завершен» Требуются состояния «проведен», «не проведен»
Нумерация Необходимы серии номеров по всем задачам данного вида или в пределах периода по дате Необходимы серии номеров по всем процессам данного вида или в пределах периода по дате, нумерация событий внутри процесса Необходимы серии номеров для документов разных видов – сквозные, или в пределах периода по дате

* область применения (уточнение): управляемое приложение, обычное приложение.

2.2.3. Для хранения накопленных сведений, значений показателей:

Область применения (уточнение): управляемое приложение, обычное приложение.

1. Если требуется хранение данных учета с использованием принципа двойной записи, то используется специализированный объект метаданных «Регистр бухгалтерии»
2. Если требуется хранение результатов расчета учета начислений и удержаний, то используется специализированный  объект метаданных «Регистр расчета»

3. Если требуется хранение изменений показателей – приход и расход, получение остатков и оборотов за период, то используется объект метаданных «Регистр накопления».
4. Во всех остальных случаях используется объект метаданных «Регистр сведений».

Более подробные критерии выбора того или иного вида объекта метаданных:

Критерий /
тип объекта
Регистр накоплений Регистр сведений
Основное предназначение Требуется хранение изменений данных - прихода и расхода значений показателей Требуется хранение информации в виде наборов записей, регистрация некоторых сведений, значений
Получение данных Требуется получение остатков, оборотов данных Необходимо получение среза информации на момент времени или текущего значения показателей
Подтверждение происхождения данных Требуется обязательная связь с регистрирующим документом Связь не обязательна

3. Пример выбора типов объектов метаданных.
Пусть некоторая организация занимается периодическим анкетированием. При заполнении анкеты указывается дата анкетирования. В анкете указывается набор вопросов, результатом заполнения анкеты является набор ответов. Сущность «Анкета» привязана к дате, порождает статистику – ответы на вопросы.

Таким образом, имеем: