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

Осуществляется в образе массива записываемых функций. Они должны соответствовать принятым в платформе параметрам (видам измерений). Где и как происходит их хранение, а также как добавить или удалить запись в регистре сведений 1С?

Что собой представляют сведения

Состав объектов, используемых разработчиком, жёстко привязан к самой платформе и недоступен для изменения. Также недоступно создание своих объектов, - можно оперировать только набором, уже имеющимся в платформе.

Подобное построение позволяет стандартизировать процесс. С другой стороны -это даёт возможность модификации другими специалистами полученных решений.

К стандартным объектам конфигурации относится и регистр (register, англ.) сведений. Функция его состоит в хранении любых произвольных данных в разрезе измерений.

Например, курсы валют - в разрезе валют, цены - в разрезе видов цен или в соответствии с номенклатурной, пр.

Структура

Данные в 1С сохраняются в виде записей (registration, англ.). Каждая из них включает в себя вид измерений (разрезов) и соответствующие им значения ресурсов.

Например, регистр «Цены товаров» может включать в себя измерения (разрезы) «Товар» и «Вид Цен», а ресурсы включают в себя значение «Цена». Таким образом, складывается его структура:

А сами записи Цены товаров будут иметь вид:

Для хранения дополнительной информации о каждой registration служат «Реквизиты».

Периодичность

Чтобы изменение статических данных можно было отслеживать во времени, registration обладает полем «Период». Это является и дополнительным разрезом для анализа. Значение периодичности можно выбирать:

Выбор значения Периодичности

Запись в регистр сведений в 1С (их изменения) можно вносить вручную. Также они изменяются автоматически при создании документов.

В последнем случае каждая registration обновляется спецполем для фиксации такого формирующего документа.

Существует возможность выбора режима. Например, режим «Подчинение регистратору» вызовет жёсткую привязку к формирующим документам.

Например, для изменения цен нужно будет обязательно создавать специальный документ - «Изменение цен».

Уникальность записей

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

Для его создания берётся три значения - значение регистратора (подчинённый или не подчиненный), значение периода (периодический или непериодический) и значение измерения.

Редактирование

Имеются встроенные формы (по умолчанию) для представления данных (хотя разработчик может создавать и свои). Например, форма списка:

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

Для входа и работы с отдельной записью существует форма и для её представления:

Редактирование курса валюты в 1С

Возможности, делегируемые разработчику этими формами:

  • Удалить, изменить, добавить запись в регистр в 1С;
  • Многосторонняя разноплановая сортировка по измерениям во временных интервалах и по регистраторам.

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

Регистр сведений 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;
НовыйНаборЗаписей.Записать();

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

Регистр сведений по сути своей ближе всего к справочнику.

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

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

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

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

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

Ну и напоследок ответ на вопрос, как осуществлять чтение и запись регистра сведений.

Чтение регистра сведений лучше всего осуществлять с помощью запроса. Работа с запросами является отдельной темой и в рамках данной статьи не рассматривается. Однако можно читать записи и без запроса с помощью нескольких методов объекта "РегистрСведенийМенеджер ".

  • Методы "Выбрать " и "ВыбратьПоРегистратору " позволяют получить выборку записей с учетом заданного отбора.
  • Метод "Получить " позволяет получить одну запись, для которой в параметрах метода передается отбор по всем ключевым реквизитам.
  • Методы "ПолучитьПервое " и "ПолучитьПоследнее " позволяют получить соответственно первую или последнюю запись периодического регистра сведений, удовлетворяющую заданному в параметрах метода отбору.
  • Методы "СрезПервых " и "СрезПоследних " позволяют получить соответственно срез первых или последних записей, удовлетворяющих заданному в параметрах метода отбору.

Кроме этих методов есть еще два метода, "СоздатьМенеджерЗаписи " и "СоздатьНаборЗаписей ", с помощью которых можно создать соответсвенно объект "РегистрСведенийМенеджерЗаписи " или "РегистрСведенийНаборЗаписей ", после чего задать значения всех или некоторых ключевых реквизитов и с помощью метода объекта "Прочитать " выполнить чтение в объект записей из базы, удовлетворяющих присвоенным значениям ключевых реквизитов.

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

