Имя: Пароль:
1C
 
Каскадное удаление данных из базы
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) НайтиПоСсылкам() подсовывает Вам именно те объекты, которых надо пометить на удаление. Документы, записи справочников и независимых регистров.