#std683¶
Общие сведения об организации хранения данных¶
1.¶
При проектировании системы одна из ключевых задач - выбрать типы объектов метаданных для хранения сущностей предметной области.
Неправильный выбор типов объектов приводит к неэффективности решения, усложняет развитие и мешает адаптации к изменению состава задач.
2.¶
При выборе типа объектов метаданных в общем случае используйте следующую схему прикладного решения:
flowchart TB
subgraph STORAGE["Хранение данных"]
BLOCK1["<b>1. Условно-постоянная информация</b><br/>────────────────────────<br/>Константы<br/>Справочники<br/>Перечисления<br/>Планы видов характеристик<br/>Планы счетов<br/>Планы видов расчета"]
BLOCK2["<b>2. События процессов предметной области</b><br/>────────────────────────<br/>Документы<br/>Бизнес-процессы<br/>Задачи"]
BLOCK3["<b>3. Накопленные сведения, значения показателей</b><br/>────────────────────────<br/>Регистры сведений<br/>Регистры накопления<br/>Регистры бухгалтерии<br/>Регистры расчета"]
BLOCK2 --> BLOCK1
BLOCK3 --> BLOCK1
BLOCK3 --> BLOCK2
end
REPORTS["Получение отчетности и обработка данных<br/>────────────────────────<br/>Отчеты<br/>Обработки"]
STORAGE <--> REPORTS
Стрелки на схеме обозначают взаимосвязи между данными (взаимные ссылки).
На схеме выделяются три блока:
- Условно-постоянная информация. Информация вводится один раз, сравнительно редко меняется и многократно используется. Примеры: классификаторы, настройки, перечни, реестры, нормативно-справочная информация.
- События процессов предметной области. События привязаны ко времени и при регистрации могут порождать сведения или изменять значения показателей. Примеры: документооборот, учетные события, регистрация заявок и звонков.
- Накопленные сведения, значения показателей. Данные характеризуют процессы и текущее состояние прикладной области. В отличие от первых двух блоков, это данные необъектной природы: они не являются самостоятельными сущностями. Примеры: история продаж, остатки на складах, текущий баланс, история курсов валют.
Отдельно выделяются средства анализа и обработки данных: отчеты и механизмы, которые опираются на данные всех блоков, но сами данные не хранят.
Подробнее о задачах и принципах хранения информации: книга «Профессиональная разработка в системе 1С Предприятие 8», глава 6.
2.1.¶
Упрощенно, для каждой сущности предметной области сначала выберите блок:
- если нужно хранить сравнительно редко изменяющуюся информацию,
не привязанную ко времени,
выбирайте блок условно-постоянной информации (
1); - если нужно регистрировать события,
требующие документального подтверждения,
и отслеживать последовательность на временной оси,
выбирайте блок событий процессов (
2); - в остальных случаях
относите сущность
к блоку сведений и значений показателей (
3).
Развернутые критерии выбора блока:
| Критерий | Значение |
|---|---|
| Основное предназначение | Хранение нормативно-справочной информации и реестров. |
| Отслеживание изменения состояния | Не требуется. |
| Иерархия и группировка данных | Требуется, в том числе между разными сущностями. |
| Ключевые свойства | Нужны Наименование и Код. |
| Хранение значений дополнительных реквизитов сущности | Нужно хранить редко изменяемые реквизиты произвольных данных. |
| Нумерация | Нужны серии кодов по всем элементам типа или в пределах иерархии. |
| Критерий | Значение |
|---|---|
| Основное предназначение | Регистрация событий процессов и документальное подтверждение сведений. |
| Отслеживание изменения состояния | Требуется. Например: регистрация/отмена регистрации документа, учет запусков и окончаний процесса, смена состояния задач, формирование движений. |
| Иерархия и группировка данных | Не требуется. |
| Ключевые свойства | Нужно учитывать дату события и его номер. |
| Хранение значений дополнительных реквизитов сущности | Нужно хранить ссылки на другие объекты и параметры, характеризующие событие. |
| Нумерация | Нужны серии номеров по всем элементам данного типа или в пределах периода по дате, включая сквозную нумерацию объектов разных типов. |
| Критерий | Значение |
|---|---|
| Основное предназначение | Хранение данных, характеризующих процессы и текущее состояние прикладной области. |
| Отслеживание изменения состояния | Не требуется. |
| Иерархия и группировка данных | Не требуется. |
| Ключевые свойства | Не требуется. |
| Хранение значений дополнительных реквизитов сущности | Нужно хранить только значения реквизитов для других объектов базы. |
| Нумерация | Не требуется. |
2.2.¶
После выбора блока примите решение о конкретном типе объекта метаданных внутри этого блока.
Уточнение
Для пп. 2.2.1-2.2.3
область применения:
управляемое приложение, обычное приложение.
2.2.1.¶
Для хранения условно-постоянной информации:
- Для хранения плана счетов по принципам двойной записи используйте объект метаданных «План счетов».
- Для хранения перечня видов расчета для учета начислений и удержаний используйте объект метаданных «План видов расчета».
- Для хранения списка характеристик, когда состав списка, тип характеристик и их состав определяет пользователь, используйте «План видов характеристик».
- Для хранения одиночного значения, редактируемого пользователем (обычно администратором) и не требующего ссылок из других данных, используйте «Константа».
- Для фиксированного списка значений, который не редактируется пользователем и не имеет дополнительных реквизитов, используйте «Перечисление».
- В остальных случаях, как правило, используйте «Справочник».
Развернутые критерии выбора типа объекта:
| Критерий | Значение |
|---|---|
| Основное предназначение | Хранение одиночных значений, предопределенных данных. |
| Добавление и редактирование пользователем | Требуется только изменение значения. |
| Иерархия и группировка данных | Не требуется. |
| Хранение значений дополнительных реквизитов сущности | Не требуется. |
| Хранение списков значений дополнительных реквизитов | Не требуется. |
| Возможность ввода на основании других объектов | Не требуется. |
| Нумерация | Не требуется. |
| Критерий | Значение |
|---|---|
| Основное предназначение | Хранение списка неизменных представлений без дополнительных атрибутов. |
| Добавление и редактирование пользователем | Не требуется. |
| Иерархия и группировка данных | Не требуется. |
| Хранение значений дополнительных реквизитов сущности | Не требуется. |
| Хранение списков значений дополнительных реквизитов | Не требуется. |
| Возможность ввода на основании других объектов | Не требуется. |
| Нумерация | Не требуется. |
| Критерий | Значение |
|---|---|
| Основное предназначение | Хранение списка сущностей и значений характеристик экземпляров сущности. |
| Добавление и редактирование пользователем | Требуется добавление, удаление, изменение элементов, редактирование состава и значений характеристик сущности. |
| Иерархия и группировка данных | Требуется в пределах одной сущности. |
| Хранение значений дополнительных реквизитов сущности | Нужно хранить произвольные данные для атрибутов сущности. |
| Хранение списков значений дополнительных реквизитов | Требуется хранение списков наборов значений реквизитов для сущности. |
| Возможность ввода на основании других объектов | Нужен ввод новых элементов с использованием информации других объектов. |
| Нумерация | Нужны серии кодов по всем элементам одного типа или в пределах группировки. |
| Критерий | Значение |
|---|---|
| Основное предназначение | Хранение списка объектов и значений их атрибутов. |
| Добавление и редактирование пользователем | Требуется добавление, удаление и изменение элементов. |
| Иерархия и группировка данных | Требуется в пределах одной сущности или между разными сущностями. |
| Хранение значений дополнительных реквизитов сущности | Нужно хранить произвольные данные для атрибутов сущности. |
| Хранение списков значений дополнительных реквизитов | Требуется хранение списков наборов значений реквизитов для сущности. |
| Возможность ввода на основании других объектов | Нужен ввод новых элементов с использованием информации других объектов. |
| Нумерация | Нужны серии кодов по всем элементам одного типа, в пределах группировки или подчинения. |
2.2.2.¶
Для хранения событий процессов предметной области:
- Если нужен учет одиночных событий, адресованных исполнителю (пользователю, сотруднику, группе, роли) и не требующих формирования движений, используйте «Задача».
- Если нужно регистрировать возникновение и ход регулярного процесса как последовательность действий, используйте «Бизнес-процесс». Для учета событий в рамках процесса используйте «Задача».
- В остальных случаях, как правило, используйте «Документ».
Развернутые критерии выбора типа объекта:
| Критерий | Значение |
|---|---|
| Основное предназначение | Учет одиночных событий, адресованных исполнителям. |
| Вложенность | Не требуется. |
| Объединение в журналы | Не требуется. |
| Состояние объекта | Нужны состояния новый, выполнено. |
| Нумерация | Нужны серии номеров по всем задачам данного вида или в пределах периода по дате. |
| Критерий | Значение |
|---|---|
| Основное предназначение | Учет последовательности событий, адресованных исполнителям. |
| Вложенность | Нужен учет процессов, вложенных в другие процессы (иерархия задач). |
| Объединение в журналы | Не требуется. |
| Состояние объекта | Нужны состояния новый, в работе, завершен. |
| Нумерация | Нужны серии номеров по всем процессам данного вида или в пределах периода по дате, плюс нумерация событий внутри процесса. |
| Критерий | Значение |
|---|---|
| Основное предназначение | Регистрация событий во времени и генерация вторичных данных, соответствующих этим событиям. |
| Вложенность | Не требуется. |
| Объединение в журналы | Нужно объединение документов разных видов в одном журнале. |
| Состояние объекта | Нужны состояния проведен, не проведен. |
| Нумерация | Нужны серии номеров для документов разных видов: сквозные или в пределах периода по дате. |
2.2.3.¶
Для хранения накопленных сведений и значений показателей:
- Для хранения данных учета с использованием принципа двойной записи используйте «Регистр бухгалтерии».
- Для хранения результатов расчета учета начислений и удержаний используйте «Регистр расчета».
- Если требуется хранить изменения показателей (приход/расход) и получать остатки и обороты за период, используйте «Регистр накопления».
- Во всех остальных случаях используйте «Регистр сведений».
Развернутые критерии выбора типа объекта:
| Критерий | Значение |
|---|---|
| Основное предназначение | Хранение изменений данных (приход и расход значений показателей). |
| Получение данных | Нужно получать остатки и обороты. |
| Подтверждение происхождения данных | Требуется обязательная связь с регистрирующим документом. |
| Критерий | Значение |
|---|---|
| Основное предназначение | Хранение информации в виде наборов записей, регистрация сведений и значений. |
| Получение данных | Нужно получать срез на момент времени или текущее значение показателей. |
| Подтверждение происхождения данных | Связь с регистрирующим документом не обязательна. |
3.¶
Пример выбора типов объектов метаданных.
Пусть организация
периодически проводит анкетирование.
При заполнении анкеты
указывается дата анкетирования,
набор вопросов
и набор ответов.
Сущность Анкета
привязана к дате
и порождает статистику
(ответы на вопросы).
Следовательно:
- это периодическое событие, привязанное ко времени, которое порождает значения параметров, то есть второй блок «события предметной области»;
- внутри второго блока
это должен быть
Документ, потому что анкета формирует вторичные данные (результаты ответов на вопросы).