Регистр сведений в 1с 8.3 примеры

Регистры - это совокупность записей об объектах. Они не только хранят атрибуты объектов программы, но и записывают движения по этим параметрам. Их предназначение - сохранения данных и предоставление отчетностей по определенным параметрам.

Параметры могут быть разнообразными, в зависимости от типа сохраняемой информации. В таблицах сохраняются свойства объектов. К примеру, для стоимости товара это будут:

  • Наименование
  • Производитель
  • Упаковка
  • Цена закупки

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

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

Настройка в 1С 8.3 регистров сведений

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

Как правило, пользователи не нуждаются в информации, где находится регистр сведений в 1с 8.3 . Скажем только, что основной доступ к ним находится в разделе Конфигурации.

Как в 1С 8.3 сделать запись в регистр сведений

Записи в регистрах являются следствием проведения операций в различных частях программы. Но есть возможность сделать непосредственные изменения. Для этого предусмотрена возможность записи в регистр сведений 1С 8.3 программно (пусть примером служит аналитика колебаний валютных курсов):

  • Воспользуемся Менеджером Записи чтобы выполнить одно действие:

НоваяЗапись = РегистрыСведений.КурсыВалют.СоздатьМенеджерЗаписи();

НоваяЗапись.Валюта = Справочники.Валюты.НайтиПоНаименованию(«UA»);

НоваяЗапись.Период = Дата(30,07,2018);

НоваяЗапись.Курс = 50;

НоваяЗапись.Кратность = 1;

НоваяЗапись.Записать();

  • Возьмем Набор Записей для нескольких введений:

НовыйНаборЗаписей = РегистрыСведений.КурсыВалют.СоздатьНаборЗаписей();

//Внимание! Здесь важно указать критерии отбора. В противном случае все сделанные прежде записи исчезнут.

НовыйНаборЗаписей.Отбор.Валюта.Установить(Гривна, Истина);

НовыйНаборЗаписей.Отбор.Период.Установить(Дата(30,07,2018), Истина);

//Теперь можно приступить к записыванию самого набора

НоваяЗаписьНабора = НовыйНаборЗаписей.Добавить();

НоваяЗаписьНабора.Валюта = Справочники.Валюты.НайтиПоНаименованию(«UA»);

НоваяЗаписьНабора.Период = Дата(30,07,2018);

НоваяЗаписьНабора.Курс = 50;

НоваяЗаписьНабора.Кратность = 1;

НовыйНаборЗаписей.Записать();

Как удалить регистр сведений в 1с 8.3

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

Выполняем такие действия:

  • Код 1C v 8.х
  • НаборЗаписей = РегистрыСведений.ОбъектыСтроительстваОрганизаций.СоздатьНаборЗаписей();
  • НаборЗаписей.Отбор.Организация.Установить(УдаляемаяОрганизация);
  • НаборЗаписей.Записать();

После этого нужно создать вариационную НаборЗаписей, где сделать выборку по компании такой же, как и УдаляемаяОрганизация. Получится пустая совокупность записей. Для полного удаления нужно его записать с замещением. Таким образом, вся информация, предназначенная для стирания, заменена на пустые значения.

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

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

Очевидно, что такой подход к формированию отчетов, был бы неэффективен. Поэтому на практике и существует такое понятие как проведение документа . При проведении документа (в отличие от его простой записи в базу 1С) на основании заполненной пользователем формы 1С Бухгалтерия формирует так называемые проводки , то есть вносит одну или более записей в один или более регистров .

Регистры 1С — это просто таблицы, содержащие колонки и строки. Принцип тот же самый, что и у таблиц Excel или обычных "бумажных " таблиц.

Движение документа по регистрам — это записи, вносимые документом в регистры при проведении, называются.

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

Тут была важная часть статьи, но без JavaScript её не видно!

Виды регистров 1С Бухгалтерии

На самом деле, регистры в 1С:Бухгалтерии используются не только для хранения проводок документов, но и для других различных целей. В связи с этим существует несколько видов регистров:

  • Регистры сведений
  • Регистры накопления
  • Регистры расчета
  • Регистры бухгалтерии

Последний тип регистра как раз и хранит бухгалтерские проводки документов. Чем отличаются все эти друг от друга и почему, я рассказываю в читаемом мной курсе Бухгалтерии Предприятия 8 . Здесь же приведу ещё раз список существующих регистров 1С, только в виде скриншота (на примере 1С Бухгалтерии 8.2).


А вот то же самое на примере 1С:Бухгалтерии 8.3:

сайт_

Просмотр регистров 1С Бухгалтерии

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

Любой из регистров можно открыть с помощью форм, приведенных мной выше. То есть из общего списка регистров определенного типа. Для примера приведу самый известный регистр — регистр бухгалтерии. Впрочем, это название больше техническое, поскольку для пользователя он называется Журнал проводок .

сайт_

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

Внесение изменений в регистры

Если вы еще раз взглянете на фрагмент содержимого регистра бухгалтерии 1С Предприятие на рисунке выше, то обратите внимание на отсутствие кнопки Добавить . Дело в том, что не во все регистры можно вносить записи напрямую , т.е. открыть его и добавить элементы (строки) вручную, как это можно сделать с документами или справочниками.

Вопрос на засыпку: знаете ли вы, что в некоторые справочники также нельзя вносить данные через всеми любимую кнопку "Добавить". Как думаете, почему?

А вот пример простого регистра сведений, в который записи вручную вносить можно. Использовать такие регистры, конечно, проще.

сайт_

Если в регистре нет кнопки Добавить , то данные в такие регистры вносятся только так называемыми регистраторами . Смысл понятия регистратор иллюстрирует всё та же картинка с формой регистра бухгалтерии.

Подведём итоги

В регистрах 1С Бухгалтерии хранятся данные, не менее важные, чем записаны в формах документов. Очень важно уметь правильно работать с различными регистрами — это помогает понимать, все ли правильно делает программа (в соответствии с вашими потребностями). Также все это помогает исправлять ошибки в учете.

Особенности разных регистров, внесение в них данных, типы регистраторов, различие между периодическими и непериодическими регистрами, а также многое другое, я рассматриваю в своём курсе 1С:Бухгалтерии 8 , представленному на данном сайте.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Существует несколько видов регистров в 1С:

  • Накопления, хранящие остатки или обороты в числовом виде;
  • Расчета, хранящие виды расчетов и сами расчеты, обычно используются для расчета зарплаты;
  • Бухгалтерии с данными о бухгалтерских расчетах в виде Дт-Кт;
  • Регистры сведений.

На последних мы остановимся поподробнее, поскольку они позволяют компилировать данные из БД по разрезам измерений. Например, в «Ценыноменклатуры» хранятся данные для конкретной номенклатуры и характеристики по определенному виду цен.

Рис.1 Регистр «Ценыноменклатуры»

Характеристики

Регистр бывает как периодическим, так и непериодическим, когда не нужно сохранять последовательность изменений. Но если все-таки хранить нужно, то устанавливается, в пределах какого периода программа установит контроль уникальности записей: посекундно, за день, месяц, за квартал и год.


Рис.2 Периодичность и режим записи

Если попытаться создать две записи в пределах одного периода, программа выдаст ошибку «Запись с такими ключевыми полями существует!» и не даст произвести запись в базу данных.

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


Рис.3 Режимы записи

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

Запись в регистр сведений 1С

Строки в регистре с периодом и регистратором, содержащие информацию о ресурсах в разрезе измерений, называются записями.

Чтобы добавить запись в регистр используются или менеджер записей, или набор записей. Если у записей в регистре имеется общий ключ, то необходимо использовать НаборЗаписей. А для записи одной единственной записи, если в регистре все записи уникальны, необходимо использовать МенеджерЗаписи.

Пример записи при использовании объекта РегистрСведенийНаборЗаписей.

Использование менеджера записи:

НоваяЗапись = РегистрыСведений.КурсыВалют.СоздатьМенеджерЗаписи(); НоваяЗапись.Валюта = Справочники.Валюты.НайтиПоНаименованию(«USD»); НоваяЗапись.Период = Дата(31,12,2016); НоваяЗапись.Курс = 100; НоваяЗапись.Кратность = 1; НоваяЗапись.Записать();

При использовании набора записей и метода «Записать» происходит запись в регистр сведений набора записей. При этом может происходить как просто добавление строк, так и замещение уже имеющихся строк в регистре. Для независимых регистров, без установки отборов, будет произведено удаление всех записей в регистре и замещение на добавляемые записи.

Если записать без отбора данные в подчиненны регистр, возникнет ошибка.

Пример записи с использованием набора записей в подчиненный регистратору регистр сведений ЦеныНоменклатуры:

НовыйНаборЗаписей = РегистрыСведений.ЦеныНоменклатуры.СоздатьНаборЗаписей(); НовыйНаборЗаписей.Отбор.Регистратор.Установить(Ссылка); НоваяЗаписьНабора = НовыйНаборЗаписей.Добавить(); НоваяЗаписьНабора.Период = Ссылка.Дата; НоваяЗаписьНабора.Номенклатура = Ссылка.Номенклатура; НоваяЗаписьНабора.Цена = Ссылка.Цена; НовыйНаборЗаписей.Записать();

Пример записи через менеджер записи:

