Skip to main content

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

Основные свойства

  1. Имена, синонимы и представления должны соответствовать стандартам:
  1. Комментарий - При добавлении нового объекта в обязательном порядке требуется указать в комментарии причину добавления. Подробнее в Префикс и комментарии.

  2. Представление записи - В единственном числе

  3. Представление списка - Во множественном числе. Представление списка не задается, если совпадает с синонимом.

Измерения

  1. Устанавливать галку “Запрет незаполненных значений“ у измерений. Нужно установить галку в измерениях у которых не может быть пустого значения (например, у измерения характеристика ставить не надо).

  2. Устанавливать свойство "Ведущее" более чем для одного измерения в регистре не рекомендуется, так как это приведет к ненужному увеличению размеров индексов и может замедлить работу с регистром и вызывать блокировки, когда вы их не ожидаете. Если нужна гиперссылка на форме объекта метаданных, то оставлять только у одного приоритетного измерения для этого. Для автоматического удаления для других измерений использовать функционал БСП “Очистка мест использования при удалении помеченных“.

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

Свойства реквизитов

  • Значение заполнения - Может быть задано заведомо известное значение по умолчанию, например: СтавкаНДС = НДС18
  • Заполнять из данных заполнения - Да, если при создании нового элемента справочника из формы списка с установленными отборами требуется заполнить реквизит значением отбора
  • Проверка заполнения - Выдавать ошибку, если хотя бы в одном сценарии требуется обязательное заполнение реквизита. См. стандарты:
  • Связи параметров выбора - Заполняется, если значение реквизита зависит от значений других реквизитов
  • Параметры выбора - Заполняется, если значение ограничено заранее известными условиями отбора.

Командный интерфейс

  • В командный интерфейс включаются только независимые регистры сведений
  • Регистры, подчиненные регистратору, в интерфейс не выводятся
  • Регистр должен быть включен, как минимум, в одну подсистему с флагом «Включать в командный интерфейс».
  • Видимость регистра в командном интерфейсе по умолчанию может быть выключена.
  • Использование стандартных команд при необходимости отключается (например, если не нужны гиперссылки в объекта с галкой Ведущее).

БСП

По необходимости может быть подключен к следующему функционалу:

  1. Дата запрета - Создать подписку на событие для регистров рздПроверитьДатуЗапретаИзмененияПередЗаписьюНабораЗаписей на метод ДатыЗапретаИзменения.ПроверитьДатуЗапретаИзмененияПередЗаписьюНабораЗаписей - В методе рздМодификацияКонфигурацииСервер.ЗаполнитьИсточникиДанныхДляПроверкиЗапретаИзменения реализовать заполнение для нового документа.

Роли

На объект должны быть созданы роли согласно регламенту “Роли“. Если документ подчинен регистратору тогда нужна только роль на чтение.

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

  • Создать предопределенный элемент в справочнике ИдентификаторыОбъектовМетаданных с именем РегистрСведений%ИмяРегистра%, где %ИмяРегистра% - имя регистра, как оно задано в конфигураторе
  • Добавить его в переопределяемый модуль УправлениеДоступомПереопределяемый.ПриЗаполненииСписковСОграничениемДоступа
  • Добавить в модуль менеджера переопределяемый метод ПриЗаполненииОграниченияДоступа, в котором описать правила чтения и изменения для расчетной модели прав.
  • Добавить в определяемый тип ВладелецЗначенийКлючейДоступаНаборЗаписей РегистрСведенийНаборЗаписей.%ТипОбъекта%
  • В процедуре ПриЧтенииНаСервере формы элемента (если есть), добавить вставку кода:
// СтандартныеПодсистемы.УправлениеДоступом
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда
МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом");
МодульУправлениеДоступом.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
КонецЕсли;
// Конец СтандартныеПодсистемы.УправлениеДоступом

Подсистемы

Новый объект должен быть размещен в служебную подсистему согласно регламенту “Подсистемы“. Если в техническом решении не прописано пользовательское размещение тогда объект добавляется только в служебную подсистему.