Программное удаление определённых записей корректировки регистра в РС

1. mnenevajno 08.10.24 09:27 Сейчас в теме
Всем привет. Есть регистр сведений "Цены номенклатуры", периодический, подчинённый регистратору "Корректировка регистров"
Я смог с помощью запроса выбрать из РС нужные мне записи, но не могу их удалить.
Как будто регистр сведений не видит своих измерений, у него есть только одно - Регистратор.
В связи с этим я не могу создать набор записей для удаления с помощью отбора, потому что не могу манипулировать измерениями (Выбрать конкретные номенклатуры), а когда отбор ставится по регистратору - то удаляются все записи регистратора, тоесть все записи из "Корректировки регистров".


Резюмируя:
Я могу интерактивно удалять записи в корректировке регистров, но не могу в регистре сведений.
Записей много, поэтому вручную удалять нет возможности.
С помощью обработки "Универсальная обработка "Изменение записей регистров сведений и накопления"" у меня ничего не получилось, она 2 записи удаляет неопределённое количество времени. Приходится убивать процесс.
Помогите, как сделать отбор и удалить нужные мне записи?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. nomad_irk 76 08.10.24 09:33 Сейчас в теме
(1) Запросом получить все записи, которые должны остаться после манипуляций и переписать набор записей
3. mnenevajno 08.10.24 09:43 Сейчас в теме
(2) Проблема в том что я не могу отобрать запросом никакие из записей. Потому что не могу взаимодействовать с реквизитами
В самом запросе все записи заполнены, то, что мне надо
Но когда я пытаюсь создать набор записей или что-то ещё, то программа останавливается когда видит любой из реквизитов
Может я что-то делаю неправильно?
Прикрепленные файлы:
4. SlavaKron 08.10.24 09:47 Сейчас в теме
(3) Ну так для подчиненного РС набор записей всегда имеет только отбор по регистратору.
user2033930; +1 Ответить
5. user2033930 08.10.24 09:49 Сейчас в теме
(3) Устанавливай отбор по регистратору, и уже внутри прочитанного набора ищи записи по измерениям.
6. nomad_irk 76 08.10.24 09:58 Сейчас в теме
(3) В чем сложность сделать как-то так:

Запрос = Новый Запрос;
Запрос.Текст = 
"Выбрать
|  Регистратор, 
|  Измерение1, 
|  Измерение2, 
|  ........, 
|  ИзмерениеN, 
|  Ресурс1, 
|  Ресурс2,
|  ..........,
|  РесурсN
|ИЗ
|  Регистр
|ГДЕ
|  Измерение1 ...... 
|    И Измерение2..... 
|    И ИзмерениеN.....
|ИТОГИ ПО 
|  Регистратор";

ВыборкаРегистраторы = Запрос.Выполнить.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);

Пока ВыборкаРегистраторы.Следующий() Цикл
     НЗ = РегистрыСведений.<МойРегистр>.СоздатьНаборЗаписей();
     НЗ.Отбор.Регистратор.Установить(ВыборкаРегистраторы.Регистратор);
     ВыборкаЗаписи = ВыборкаРегистраторы.Выбрать();
     Пока ВыборкаЗаписи.Следующий() Цикл
         ЗаполнитьЗначенияСвойств(НЗ, ВыборкаЗаписи);
     КонецЦикла;
     НЗ.Записать();
КонецЦикла;
Показать
7. nomad_irk 76 08.10.24 10:01 Сейчас в теме
(3)
Проблема в том что я не могу отобрать запросом никакие из записей. Потому что не могу взаимодействовать с реквизитами

Вы их выбираете запросом, только насколько я понял, запрос вам возвращает те записи, которые должны удалиться.
Я вам предлагаю выбрать такие записи, которые должны остаться в регистре после ваших манипуляций и именно их записать через набор записей.
(3)
Но когда я пытаюсь создать набор записей или что-то ещё, то программа останавливается когда видит любой из реквизитов
Может я что-то делаю неправильно?

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

В сам набор записей вы можете записать новые записи, которые будут соответствовать набору с удаленными записями - сумбур только усугубился :)
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот