Имя: Пароль:
1C
1С v8
MS SQL. Каскадное удаление записей
0 Ахмадинежад
 
05.08.13
14:47
Ну то есть при удалении записи в таблице документов, естественно, что нужно удалять таблицы табличных частей.

Где почитать, как настраивается сабж ? На первовыдающихся поисковиком ссылках - в основном форумы.

Что называется, пошаговой инструкции нема.
1 Maxus43
 
05.08.13
14:48
чем не устраивает в 1с удалять?
2 Ахмадинежад
 
05.08.13
14:49
(1)база большая. ооооочень долго.
3 Maxus43
 
05.08.13
14:51
(2) полностью таблицы надо очистить? или выборочные записи?
4 Fragster
 
модератор
05.08.13
14:52
через ПолучитьСтруктуруХраненияБазыДанных получаешь имена таблиц и дальше по ним удаляешь
5 1Сергей
 
05.08.13
14:53
триггера (триггеры?) использовать надо
6 Ахмадинежад
 
05.08.13
14:57
(3)выборочно, так бы дропнул..
(4)это всё есть, даже научился удалять по условию, но как только понадобилось удалять по JOIN (ну то бишь удаляю строку из таблицы документов - надо по ключу удалить строку из таблицы табличных частей документа) - усё..
(5)на одном форуме советуют, то триггеры то каскадное, вроде больше нарыл сторонников каскадного..
7 Ёпрст
 
гуру
05.08.13
14:59
(6) и ? примитивные 2 запроса на delete с известным ключом..
8 Ёпрст
 
гуру
05.08.13
15:00
нафига тебе какой-то там джоин ?
9 Ахмадинежад
 
05.08.13
15:00
(7)а можно пример ? ...
10 Ёпрст
 
гуру
05.08.13
15:03
11 ptiz
 
05.08.13
15:06
(10) Как я понял из кода этой обработки, там сделано "гениально просто": ID документов собираются в ТЗ, а потом идет перебор и очистка таб.части каждого документа отдельным запросом :)
12 Ёпрст
 
гуру
05.08.13
15:08
(11) да.
13 Ёпрст
 
гуру
05.08.13
15:09
ничто не мешает, влепить все во временную тз и сделать всё без обхода результатов первого запроса.
14 Ахмадинежад
 
05.08.13
15:20
(10)благодарю
15 Серго62
 
05.08.13
15:21
(7) Если нужно почистить документы, то двумя запросами не обойдешься. Например документ РеализацияТоваровИУслуг "размазан" по 8-ми таблицам
16 МихаилМ
 
05.08.13
15:26
настраиваете внешние ключи.
и при удалении ведущих ведомые удаляться.
впрочем это зависит от субд.
только будет проблема при реструктуризации.
17 rs_trade
 
05.08.13
15:27
а че, у таблиц базы 1с внешние ключи есть?
18 rs_trade
 
05.08.13
15:27
каскадное же с внешними ключами работает.
19 МихаилМ
 
05.08.13
15:28
(16)
+ пересчет итогов отдельно сделать.
20 МихаилМ
 
05.08.13
15:29
(17)
кто мешает настроить.

много возможностей субд открывается если уметь бороться
с проблемой пересоздания таблиц при реструктуризации.
21 rs_trade
 
05.08.13
15:41
(20) проблему можно победить, но по мне лично не хочется иметь базу обвешанную всякими тригерами как новогодняя елка.
22 rs_trade
 
05.08.13
15:45
Внешние ключи можно повесить, удалить объекты, ключи снять.
23 МихаилМ
 
05.08.13
15:45
(21)
что тириггеры, что подписки - единое -  новогодняя елка
с какой стороны смотреть на 1с : из конфигуратора
или из ssms.
24 rs_trade
 
05.08.13
16:05
(22) хотя гораздо проще запрос написать на удаление
25 Torquader
 
05.08.13
23:16
При желании, можно выбрать все идентификаторы документов и по ним последовательно почистить сначала табличные части, а потом и сам документ.
Только, мне кажется, что проще всё же удалять из самой 1С.