gifts2017

Немного о регистрах в 1с

Опубликовал Екатерина Свирина (kancerina) в раздел Программирование - Теория программирования

В процессе изучения любого предмета иногда возникает потребность в дополнительной систематизации знаний. Эта статья - попытка систематизировать общие сведения о видах регистров в 1с, их общих чертах и различиях. Возможно, начинающим программистам она поможет "удобнее" уложить знания в голове.

В любой конфигурации 1с 8.2 можно увидеть такой вид объектов, как регистры. Основное их предназначение — оптимизация получения данных для отчетов. Существует четыре вида реистров: регистры сведений, регистры накоплений, регистры бухгалтерии и регистры расчета. И хотя предназначены эти виды для решения разных задач, уже по тому, что они все называются «регистрами» можно догадаться, что они имеют и нечто общее.

Во-первых, как уже упоминалось, как объекты конфигурации они нужны для более быстрого считывания информации из базы данных, например в запросах. Регистры можно сравнить с каталогом книжной библиотеки (раньше их составляли на бумажных карточках). То есть это не только хранение информации (данных), но и ее систематизация (создание определенной структуры), когда в конкретный регистр попадают данные (например, из документов разного вида) и при необходимости ее можно достаточно быстро оттуда извлечь и вывести, например, в отчет или обработать иным образом. В общем случае основное использование регистров в 1с можно изобазить следующей схемой: «Документ — Регистр — Отчет», хотя существуют и исключения.

Во-вторых - все регистры, независимо от их вида, имеют ресурсы, измерения и реквизиты. То есть определяется что (ресурс) в каких разрезах (измерения) нужно учесть. Применимо к библиотеке — мы учитываем книги в разрезе авторов, жанров и издательств. А с помощью реквизитов можно дополнить информацию, например, годом издания. И здесь есть один важный момент — структура регистра должна быть определена очень тщательно в зависимости от того, какую информацию мы собираемся из него извлекать. Например, если в нашей библиотеке поиск чаще всего производится по фамилии автора — в карточке сначала должен стоять автор (первое измерение), а ужа после него — жанр (второе измерение).

В-третьих, регистры имеют табличную структуру, но она отличается от структуры объектных таблиц. Так что вы не найдете таких классов, как РегистрСсылка или РегистрОбъект. Состав таблицы регистра зависит от его свойств.

В-четвертых, данные в регистры записываеются в виде наборов записей. Каждый набор состоит из одной или нескольких записей. При этом на запись в наборе нельзя сослаться или обратиться к ней. А также ни набор записей, ни запись в наборе не могут иметь состояния «пометка на удаление».

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

 

Терперь поговорим об особенностях каждого вида регистров:

1. Регистры сведений

Пожалуй, самый простой вид регистра. В отличие от регистров другого вида, его ресурс может имень не только числовое значение, но и другой тип данных.

Имеет особое свойство, не используемое в других видах регистров — периодичность.

Может не иметь регистратора, то есть быть независимым, в этом случае записи производятся непосредственно в регистр, минуя регистрирующий документ (то самое исключение из общей схемы использования регистров в 1с). Тогда как остальные виды регистров должны иметь хотя бы один документ-регистратор.

Кроме того, данный вид регистра имеет автоматический контроль уникальности записей по периоду (периодичность, указанная в свойствах регистра) и измерениям. То есть среди записей регистра не может быть более одной записи с одинаковыми показателями период+измерение+регистратор(если он есть). Уникальность записей в других видах регистров осуществляется по регистратору.

 

2. Регистры накоплений

Предназначен для накопления числовых покателей (ресурсов) и делится на два подвида — Остатки и Обороты. Отличие между ними заключается в том, что Регистр накопления Остатки предназначен для получения информации о состоянии «на момент времени», а Обороты — информации о данных «за период».

Данные регистра накопления хранятся в БД в виде двух таблиц — таблица движений и таблица итогов. Обращение напрямую возможно только к таблице движений.

 

3. Регистры бухгалтерии

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

Его основная особенность заключается в возможности учета данных методом двойной записи по принципу Дебет-Кредит. Для реализации возможности формирования проводок Регистр бухгалтерии должен быть связан со специальным объектом - План счетов.

 

4. Регистры расчета

Этот вид регистра предназначен не только для хранения, накопления и систематизации данных, но и для реализации сложных механизмов периодческих расчетов. Для этого в свойствах регистра расчета необходимо определить еще один объект 1с — план видов расчета. То есть работа регистра этого вида невозможна без определения для него конкретного плана видов расчета.

Можно сказать, что регистр расчета используется и для хранения информации о видах расчета, и для хранения результатов расчетов, и для промежуточных значений расчетов. Основное его предназначение в конфигурациях 1с — это расчеты начислений, например, заработной платы и других выплат сотрудникам. И для реализации этих задач при определении параметров регистра расчета, в нем возможно указать связь с графиком времени, что позволяет производить расчеты в зависимости от того времени, которое задано в этом графике. Сам график времени должен быть определен с помощью соответствующего регистра сведений.

Таким образом, можно сказать, что регистр расчета имеет в итоге самую сложную структуру по сравнению с другими видами регистров в 1с.

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Яков Коган (Yashazz) 24.11.13 14:34
2. Алексей Белоусов (AllexSoft) 24.11.13 14:39
Возможно и имеет смысл, но надо тогда уж описать какие реальные поля есть у таблиц итогов в каждом конкретном случае, как рассчитываются остатки на любую дату из таблицы движений и таблицы итогов, что такое агрегаты и зачем они нужны.
3. Яков Коган (Yashazz) 24.11.13 16:48
(2) AllexSoft, ага, и особенности индексации, и роль разделителей, и пресловутые проблемы блокировки... Имхо, смысл-то какой, пересказывать Радченку? Вот я ссылку подкинул, где самые толковые книги онлайн. Сам там порой вычитываю кой-что новое )))
4. Антон Стеклов (asved.ru) 27.11.13 07:35
Тема табличного состава регистра расчета не раскрыта. Также Вы забыли про таблицы изменений.
5. наталия давыдова (НАТА48) 27.11.13 08:33
А мне понравилась статья. Спасибо!
6. Данила Елистратов (CagoBHuK) 27.11.13 10:17
Человеческий организм - это биологический механизм, предназначенный для функционирования человеческого сознания.
7. Екатерина Свирина (kancerina) 27.11.13 13:37
Большое спасибо всем и за критику, и за поддержку
8. Ruslan (rus128) 27.11.13 18:06
Очень много грамматических ошибок (то, что в скобках - удалить, то, что прописными - вставить):
1) Существует четыре вида реГистров
2) изобРазить
3) в каких разрезах (измеренияХ)
4) а уж(а)Е после него
5) записыва(е)ются
6) его ресурс может име(н)Ть
7) покаЗАтелей
9. DAnry (DAnry) 27.11.13 19:28
Мне тоже понравилось. Для новичков в 1С поучительно и полезно.
11. Петр (Pete) 03.04.15 12:45
(1) Yashazz, На 03/04/2015 12:44 (МСК) сайт не работает.
В Яндексе есть копии от "Среда, Февраль 11, 2015"
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа