Регистры сведений 1С
Задача хранения многомерных данных является типичной для большинства серьезных учетных и ERP-систем. В программном комплексе «1С Предприятие» эта задача решается с помощью инструментария получившего название «регистр сведений 1с». Регистр сведений 1с представляет собой контейнер, позволяющий одновременно хранить произвольные данные прикладного характера и анализировать их по ряду заданных критериев. По сути, - это многомерный куб, данные которого можно представить в разрезе нескольких, наперед указанных, измерений. Элементы хранения регистра сведений 1с называются «объектами прикладного решения». Объекты прикладного решения – это элементы метаданных отображающие те или иные бизнес процессы на предприятии и объединенные в группы по признаку принадлежности к тому или иному конкретному прикладному решению.
О структуре регистра сведений.
В своей простейшей форме регистр сведений 1с представляет собой плоское табличное представление одного из объектов метаданных. Каждый экземпляр объекта метаданных представлен отдельной записью регистра сведений 1с. Например, если мы рассмотрим справочник «ЦеныКомпании», то его представление в виде регистра сведений 1с будет выглядеть как обычная таблица, со столбцами, соответствующими реквизитам справочника (Номенклатура, ТипЦен и т.д.) и со строками, содержащими конкретные элементы справочника (см. рис. ниже). Определяя различные запросы к регистру можно получать разнообразную информацию – фильтровать данные, агрегировать их и так далее. В регистрах допустимо указывать дополнительные поля с произвольной информацией, отсутствующие изначально в описании элемента конфигурации, на основе которого построен регистр сведений 1с. Эти поля называются реквизитами регистра сведений 1с.
Хранение данных в разрезе времени
Очень часто возникает потребность не просто иметь информацию о том или ином объекте на текущую дату, а отслеживать изменение его состояния в прошлом. Например, нас может интересовать не только цена на тот или иной объект номенклатуры предприятия сегодня, но и то какой она была неделю, месяц или даже год назад. Регистры предоставляют пользователю 1С и эту возможность. Для того чтобы ею воспользоваться, необходимо при создании регистра указать периодичность отслеживания изменений объекта прикладного решения. В этом случае, каждый раз по истечении указанного пользователем периода программа будет отслеживать - не изменились ли данные в каждой отдельной записи регистра. В обычной ситуации, т.е. без указания периодичности, изменения в записи регистра не повлекут за собой создание новой записи. В случае же указания периода хранения в регистре останется и старая запись, с данными за предыдущий период, и появится новая запись с текущими значениями объекта прикладного решения. Например, если мы укажем в поле «Периодичность» регистра значение «В пределах дня», то каждый день записи в регистре будут дублироваться, что позволит отслеживать изменение цен на номенклатуру с точностью до дня. (см. рис. ниже)
Изменение данных регистра и понятие «регистратора»
Мы уже говорили о реквизитах регистра сведений 1с и о том, что данные в регистре могут быть изменены пользователем. Для осуществления этой процедуры существует две возможные методики: ручное редактирование данных регистра и редактирование с помощью документов. В первом случае оператор непосредственно корректирует записи регистра сведений 1с, а во втором регистр сведений 1с доступен для корректировки лишь через корректирующий его документ, который в этом случае называется «регистратором». Нужно сразу же сказать, что два этих режима корректировки – взаимоисключающи. Режим устанавливается в процессе генерации регистра. В случае использования документов-регистраторов в таблице регистра создается отдельное поле – ссылка на документ-регистратор, совершивший последнее изменение объекта данных. Например, если нам требуется ограничить контроль изменения цен номенклатуры только определенным кругом лиц и выполнять эти изменения в строго определенном формате, то мы можем создать специальный документ «ИзменениеЦеныНоменклатуры», указать для него необходимые параметры и реквизиты и привязать к регистру «ЦеныКомпании». Тогда любые изменения цены можно будет проводить только через этот документ и никак иначе. Разумеется, польза от документов-регистраторов огромная – корректировки одного из элементов данных могут повлечь за собой очень глубокие изменения в системе, - это могут быть бухгалтерские проводки, каскадные изменения в других данных и т.д.
Прямое изменение данных в регистре сведений 1с
Для ручной корректировки данных в регистре сведений 1с система предлагает стандартную форму, использующую механизм форм программы 1С. Если пользователей по тем или иным причинам не устраивает стандартная форма корректировки данных регистра сведений 1с, то он может разработать для этой цели свою собственную форму. Стандартная форма представляет собой обычную форму списка, отображающую табличную природу регистра сведений 1с.
Резюме. Что могут регистры сведений 1с?
Регистр сведений 1с позволяет производить все те же операции, которые обычно производятся над табличными данными: создавать, изменять и удалять записи. В дополнение к этому регистр сведений 1с дает возможность периодического хранения данных и отслеживание изменений в них со временем. К регистру сведений 1с возможно формирование запросов по документу-регистратору, по периоду, по значениям полей и поиск наиболее ранних или наиболее поздних записей регистра согласно заданным критериям.