Запись = РегистрыСведений.КурсыВалют.СоздатьМенеджерЗаписи(); Запись.Период = Дата; Запись.Курс = Курс; Запись.Валюта = Валюта; Запись.Записать();

Поиск и чтение в регистре сведений

Чтобы найти в регистре сведений запись и прочитать ее, нужна помощь запросов. Например, нам надо получить цены, внесенные определенным регистратором:

ВЫБРАТЬ ЦеныНоменклатуры.Номенклатура, ЦеныНоменклатуры.Цена ИЗ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры ГДЕ ЦеныНоменклатуры.Регистратор = &Регистратор

Изменение и удаление записей

Чтобы удалить запись регистра сведений, например, все курсы валюты EUR, воспользуйтесь следующим кодом:

СтруктураОтбора = новый Структура("Валюта", Справочники.Валюты.НайтиПоНаименованию("EUR")); Выборка = РегистрыСведений.КурсыВалют.Выбрать(,СтруктураОтбора); Пока Выборка.Следующий() Цикл МенеджерЗаписи = Выборка.ПолучитьМенеджерЗаписи(); Выборка.ПолучитьМенеджерЗаписи().Удалить(); КонецЦикла;

Для быстрой и полной очистки регистра можно использовать следующий код:

НоваяЗапись = РегистрыСведений.ТестовыйРегистр.СоздатьНаборЗаписей(); НоваяЗапись.Записать();

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

Регистр сведений 1С 8 — объект метаданных, предназначенный для хранения справочной информации в разрезе определенных разработчиком измерений.

Типичный пример использования регистра сведений — хранение информации о курсе валют в разрезе валюты и периода.

Рассмотрим подробнее свойства и настройки регистра сведений.

Два главных свойства регистра сведения — Периодичность и Режим записи .

Это уникальные свойства регистра сведений, которых больше нет ни у одного объекта метаданных. Рассмотрим их подробнее.

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

Периодичность может принимать следующие значения:

  • Непериодический
  • В пределах секунды
  • В пределах дня
  • В пределах месяца
  • В пределах квартала
  • В пределах года

Получите 267 видеоуроков по 1С бесплатно:

При выборе периодичности, отличной от варианта Непериодический, система будет контролировать уникальность записей в пределах заданного промежутка времени. Если запись не уникальна, система 1C выдаст сообщение и не даст произвести запись в базу данных.

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

Режим записи регистра сведений

В 1С 8.2 и 8.3 это свойство может быть либо в значении «Независимый», либо — «Подчинение регистратору». В первом случае записи можно будет произвести как программно, так и из формы списка регистра сведений. Во втором случае обязательно указание документа-регистратора записи. Это накладывает определенные ограничения, но в то же время открывает новые возможности.

Свойства измерения регистра сведений

Также следует обратить внимание на палитру свойств измерений регистра сведений 1С 8.3. Особенно на флаги Ведущее и Основной отбор:

  • Ведущее — свойство измерения, подразумевающее под собой информацию о том, что без значения этого измерения запись регистра не имеет смысл. На деле это означает что система при удалении значения из измерения удаляет еще и запись регистра с «Ведущим» измерением. Может быть установлено только одно измерение.
  • Основной отбор — если регистр независимый, по этим измерениям будет устанавливаться регистрация изменений для плана обмена. Аналогично использование Основной отбор по периоду включает основной отбор для период для периодических регистров.

Программная запись в регистр сведений 1С

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

Использование менеджера записи:

НоваяЗапись = РегистрыСведений.КурсыВалют.СоздатьМенеджерЗаписи();
НоваяЗапись.Валюта = Справочники.Валюты.НайтиПоНаименованию(«USD»);
НоваяЗапись.Период = Дата(31,12,2016);
НоваяЗапись.Курс = 100;
НоваяЗапись.Кратность = 1;
НоваяЗапись.Записать();

Использование набора записей регистра сведений 1С:

НовыйНаборЗаписей = РегистрыСведений.КурсыВалют.СоздатьНаборЗаписей();
//если вы не установите отбор — удалятся все записи регистра сведений
НовыйНаборЗаписей.Отбор.Валюта.Установить(Доллар, Истина);
НовыйНаборЗаписей.Отбор.Период.Установить(Дата(31,12,2016), Истина);
//формируем непосредственно запись набора
НоваяЗаписьНабора = НовыйНаборЗаписей.Добавить();
НоваяЗаписьНабора.Валюта = Справочники.Валюты.НайтиПоНаименованию(«USD»);
НоваяЗаписьНабора.Период = Дата(31,12,2016);
НоваяЗаписьНабора.Курс = 100;
НоваяЗаписьНабора.Кратность = 1;
НовыйНаборЗаписей.Записать();

Статьи по теме