Уведомления
Очистить все

Удаляем записи в независимом регистре сведений

1 Записи
1 Пользователи
0 Likes
325 Просмотры
2-150 Okolokompa Форум
(@pyatachok)
Estimable Member
Присоединился: 5 лет назад
Записи: 74
Создатель темы  

Для очистки записей с отбором Вам нужно проанализировать состав измерений регистра сведений. Задавая отбор по измерениям, Вы можете частично удалять данные в регистре сведений. К примеру, рассмотрим регистр сведений КурсыВалют. В этом регистре 2 измерения: Валюта и БазоваяВалюта:

Теперь давайте рассмотрим 2 способа очистки записей по определенной Валюте.

Первый способ — использование объекта НаборЗаписей:

Процедура ОчиститьЗаписиВНезависимомРегистреСведенийСОтбором(Валюта, БазоваяВалюта)
Набор = РегистрыСведений.КурсыВалют.СоздатьНаборЗаписей();
Набор.Отбор.Валюта.Установить(Валюта);
Набор.Отбор.БазоваяВалюта.Установить(Валюта);
Набор.Записать();
КонецПроцедуры

В этом примере мы создаем набор записей, устанавливаем для него отбор по измерениям, но записи в набор не добавляем. В результате при записи набора будет выполнена очистка записей по валютам, установленным в качестве отбора.

Второй способ — использование объекта МенеджерЗаписи:

Процедура ОчиститьЗаписиВНезависимомРегистреСведенийСОтбором(Валюта, БазоваяВалюта)
Запись = РегистрыСведений.КурсыВалют.СоздатьМенеджерЗаписи();
Запись.Валюта = Валюта;
Запись.БазоваяВалюта = БазоваяВалюта;
Запись.Удалить();
КонецПроцедуры

Оба вариант удалят записи по валюте. При использовании второго варианта платформа будет конвертировать менеджер записи в набор записей.

Не забывайте про порядок измерений в регистре. К примеру, если задавать отбор только по измерению Валюта — будут удаляться все записи по этой валюте независимо от значений второго измерения (БазоваяВалюта). Таким образом Вы можете либо более детально удалять записи, устанавливая отбор по нескольким измерениям, либо делать более общее удаление с использованием отбора только по одному измерению.


   
Цитата
Поделиться: