HelpF.pro

Как в периодическом независимом регистре сведений удалить все записи по валютам с наименованиями?

Как в периодическом независимом регистре сведений «КурсыВалют» удалить все записи по валютам с наименованиями «EUR» и «USD», период которых меньше 01 января 2005 года?

Сначала получим таблицу записей, которые необходимо оставить. Поскольку условий несколько, да еще и не все они на равенство, оптимальнее это сделать при помощи запроса. Следующий запрос даст нам желаемое:
Код 1C v 8.х
 // Получение нужных записей
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| *
|ИЗ
| РегистрСведений.КурсыВалют КАК КурсыВалют
|
|ГДЕ
| (КурсыВалют.Период >= ДАТАВРЕМЯ(2005, 1, 1)
| ИЛИ
| НЕ(КурсыВалют.Валюта.Наименование ПОДОБНО " "USD" ")
| И
| НЕ(КурсыВалют.Валюта.Наименование ПОДОБНО " "EUR" "))";

Источником данных для запроса послужила таблица записей регистра.
Были применены отборы, чтобы в результат попали записи, для которых период более или равен 01 января 2005 года, или наименования не USD и не EUR. Обратите внимание: при составлении условия по периоду, чтобы не пользоваться параметром запроса, прямо в тексте запроса применили литерал даты ДАТАВРЕМЯ(), в котором части даты указываются в «обратном» порядке: год, месяц, порядковый номер дня в месяце.
Результатом запроса будет таблица, в которой по каждой записи заполнены все поля регистра сведений КурсыВалют.
Код 1C v 8.х
 // Выгрузка результата запроса
ТаблицаОставляемыхЗаписей = Запрос.Выполнить().Выгрузить();

НаборЗаписей = РегистрыСведений.КурсыВалют.СоздатьНаборЗаписей();

НаборЗаписей.Загрузить(ТаблицаОставляемыхЗаписей);

НаборЗаписей.Записать();

Далее выполняем запрос, выгружаем результат в таблицу значений ТаблицаОставляемыхЗаписей
Создаем переменную НаборЗаписей, тип значения РегистрСведенийНаборЗаписей.КурсыВалют, выгружаем в нее таблицу значений ТаблицаОставляемыхЗаписей.
Поскольку сама таблица была получена из регистра, то названия ее колонок совпадут с названиями полей регистра, а значит, загрузка пройдет успешно.
Далее записываем заполненный только нужными записями набор записей в регистр с замещением его исходных данных (как вы уже помните, параметр Замещать метода Записать() по умолчанию имеет значение Истина).
Опубликовано на сайте: https://HelpF.pro
Прямая ссылка: https://HelpF.pro/faq82/view/888.html