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

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

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

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

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

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

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

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

 

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

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

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

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

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

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

 

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

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

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

 

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

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

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

 

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

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

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

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

14 Comments

  1. Yashazz
  2. AllexSoft

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

    Reply
  3. Yashazz

    (2) AllexSoft, ага, и особенности индексации, и роль разделителей, и пресловутые проблемы блокировки… Имхо, смысл-то какой, пересказывать Радченку? Вот я ссылку подкинул, где самые толковые книги онлайн. Сам там порой вычитываю кой-что новое )))

    Reply
  4. asved.ru

    Тема табличного состава регистра расчета не раскрыта. Также Вы забыли про таблицы изменений.

    Reply
  5. НАТА48

    А мне понравилась статья. Спасибо!

    Reply
  6. CagoBHuK

    Человеческий организм — это биологический механизм, предназначенный для функционирования человеческого сознания.

    Reply
  7. kancerina

    Большое спасибо всем и за критику, и за поддержку

    Reply
  8. rus128

    Очень много грамматических ошибок (то, что в скобках — удалить, то, что прописными — вставить):

    1) Существует четыре вида реГистров

    2) изобРазить

    3) в каких разрезах (измеренияХ)

    4) а уж(а)Е после него

    5) записыва(е)ются

    6) его ресурс может име(н)Ть

    7) покаЗАтелей

    Reply
  9. DAnry

    Мне тоже понравилось. Для новичков в 1С поучительно и полезно.

    Reply
  10. Pete

    (1) Yashazz, На 03/04/2015 12:44 (МСК) сайт не работает.

    В Яндексе есть копии от «Среда, Февраль 11, 2015»

    Reply
  11. 127.0.0.0

    не хватает определений

    Измерения — это ..

    Ресурс — это ..

    Без ввод термина которое конкретизирует новые термины их определения каждый будет трактовать по своему.

    по большому счету все эти вопросы именно из за этой ошибки.

    PS поэтому во многих документах разработанным профи в «серьезных» компаниях начинается с терминов и определений. это камушек в огород 1С )

    Reply
  12. user1077090

    (6) Айн Рент бы заценила мысль.

    Reply
  13. MisKat

    Коротко и по делу, автор — молодец! Ошибки есть конечно, но я и сама этим грешу)))

    Reply
  14. Alixir

    У Радченко регистр не объект, непонятно почему правда..»Не все данные, хранящиеся в базе данных, являются ссылочными.

    Это связано с тем, что в модели данных «1С:Предприятия» существует деление на данные, представляющие объектные сущности

    (справочники, планы счетов, документы и т.д.), и данные, представляющие необъектные сущности (регистры сведений, регистры накопления и т.д.). «

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *