![]() |
![]() |
![]() |
|
Каскадное удаление данных из базы | ☑ | ||
---|---|---|---|---|
0
Baker_it
16.02.10
✎
13:41
|
Здравствуйте. А не подскажет ли мне уважаемый all, как в восьмерке реализовать программно каскадное удаление данных из базы? То есть имея ссылку на элемент справочника удалить все документы, справочники, записи регистров, которые на него ссылаются? Сводится ли задача к использованию функции НайтиПоСсылкам() или есть уже готовые решения?
|
|||
1
Фокусник
16.02.10
✎
13:46
|
(0) Я бы делал сам рекурсию с НайтиПоСсылкам(), а потом всё найденное грохнуть.
Про готовое не в курсе, да и подобного рода чужие обработки всё равно сначала нужно анализировать на корректность, в итоге времени не больше уйдет, чем самому написать :) |
|||
2
FIXXXL
16.02.10
✎
13:51
|
обработка УдалениеПомеченных не то делает?
|
|||
3
Serg_1960
16.02.10
✎
13:54
|
(0) Аавтор знает чего он хочет? Предупреждаю: вопрос не так прост, как кажется.
|
|||
4
Baker_it
16.02.10
✎
14:00
|
(1) Ну, если ничего не найду - придется самому писать :)
(2) Благодарю, сейчас посмотрю. (3) Абсолютно. |
|||
5
0xFFFFFF
16.02.10
✎
14:01
|
(4) Тут главное полностью всю базу не удалить...
|
|||
6
Фокусник
16.02.10
✎
14:04
|
(0) А что удалить нужно, Организацию? :)
|
|||
7
Живой Ископаемый
16.02.10
✎
14:07
|
2(4) э... например удаляем договор, договор исполуьзуется в документах движения... Некоторые из этих документов партиобразующие, их партии используются в других документах движения...
|
|||
8
Serg_1960
16.02.10
✎
14:15
|
Повторю вопрос: А автор знает где ему остановиться? Что удалять, а что - нет? И как отделить одно от другого?
Однажды Ксант, во время большой пьянки, поставил на кон всё состояние на спор, что он может выпить много, очень много. Всё море!... А на утро, протрезвев, прибежал за советом к Эзопу. Эзоп, всё-таки выручил Ксанта, посоветовав ему выдвинуть встречное условие: "Я выпью море, но только море. Отделите его от рек и дождевой воды»... |
|||
9
Baker_it
16.02.10
✎
14:15
|
(6) У нас РИБ - один центральный узел, девять периферийных. По замыслу, отдельные объекты, созданные в одном из периферийных узлов должны попадать только в центральный узел, не мигрируя в другие периферийные. К сожалению, из-за ошибки при проектировании системы, часть справочников у нас расползлась по всем периферийным базам, потянув за собой записи в регистрах. Пришлось их искать и прибивать. Что и пытаюсь сделать :)
|
|||
10
Baker_it
16.02.10
✎
14:26
|
(8) Знает. На самом деле задача не столь сложна, какой представляется после прочтения первого поста темы. Подробнее смотрите (9).
|
|||
11
Baker_it
16.02.10
✎
14:32
|
Интересно. При удалении объекта справочника посредством метода Удалить() затираются и связанные с ним записи регистров сведений. Это фича такая?
|
|||
12
Широкий
16.02.10
✎
14:32
|
(11) Если только у регистра стоит свойство "Отбор"
|
|||
13
Живой Ископаемый
16.02.10
✎
14:37
|
2(11) По "ведущему" измерению
|
|||
14
Baker_it
16.02.10
✎
14:40
|
(11)(12) Как много нам открытий чудных (с) Спасибо. Получается, платформа неявно контролирует ссылочную целостность для таких регистров.
|
|||
15
Широкий
16.02.10
✎
14:41
|
(13) Верно.. напутал.. Свойство "Ведущее"
|
|||
16
Serg_1960
16.02.10
✎
14:45
|
(14) НайтиПоСсылкам() подсовывает Вам именно те объекты, которых надо пометить на удаление. Документы, записи справочников и независимых регистров.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |