|   |   | 
| 
 | Удалить записи РС (Непериодический,Независимый) за период | ☑ | ||
|---|---|---|---|---|
| 0
    
        na1kk 06.09.22✎ 11:01 | 
        Как удалить записи РС за период?     | |||
| 1
    
        na1kk 06.09.22✎ 11:03 | 
        Пробовал запросом и потом 
 Пока ВыборкаДетальныеЗаписи.Следующий() Цикл МЗ=РегистрыСведений.agroПУПФактИзМониторингаДляПЛ.СоздатьМенеджерЗаписи(); ЗаполнитьЗначенияСвойств(МЗ,ВыборкаДетальныеЗаписи); МЗ.Прочитать(); МЗ.Очистить(); МЗ.Записать(); КонецЦикла; Но на прочитать() ругается на конфикт блокировок | |||
| 2
    
        RomanYS 06.09.22✎ 11:28 | 
        (1) ты путаешься. Это у набора записей есть Очистить(), у менеджера записи Удалить(). Читать ни там, ни там не нужно. Очищать набор тоже не нужно, нужно правильно установить отбор и записать     | |||
| 3
    
        na1kk 06.09.22✎ 11:40 | 
        (2) через набор записей?     | |||
| 4
    
        na1kk 06.09.22✎ 11:43 | 
        (2) пробовал так, но ничего не выбирает 
 Результат=Запрос.Выполнить().Выгрузить(); НаборЗаписей = РегистрыСведений.agroПУПФактИзМониторингаДляПЛ.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.ДатаНач.ЗначениеС = НачалоПериода; НаборЗаписей.Отбор.ДатаКон.ЗначениеПо = КонецПериода; НаборЗаписей.Записать(); | |||
| 5
    
        Vaderonk 06.09.22✎ 11:50 | 
        (4) НаборЗаписей.Отбор.ДатаНач.Установить(НачалоПериода)     | |||
| 6
    
        na1kk 06.09.22✎ 11:56 | 
        (5) только у меня 2 даты и ВидСравнения можно указывать только равно. а мне нужен период дат.     | |||
| 7
    
        Vaderonk 06.09.22✎ 12:01 | 
        (6) по названию темы "Непериодический за период" я улыбнулся, но если так все серьезно - можешь через цикл обхода по датам сделать.     | |||
| 8
    
        na1kk 06.09.22✎ 12:03 | 
        (7) пока это только единственная идея, которая приходит в голову. Подумал, может тут легче вариант подскажут)     | |||
| 9
    
        RomanYS 06.09.22✎ 12:05 | 
        (8) от ситуации зависит и объема регистра. Может проще весь регистр перечитать одним набором и записать только нужное     | |||
| 10
    
        na1kk 06.09.22✎ 12:06 | 
        7 GB регистр     | |||
| 11
    
        na1kk 06.09.22✎ 12:07 | 
        (9) записать ничего не нужно. его порезать нужно.     | |||
| 12
    
        RomanYS 06.09.22✎ 12:11 | 
        (10) Если порезать нужно больше половины, то (9) может быть вполне оптимально. При условии монопольного доступа     | |||
| 13
    
        Vaderonk 06.09.22✎ 12:14 | 
        (8) Ну у тебя как я понял в измерения ДатаНач, ДатаКон - а для набора записей (если использовать менеджер записей платформа все равно превратит это в набор) - можно установить только равенство при отборе. И получается если тебе нужно удалить весь текущий год, тебе нужно будет перебором вставлять сначала ДатаНач = 01.01.2022, а потом ДатаКон = 01.01.2022, 02.01.2022 и тд - что уже выглядит бредово. 
 В (9) совет что можно выбрать в наборе весь регистр, а там уже разбираться в нем типо такого: Набор = РегистрыСведений.*.СоздатьНаборЗаписей(); Набор.Прочитать(); Для Индекс = 1 - Набор.Количество() По 0 Цикл Запись = Набор[- Индекс]; Если Запись.ДатаНач > ДатаНачало И Запись.ДатаКон < ДатаКонца Тогда Набор.Удалить(- Индекс); КонецЕсли; КонецЦикла; Набор.Записать(); | |||
| 14
    
        RomanYS 06.09.22✎ 12:19 | 
        (4) Вообще забавно, по идее после выполнения такого кода регистр должен был очиститься целиком, т.к. Использование для отбора не установлено. 
 (13) возможно дата в регистре всё-таки одна, иначе бы он уже пустой был) | |||
| 15
    
        na1kk 06.09.22✎ 13:11 | 
        всем спасибо!     | |||
| 16
    
        Джинн 06.09.22✎ 13:13 | 
        (0) Откройте для себя универсальную обработку редактирования регистров сведений на всем известном сайте. Понадобится не один раз в жизни.     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |