#std447¶
Использование объекта РегистрСведенийМенеджерЗаписи¶
1.¶
Чтение записи (или набора записей) из регистра сведений без последующей модификации выполняйте запросом.
2.¶
РегистрСведенийМенеджерЗаписи применяйте только когда нужен отбор одновременно по всем измерениям регистра.
При записи через менеджер записи платформа использует два набора записей и устанавливает им соответствующие отборы. Из-за этого обработчики событий набора записей вызываются и при записи через менеджер записи.
3.¶
В остальных случаях используйте РегистрСведенийНаборЗаписей.
По производительности менеджер записи иногда сопоставим с набором записей, но в части сценариев медленнее из-за лишних действий.
Неправильно
Для Каждого СтрокаТаблицы Из ТаблицаЗначенийПрав Цикл
ЭлементРегистраСведений = РегистрыСведений.ЗначенияПравПользователя.СоздатьМенеджерЗаписи();
ЭлементРегистраСведений.НаборПрав = ЗначениеНабораПрав;
ЭлементРегистраСведений.Право = СтрокаТаблицы.Право;
ЭлементРегистраСведений.Значение = СтрокаТаблицы.Значение;
ЭлементРегистраСведений.Записать();
КонецЦикла;
Правильно
Набор = РегистрыСведений.ЗначенияПравПользователя.СоздатьНаборЗаписей();
Набор.Отбор.НаборПрав.Установить(ЗначениеНабораПрав);
Для Каждого СтрокаТаблицы Из ТаблицаЗначенийПрав Цикл
Запись = Набор.Добавить();
Запись.НаборПрав = ЗначениеНабораПрав;
Запись.Право = СтрокаТаблицы.Право;
Запись.Значение = СтрокаТаблицы.Значение;
КонецЦикла;
Набор.Записать();