УТ 10.3 Как удалить записи регистра сведений "Объекты доступа документов"?

1. pentanom 30 02.01.25 22:37 Сейчас в теме
Во-первых, Поздравляю всех с Новым годом! Всем желаю успехов в этом году.

Ну и вопрос. Необходимо почистить РС "Объекты доступа документов". Регистр независимый и непериодический. Вручную удалять записи нет возможности (а если есть, то подскажите как). А программно нужно удалить те записи, которых документы помечены на удаление. Как это можно сделать?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. nomad_irk 81 04.01.25 10:01 Сейчас в теме
(1) Выбрать запросом такие документы и используя отбор по документу выполнить запись пустых наборов.
user1863362; pentanom; +2 Ответить 3
7. pentanom 30 04.01.25 12:46 Сейчас в теме
(3)
(1) Выбрать запросом такие документы и используя отбор по документу выполнить запись пустых наборов.
Это для скорости? Я сделал так:
Процедура КнопкаВыполнитьНажатие(Кнопка)
    
    НаборЗаписей = РегистрыСведений.ОбъектыДоступаДокументов.СоздатьНаборЗаписей();
    НаборЗаписей.Прочитать();
    Индикатор =1;
    КолЗаписей = НаборЗаписей.Количество();
    ЭлементыФормы.Индикатор.МаксимальноеЗначение = КолЗаписей;
    Для Счетчик = 1 по КолЗаписей Цикл
        ОбработкаПрерыванияПользователя();
        Индикатор = Индикатор +1;
        Запись = НаборЗаписей[КолЗаписей-Счетчик];
        Док = Запись.ДокументСсылка;
        Если Док.ПометкаУдаления и Док.Дата <= КонецДня(УдалятьПо) Тогда 
            Сообщить(" - "+Док);
            НаборЗаписей.Удалить(Запись); 
        КонецЕсли; 
    КонецЦикла;
    
КонецПроцедуры

Показать
не быстро, но вроде бы работает.
12. nomad_irk 81 04.01.25 13:24 Сейчас в теме
(7)
Это для скорости?

Скорее для бОльшей параллельности.

Оно и не будет быстро.

Я категорически не понимаю, для чего весь этот изврат, если можно сделать проще?

Запрос = Новый Запрос;
Запрос.Текст = "Выбрать Различные ДокументСсылка ИЗ Регистр ГДЕ ДокументСсылка.ПометкаУдаления";
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
       НЗ = Регистры.<МойРегистр>.СоздатьНаборЗаписей();
       НЗ.Отбор.ДокументСсылка.Установить(Выборка.ДокументСсылка);
       НЗ.Записать();
КонецЦикла;
13. pentanom 30 04.01.25 13:34 Сейчас в теме
(12)
Я категорически не понимаю, для чего весь этот изврат, если можно сделать проще?
К тому времени, когда здесь появились комментарии, я уже все сделал.
Все спасибо!
2. pentanom 30 02.01.25 23:09 Сейчас в теме
Написал так:
Процедура КнопкаВыполнитьНажатие(Кнопка)
    
    НаборЗаписей = РегистрыСведений.ОбъектыДоступаДокументов.СоздатьНаборЗаписей();
    НаборЗаписей.Прочитать();
    Для Каждого Запись Из НаборЗаписей Цикл
        Док = Запись.ДокументСсылка;
        Если Док.ПометкаУдаления Тогда
            НаборЗаписей.Удалить(Запись);
        КонецЕсли;
    КонецЦикла;
    НаборЗаписей.Записать();
 
КонецПроцедуры

Показать
но как-то мне не нравится строка - НаборЗаписей.Удалить(Запись);
4. user2116971 04.01.25 10:44 Сейчас в теме
6. pentanom 30 04.01.25 12:42 Сейчас в теме
(4)
(2) Не нравится - не ешь.
С Новым годом!
5. RustamZz 04.01.25 12:06 Сейчас в теме
(2) Вам лучше менеджером с ними работать.
pentanom; +1 Ответить
8. user1863362 04.01.25 12:53 Сейчас в теме
(5)
лучше менеджером с ними работать
Точно точно. Никак не программистом.
grafit; pentanom; +2 Ответить
10. pentanom 30 04.01.25 12:55 Сейчас в теме
(8)
(5)
лучше менеджером с ними работать
Точно точно. Никак не программистом.
Ну тогда уж старшим менеджеров!
9. pentanom 30 04.01.25 12:53 Сейчас в теме
(5)
(2) Вам лучше менеджером с ними работать.
Прошелся по интернету - попались только с набором записей. Ну я и взял их за основу.
11. user1863362 04.01.25 13:03 Сейчас в теме
(9)
Прошелся по интернету
А тебе там не попалось ничего про то, что 1С - многопользовательская система? И пока ты набор обрабатываешь и весь регистр перезаписываешь, в базе что-то меняется?
Оставьте свое сообщение

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