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