Страница 1 из 1

LOTик удаляющий накладные на отпуск и т.д.

Добавлено: 26 окт 2015, 17:21
Один Из Вас
Прошу помочь:
Нужен LOTик удаляющий накладные на отпуск, связанные с ними ордера, СФ, книгу продаж и хозоперации к ним.
Может что-то и забыл?
Заранее благодарю.

Re: LOTик удаляющий накладные на отпуск и т.д.

Добавлено: 27 окт 2015, 11:26
Den
ага..еще навреное spdocnal
лот-скриптами будет муторно это. Изучайте возможности sql delete - оператора прямого sql

Re: LOTик удаляющий накладные на отпуск и т.д.

Добавлено: 27 окт 2015, 12:33
RAJAH
SALDOMC тоже, наверное...
По-моему, лучше разные *.vih для удаления использовать, иначе есть риск оставить "мусор" в базе.

Re: LOTик удаляющий накладные на отпуск и т.д.

Добавлено: 03 ноя 2015, 12:11
Один Из Вас
Пришли вот такие мысли:

Код: Выделить всё

delete spsopr where vidsopr=201; delete katsopr where vidsopr=201;
delete soprhoz where ((soprhoz.csoprdoc==katsopr.nrec and 201==soprhoz.tipdoc and 0==soprhoz.sysoper)) and not isvalidall(tnkatsopr);
delete schfact where ((schfact.nrec==katsopr.cschfact)) and not isvalidall(tnkatsopr); delete spschf  where ((spschf.CSCHFACT==schfact.nrec)) and not isvalidall(tnschfact); delete bookprzk where ((bookprzk.CSCHFACT==SCHFACT.nrec)) and bookprzk.direct=1 and not isvalidall(tnschfact); 
delete bookprzk where ((bookprzk.CSCHFACTS==SCHFACT.nrec)) and bookprzk.direct=1 and not isvalidall(tnschfact);
Может кто из профи поправит ?
Заранее благодарю.

Re: LOTик удаляющий накладные на отпуск и т.д.

Добавлено: 03 ноя 2015, 16:03
edward_K
По самому написанию - усе что можно было перепутали.
delete spsopr where (( 201 == vidsopr));
delete katsopr where (( 201 == vidsopr));
не понятно зачем тут katsopr? 201==soprhoz.tipdoc хватит, но еще нужно грохать soprhoz по СФ + spsophoz
delete soprhoz where ((soprhoz.csoprdoc==katsopr.nrec and 201==soprhoz.tipdoc and 0==soprhoz.sysoper)) and not isvalidall(tnkatsopr);
Работать буде пятилетку. Удалит заодно все СФ по платежам.
delete schfact where ((schfact.nrec==katsopr.cschfact)) and not isvalidall(tnkatsopr);
Работать буде пятилетку.
delete spschf where ((spschf.CSCHFACT==schfact.nrec)) and not isvalidall(tnschfact); delete bookprzk where ((bookprzk.CSCHFACT==SCHFACT.nrec)) and bookprzk.direct=1 and not isvalidall(tnschfact);
Ну может быть - но долго
delete bookprzk where ((bookprzk.CSCHFACTS==SCHFACT.nrec)) and bookprzk.direct=1 and not isvalidall(tnschfact);
Я обычно делаю наоборот.
Сначала генерю выборки по удалению сопроводиловки
select 'delete spsopr where (('+spsopr.nrec+' == nrec ));' ...
to txt ...201_del_spsopr.txt
#include ...201_del_spsopr.txt
....
А потом уже грохаю основную таблицу - часто точно также - медленно, зато надежно. Вообще не проще из галки пометить все и удалить? Где то была настройка разрешающая групповое удаление. Вы забыли еще с 10 - создайте одно накладную и проделайте по ней все операции и посмотрите по журналу.

Re: LOTик удаляющий накладные на отпуск и т.д.

Добавлено: 03 ноя 2015, 18:50
Один Из Вас
Благодарю.
"Настройки Галактики \ Логистика \ Документы \ Контроль удаления и модификации \ Разрешать групповое удаление документов" в принципе решила проблему.
Успехов!