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

ПНР и сопровождение

Модераторы: m0p3e, edward_K, Модераторы

Ответить
Один Из Вас
Посетитель
Сообщения: 43
Зарегистрирован: 18 мар 2015, 13:35

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

Сообщение Один Из Вас »

Прошу помочь:
Нужен LOTик удаляющий накладные на отпуск, связанные с ними ордера, СФ, книгу продаж и хозоперации к ним.
Может что-то и забыл?
Заранее благодарю.
Den
Местный житель
Сообщения: 1842
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

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

Сообщение Den »

ага..еще навреное spdocnal
лот-скриптами будет муторно это. Изучайте возможности sql delete - оператора прямого sql
RAJAH
Местный житель
Сообщения: 932
Зарегистрирован: 18 фев 2008, 12:49

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

Сообщение RAJAH »

SALDOMC тоже, наверное...
По-моему, лучше разные *.vih для удаления использовать, иначе есть риск оставить "мусор" в базе.
Один Из Вас
Посетитель
Сообщения: 43
Зарегистрирован: 18 мар 2015, 13:35

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

Сообщение Один Из Вас »

Пришли вот такие мысли:

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

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);
Может кто из профи поправит ?
Заранее благодарю.
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5185
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

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

Сообщение 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 - создайте одно накладную и проделайте по ней все операции и посмотрите по журналу.
Один Из Вас
Посетитель
Сообщения: 43
Зарегистрирован: 18 мар 2015, 13:35

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

Сообщение Один Из Вас »

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