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