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