Запись же в регистр сведений производится с помощью уже упомянутых методов "СоздатьМенеджерЗаписи " и "СоздатьНаборЗаписей " объекта "РегистрСведенийМенеджер ". Можно либо создать объект, после чего заполнить реквизиты записи или список записей и записать объект с помощью метода "Записать ". Либо создать объект, задать значения всех или некоторых ключевых реквизитов, чтобы с помощью метода объекта "Прочитать " выполнить чтение в объект записей из базы, удовлетворяющих присвоенным значениям ключевых реквизитов, после чего выполнить метод "Очистить ", после чего уже выполнить метод "Удалить " или заполнить реквизиты записи или список записей и записать объект с помощью метода "Записать ".

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

Периодичность

Информация хранится в разрезе измерений и периода. Регистру сведений, можно задать периодичность:

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

Периодичность нужна для выбора информации из регистра на определенный период времени. Если указать периодичность, записи в регистр будут производиться с периодом, когда была сделана запись. Допустим если посмотреть регистр «Цены номенклатуры», можно увидеть историю изменения цен, с какими измерениями и в какой период времени была сделана запись.

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

Регистраторы

Если делать запись в регистр сведений с помощью документа, нужно установить режим записи: «Подчинение регистратору» и выбрать документ, которым будет делаться запись в регистр. Тогда в регистре появится поле «Регистратор», где будет храниться информация, каким документом была сделана запись. Так же регистратор можно использовать как период, для этого укажите в поле «Периодичность» — «По регистратору». Подчинение регистратору делают, когда требуется жестко привязать регистр к документу и изменение записей в регистре в ручном режиме становится не доступным.

Документы, которые будут в роли регистраторов, может быть несколько. Для того чтобы добавить регистратор, нужно зайти в свойства нужного регистра сведений, перейти на вкладку «Регистраторы» и установить галочки напротив документов, которые будут выполнять роль регистратора.

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

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

Уникальность записей

Уникальность записи зависит от периода и измерений. Например, если вы хотите записать в регистр «Цены номенклатуры» запись с одинаковыми измерениями, в один и тот же день, то у вас это не получится и программа вызовет ошибку, так как периодичность регистра в пределах дня.

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

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

Формы

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

Для редактирования / создания, используйте форму записи, если запись подчинена регистратору, тогда поле будет не доступно и форму создать не получится.

Добавлять формы нужно в конфигураторе, зайдя в регистр сведений, во вкладке «Формы» и нажать на «лупу» у нужного вида формы. Далее откроется окно, где можно настроить поля будущей формы (расположение, названия и прописать функционал).


Измерения, ресурсы и реквизиты

Измерения предназначены для формирования уникальности записи, по ним в дальнейшем можно осуществлять отбор и делать срез по конкретному измерению. Сочетание измерений и формирует ключ записи. Лучше не создавать большое количество измерений, чтобы таблица не разрасталась и в процессе работы с ней, не тормозила.

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

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

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

С регистром сведений можно производить следующие действия:

  • Удаление записи в регистре сведений 1С

Особенности

— Уникальность записей по набору измерений: каждая запись в регистре сведений — это новое значение ресурса.

— Записи регистра сведений могут быть как периодические, так и нет.

— Регистр сведений может быть зависимым и независимым от регистратора.

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

Регистр «Цены номенклатуры» — периодический регистр сведений, записи производиться по регистратору.

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

Регистр подчинен документу «Установка цен номенклатуры». Значит, запись в регистр происходит из этого документа. Движения по конкретному документу можно посмотреть из формы документа «Установка цен номенклатуры».

Регистр предназначен для хранения информации по цена номенклатуры, с измерениями «Тип цен», «Номенклатура» и «Характеристика номенклатуры». Ведущим измерениями являются все три поля измерения, по нем можно будет делать отбор при выборке.

Заключение: после прочтения статьи Вы сможете создать регистр сведений 1С, добавить измерения и ресурсы, настроить формы редактирования и списка. Создать запись и сделать выборку существующих записей. Если остались вопросы, воспользуйтесь комментариями в статье, постараюсь оперативно дать ответ на интересующий Вас вопрос.