|
Удалить из регистра сведений "ненужные" записи | ☑ | ||
---|---|---|---|---|
0
Serg_1960
13.03.12
✎
19:03
|
Из независимого, периодического регистра сведений ОсновныеСпецификацииНоменклатуры (это УПП) нужно удалить записи, в которых спецификация помечена на удаление (ресурс регистра СпецификацииНоменклатуры)...
|
|||
1
Serg_1960
13.03.12
✎
19:04
|
Написал простенький алгоритм:
Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ | ОсновныеСпецификацииНоменклатуры.Номенклатура, | ОсновныеСпецификацииНоменклатуры.ХарактеристикаНоменклатуры, | ОсновныеСпецификацииНоменклатуры.Подразделение |ИЗ | РегистрСведений.ОсновныеСпецификацииНоменклатуры КАК ОсновныеСпецификацииНоменклатуры |ГДЕ | ОсновныеСпецификацииНоменклатуры.СпецификацияНоменклатуры.ПометкаУдаления = ИСТИНА | И ОсновныеСпецификацииНоменклатуры.СпецификацияНоменклатуры.ЭтоГруппа = ЛОЖЬ"; Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл НаборЗаписей=РегистрыСведений.ОсновныеСпецификацииНоменклатуры.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Номенклатура.Установить(Выборка.Номенклатура); НаборЗаписей.Отбор.ХарактеристикаНоменклатуры.Установить(Выборка.ХарактеристикаНоменклатуры); НаборЗаписей.Отбор.Подразделение.Установить(Выборка.Подразделение); НаборЗаписей.Прочитать(); ВсегоЗаписей = НаборЗаписей.Количество(); Для ОбратныйИндекс = 1 По ВсегоЗаписей Цикл Элемент = НаборЗаписей[ВсегоЗаписей - ОбратныйИндекс]; Если Элемент.СпецификацияНоменклатуры.ПометкаУдаления Тогда НаборЗаписей.Удалить(Элемент); КонецЕсли; КонецЦикла; НаборЗаписей.Записать(); КонецЦикла; |
|||
2
Serg_1960
13.03.12
✎
19:05
|
Не нравится мне строка "Если Элемент.СпецификацияНоменклатуры.ПометкаУдаления Тогда".
А как иначе? |
|||
3
ptrtss
13.03.12
✎
19:07
|
Фильтруйте просто по спецификации и просто записывайте пустой набор записей
|
|||
4
ptrtss
13.03.12
✎
19:08
|
Не обязательно в отборе указывать все измерения
|
|||
5
Kashemir
13.03.12
✎
19:09
|
(4) Все "основные" - более чем обязательно
|
|||
6
Serg_1960
13.03.12
✎
19:10
|
СпецификацияНоменклатуры - это не измерение. Это ресурс. Отбор по нему - "Низя"(с)
|
|||
7
Kashemir
13.03.12
✎
19:11
|
Как вариант - сначала получить временную таблицу - проиндексировать и проверять на вхождение
|
|||
8
ptrtss
13.03.12
✎
19:12
|
(5)
Не уверен в этом |
|||
9
Kashemir
13.03.12
✎
19:12
|
(7) Отменяется - не дочитал тз
|
|||
10
ptrtss
13.03.12
✎
19:12
|
(6)
Мм... |
|||
11
Kashemir
13.03.12
✎
19:13
|
(8) А зря.
|
|||
12
Serg_1960
13.03.12
✎
19:14
|
Сообственно говоря, алгоритм - рабочий. Но вот строка "Элемент.СпецификацияНоменклатуры.ПометкаУдаления" - чтение объекта вызывает из базы. Так ведь? А это совсем не комильфо :(
|
|||
13
ptrtss
13.03.12
✎
19:14
|
ВГраница = ВсегоЗаписей-1
Для ОбратныйИндекс = 0 По ВГраница Цикл Элемент = НаборЗаписей[ВГраница - ОбратныйИндекс]; Лучше так ^^ |
|||
14
ptrtss
13.03.12
✎
19:15
|
(12)
Вы эту обработку каждую секунду будете запускать?)) |
|||
15
ptrtss
13.03.12
✎
19:16
|
Хотя, не, про ВГраница это не обязательно, и так хорошо
|
|||
16
ptrtss
13.03.12
✎
19:17
|
Можно в выборку взять номера записей с помеченными спецификациями, а итоги сделать по измерениям
|
|||
17
Serg_1960
13.03.12
✎
19:18
|
(14) Нет :) Но записей в этом регистре и спецификаций, помеченных на удаление - мама не горюй :(
|
|||
18
Kashemir
13.03.12
✎
19:18
|
(12) Не комильфо - но альтернативы лучше не вижу
|
|||
19
Serg_1960
13.03.12
✎
19:21
|
Ок. Буду думать дальше. Если алгоритм надолго повесит (заблокирует) регистр - меня самого узверы повесят.
|
|||
20
Kashemir
13.03.12
✎
19:21
|
(17) Кстати тут можно напрямую скульным запросом удалить. Ибо все равно регистр сведений независимый - ничем кроме индексов не связан
|
|||
21
Kashemir
13.03.12
✎
19:22
|
+(20) Конечно если нет распределени
|
|||
22
Serg_1960
13.03.12
✎
19:34
|
Хм... это мысль. Спасибо. Но у меня РИБ-база :( И наверняка после обмена придется повторить "очистку".
|
|||
23
n koretsky
13.03.12
✎
19:57
|
(22) кроме того, может, стоит рассмотреть вариант избежать подобного рода ситуаций.
а именно - в обработке при отмене проведения удалять сходу записи из регистра? |
|||
24
Serg_1960
13.03.12
✎
20:12
|
(23) Сорри, Вы не в теме :(
|
|||
25
Fram
13.03.12
✎
20:20
|
(12) что мешает вытащить в выборку запроса пометку удаления?
|
|||
26
Fram
13.03.12
✎
20:21
|
(25) упс. туплю под вечер
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |