Использование объекта РегистрСведенийМенеджерЗаписи

#std447

Область применения: управляемое приложение, мобильное приложение, обычное приложение.

1. Чтение записи (набора записей) из регистра сведений без последующей модификации необходимо выполнять запросом.

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

3. В остальных случаях следует использовать объект РегистрСведенийНаборЗаписей. С точки зрения производительности использование менеджера записей в некоторых случаях будет столь же эффективным, как и использование набора записей, а в некоторых - менее, так как будут выполняться лишние действия.

Правильно:

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

Неправильно:

Для Каждого СтрокаТаблицы ИЗ ТаблицаЗначенийПрав Цикл
  ЭлементРегистраСведений = РегистрыСведений.ЗначенияПравПользователя.СоздатьМенеджерЗаписи();
  ЭлементРегистраСведений.НаборПрав = ЗначениеНабораПрав;
  ЭлементРегистраСведений.Право = СтрокаТаблицы.Право;
  ЭлементРегистраСведений.Значение = СтрокаТаблицы.Значение;
  ЭлементРегистраСведений.Записать();
КонецЦикла;