Имя: Пароль:
1C
1С v8
Удаление записей из регистра сведений
0 1snik_d
 
29.01.20
10:55
Привет. Есть непериодический, независимый регистр сведений. Мне нужно удалить из него ряд записей с определенным условием по ресурсам регистра. Как правильнее это сделать?
У меня такие варианты:
1) Выгрузить набор записей в таблицу значений, там удалить лишнее, загрузить обратно
2) Перебрать все записи регистра из набора, удалить лишние, записать набор. Тут есть сомнения, что при удалении записей будет сбиваться выборка.
1 Aleksey
 
29.01.20
10:59
запрос?
2 1snik_d
 
29.01.20
11:01
(1) а удалять как?
3 Волшебник
 
модератор
29.01.20
11:02
Нужно использовать МенеджерЗаписи и его метод Удалить.
Никаких наборов!
4 olegves
 
29.01.20
11:05
+(3) а можно еще и набор записей с отбором использовать. Отбор по измерениям. Если надо удалять целыми наборами (в разрезе отборов), то так быстрее, чем (3)
5 Волшебник
 
модератор
29.01.20
11:06
(4) И очень рискованно. Можно удалить лишнее или всё. Отбор может по какой-то причине не установиться, а платформа промолчит
6 1snik_d
 
29.01.20
11:06
(3) Скорость работы будет атас конечно ((
7 Волшебник
 
модератор
29.01.20
11:06
(6) Лучше медленно, но верно
8 1snik_d
 
29.01.20
11:06
(4) Отбор не работает по ресурсам к сожалению
9 1snik_d
 
29.01.20
11:08
(7) А через таблицу значений плохой вариант?
10 Волшебник
 
модератор
29.01.20
11:19
(9) Нет такого варианта. Удалять можно или набором, или менеджером записи.
11 Aleksey
 
29.01.20
11:20
(8) поэтому запрос
12 1snik_d
 
29.01.20
11:22
(10) Понятно, что там получается через набор записей. Ладно, я понял, спасибо всем.
13 1snik_d
 
29.01.20
11:22
(11) Да нельзя через запрос манипулировать данными, вопрос не в том, как отобрать, а как удалить
14 1ctube
 
29.01.20
11:29
(5) Такое уже случалось? Просто когда нужно удалить какую-либо инфу из РС, то всегда использую отбор. Получается это не правильный подход?
15 olegves
 
29.01.20
11:42
(14) у меня такого небыло никогда - отбор всегда устанавливался. Да и массовые удаления записей регистра нужны редко, поэтому их сначала на копии базы пробую
16 inkvizitr
 
29.01.20
13:49
Рабочий пример с набором, переделать под твой пару минут, где сотрудник это ссылка на элемент справочника, чтобы в последующем устанавливать отбор по измерению регистра    

НаборДанных = РегистрыСведений.КадроваяИсторияСотрудниковИнтервальный.СоздатьНаборЗаписей();
    НаборДанных.Отбор.Сотрудник.Установить(Сотрудник);
    НаборДанных.Прочитать();
    Если НаборДанных.Количество() Тогда
        НаборДанных.Очистить();
        НаборДанных.Записать();
    Иначе
        Сообщить("Ничего не нашел");
    КонецЕсли;
17 1snik_d
 
29.01.20
18:09
(16) Спасибо. Это я и сам умею )). Тем более в моем случае не так надо, мне отбор по ресурсам нужен. Хотел просто оптимально по скорости сделать, но получилось как всегда.
18 ам794123
 
29.01.20
20:04
(0) В обработке создать динамически список: основная таблица - твой регистр. штатными средствами УФ накладываешь отбор, cntr+A и Del. Профит.
19 runoff_runoff
 
29.01.20
20:27
(17) набор записей – это набор с отбором по измерениям, следовательно, твой случай – не набор записей, а просто заместит весь регистр содержимым таблицы значений
20 Мимохожий Однако
 
29.01.20
20:34
(17) Тогда запросом получай записи по отдельности и далее по (3)
21 1snik_d
 
29.01.20
20:42
(20) Уже так и сделал
AdBlock убивает бесплатный контент. 1Сергей