AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 30.06.2004, 07:51   #1  
bm is offline
bm
Участник
 
29 / 10 (1) +
Регистрация: 30.06.2004
Удалить закупку
Хочу удалить закупку. Будет ли такой код правильным?
Период текущий месяц,сопоставлений и списаний нет.

----
static void job123(Args _args)
{
PurchLine PurchLine;
PurchTable PurchTable;
Voucher v;
TaxTrans TaxTrans;
LedgerTrans LedgerTrans;
VendTrans VendTrans;
InventTrans InventTrans;
VendInvoiceTrans VendInvoiceTrans;
VendInvoicePurchLink VendInvoicePurchLink;
VendInvoiceJour VendInvoiceJour;

VendTransOpen VendTransOpen;
VendSettlement VendSettlement;
InventBatch InventBatch;
InventDim InventDim;
InventSum InventSum;
MarkupTrans MarkupTrans;

LedgerBalancesTrans LedgerBalancesTrans;
LedgerBalancesDimTrans LedgerBalancesDimTrans;


str id;
;

ttsbegin;

delete_from PurchLine where PurchLine.PurchId=='123456789';
delete_from PurchTable where PurchTable.PurchId=='123456789';
delete_from VendInvoiceTrans where VendInvoiceTrans.PurchId=='123456789';
delete_from VendInvoicePurchLink where VendInvoicePurchLink.PurchId=='123456789';
delete_from VendInvoiceJour where VendInvoiceJour.PurchId=='123456789';
delete_from InventBatch where InventBatch.InventBatchId=='123456789';

while select InventDim where InventDim.InventBatchId=='123456789'
delete_from InventSum where InventSum.InventDimId==InventDim.InventDimId;

delete_from InventDim where InventDim.InventBatchId=='123456789';

while select InventTrans where InventTrans.TransRefId=='123456789'

if (InventTrans)
{
v=InventTrans.Voucher;

delete_from MarkupTrans where MarkupTrans.Voucher==v;

delete_from TaxTrans where TaxTrans.Voucher==v;

while select VendTrans where VendTrans.Voucher==v
delete_from VendTransOpen where VendTransOpen.RefRecId==VendTrans.RecId;




//while select VendTrans where VendTrans.Voucher==v
// delete_from VendSettlement where VendSettlement.TransRecId==VendTrans.RecId;
//

while select VendTrans where VendTrans.Voucher==v
{
delete_from LedgerTrans where LedgerTrans.Voucher==VendSettlement.TaxVoucher_RU;
delete_from VendSettlement where VendSettlement.OffsetRecId==VendTrans.OffsetRecId && VendSettlement.TransRecId==VendTrans.RecId;
}


delete_from VendTrans where VendTrans.Voucher==v;

while select LedgerTrans where LedgerTrans.Voucher==v
{

delete_from LedgerBalancesTrans
where LedgerBalancesTrans.TransDate==LedgerTrans.Transdate && LedgerBalancesTrans.AccountNum==LedgerTrans.AccountNum && LedgerBalancesTrans.DebitMST == LedgerTrans.AmountMST;

delete_from LedgerBalancesDimTrans
where LedgerBalancesDimTrans.TransDate==LedgerTrans.Transdate && LedgerBalancesDimTrans.AccountNum==LedgerTrans.AccountNum && LedgerBalancesDimTrans.DebitMST == LedgerTrans.AmountMST;

}

delete_from LedgerTrans where LedgerTrans.Voucher==v;
}

delete_from InventTrans where InventTrans.TransRefId=='123456789';
ttscommit;
}
Старый 30.06.2004, 09:16   #2  
Rokhay is offline
Rokhay
Участник
 
154 / 15 (1) ++
Регистрация: 02.10.2003
Адрес: Ебург
рекомендую посмотреть
http://www.axforum.info/forums/showt...EB%E5%ED%E8%E5
Старый 30.06.2004, 09:32   #3  
bm is offline
bm
Участник
 
29 / 10 (1) +
Регистрация: 30.06.2004
благодарю за ссылку. Все это интересно,но поскольку этим уже занимались специалисты то мб прокомментируют мой код?
Старый 30.06.2004, 10:05   #4  
Rokhay is offline
Rokhay
Участник
 
154 / 15 (1) ++
Регистрация: 02.10.2003
Адрес: Ебург
На вcкидку...

Как минимум необходимо обновить таблички :

1) FactureJour_RU
FActureTrans_RU
MarkupTrans
2) если уж удалять из VendSettlement (хотя вроде сопоставлений нету), то
необходимо удалить также строки для которых
VendSettlement.OffsetRecId == VendTrans.RecID
а для проводок ,сопоставленных с данной, обновить сопоставленные суммы. (поля SettleAmountCur, SettleAmountMST)
3) Перед удалением из LedgerTrans необходимо обновить соответствующие суммы из таблиц LedgerBalancesTrans, LedgerBalancesDimTrans
4) Несколько напрягает выборка из InventTrans по номеру закупки. Уж лучше выбирать в цикле по номеру лота из строки закупки.
Старый 30.06.2004, 10:16   #5  
bm is offline
bm
Участник
 
29 / 10 (1) +
Регистрация: 30.06.2004
1. Фактуру FactureJour_RU -как связать с закупкой? ( по Voucherу не получается. )
2. MarkupTrans.VendSettlement - спасибо ,учту.
3.
Перед удалением из LedgerTrans необходимо обновить соответствующие суммы из таблиц LedgerBalancesTrans, LedgerBalancesDimTrans - Не соображу как это сделать
Старый 30.06.2004, 11:29   #6  
maxsmirnov is offline
maxsmirnov
экс-модератор
 
268 / 25 (1) +++
Регистрация: 08.07.2003
Адрес: Москва
Не совсем понятны цели задуманной вами операции.
Удаление закупки можно понять двояко:

1. Удалить разнесенную закупку, но оставить в системе результат разноски перв. документов по ней - вполне логичное действие (можно применять, например для уменьшения размера БД)

для этого хватит и трети вашего кода.
добавьте еще таблицу PurchLineDelete

но вы, как мне показалось, хотите:

2. удалить разнесенную закупку и все порожденные ею проводки.

тут могу сказать лишь, что в обсуждении по вышеуказанной ссылке я придерживаюсь стороны тех, кто считает удаление проводок концептуально неверным.
Старый 30.06.2004, 11:56   #7  
bm is offline
bm
Участник
 
29 / 10 (1) +
Регистрация: 30.06.2004
Я преследую именно цель 2.
Я уважаю и ту , и другую точку зрения. Но удалить ее хочу. Для этого консультируюсь по корректности кода-могли бы Вы мне помочь?
ЗЫ почему при разноске накладной закупка может не сменить статус? и вообще ни одна опер-я над ней ее статус не меняет?
Старый 30.06.2004, 12:29   #8  
maxsmirnov is offline
maxsmirnov
экс-модератор
 
268 / 25 (1) +++
Регистрация: 08.07.2003
Адрес: Москва
Цитата:
Изначально опубликовано bm
Я преследую именно цель 2.
Я уважаю и ту , и другую точку зрения. Но удалить ее хочу. Для этого консультируюсь по корректности кода-могли бы Вы мне помочь?
ваше дело.
я уверен что при разноске затрагивается большее кол-во таблиц чем в вашем скрипте.
попробуйте средствами sql-сервера отследить в каких таблицах происходят изменения при всевозможных операциях с закупками.

имейте в виду, что в версии 4.0 механизм разноски проводок изменится.

ЗЫ почему при разноске накладной закупка может не сменить статус? и вообще ни одна опер-я над ней ее статус не меняет?

не сталкивался
Старый 30.06.2004, 17:40   #9  
Тимур is offline
Тимур
Аксакал в отставке
 
2,457 / 50 (6) ++++
Регистрация: 31.01.2003
Адрес: Москва
Maxim
А Вы не поделитесь тем, как изменится механизм разносок в 4.0?

__________________
Девочка, никогда не произноси слова только за то, что они такие длинные и красивые; говори только то, что знаешь. (Л.Кэрролл "Алиса в стране чудес").
Старый 30.06.2004, 17:55   #10  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
Такой код по определению неправильный.

Но раз Вам очень хочется проблем, то вот еще пара замечаний
Не стоит удалять InventDim, InventSum (тем более до удаление InventTrans)
При ограничении по Voucher имеет смысл добавлять ограничение по TransDate
Если было закрытие периода, то еще очень много чего потянется - даже не буду пытаться описывать
-------------
Статус может не меняться, если закупка обрабатывается неполностью
Старый 30.06.2004, 17:59   #11  
Hamster is offline
Hamster
Участник
 
687 / 13 (2) ++
Регистрация: 15.05.2003
>почему при разноске накладной закупка может не сменить статус?

потому что накладная может быть на часть закупки.
Старый 30.06.2004, 18:21   #12  
maxsmirnov is offline
maxsmirnov
экс-модератор
 
268 / 25 (1) +++
Регистрация: 08.07.2003
Адрес: Москва
Цитата:
Изначально опубликовано Тимур
Maxim
А Вы не поделитесь тем, как изменится механизм разносок в 4.0?

"будет улучшен механизм ваучеров" - это цитата, а что за ней кроется - не знаю
Старый 18.08.2004, 20:18   #13  
ATimTim is offline
ATimTim
Участник
 
395 / 13 (1) ++
Регистрация: 10.06.2004
Адрес: Питер
А у кого-нибудь есть реализация удаления проводок по ЗАКАЗУ?
Старый 19.08.2004, 10:20   #14  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
А почему все так бояться сторнирования?? Гораздо легче создать новую отрицательную, чем выковыривать по всей системе с непонятными последствиями старую положительную...

С Уважением,
Георгий.
Старый 19.08.2004, 10:44   #15  
Тимур is offline
Тимур
Аксакал в отставке
 
2,457 / 50 (6) ++++
Регистрация: 31.01.2003
Адрес: Москва
Причина в том, что многие не умеют (не хотят) пользоваться импортом/экспортом данных.
__________________
Девочка, никогда не произноси слова только за то, что они такие длинные и красивые; говори только то, что знаешь. (Л.Кэрролл "Алиса в стране чудес").
Старый 19.08.2004, 10:50   #16  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Цитата:
Изначально опубликовано Тимур
Причина в том, что многие не умеют (не хотят) пользоваться импортом/экспортом данных.
Приветствую, Тимур! Позволь не согласиться: мне кажется, что простым импортом / экспортом (с критерием) данную проводку не выковырять... К тому же, как ты думаешь, сколько будет длиться экспорт-импорт даже части таблиц на, допустим, всего 3х-гиговой базе?

С Уважением,
Георгий.
Старый 19.08.2004, 10:59   #17  
dd
Гость
 
n/a
Сторнировка - это хорошо.... На первый взгляд. С точки зрения западного бухучета.
Если посмотреть с точки зрения нашего бухгалтера, то очень неудобно пробираться сквозь дебри сторнировок.... Затем руками редактировать книгу покупок и продаж, представьте - сколько работы! А делать это придется в любом случае - чтобы не заострять внимание на этом при проверке в налоговой.
Так что в наших условиях от удаления проводок никуда не денешься....
Старый 19.08.2004, 11:13   #18  
maxsmirnov is offline
maxsmirnov
экс-модератор
 
268 / 25 (1) +++
Регистрация: 08.07.2003
Адрес: Москва
очень неудобно пробираться сквозь дебри сторнировок

на то бухгалтеру и дана автоматицкая компутерная система "ахапта" чтобы она сама все дебри разгребала.

Затем руками редактировать книгу покупок и продаж, представьте - сколько работы! А делать это придется в любом случае - чтобы не заострять внимание на этом при проверке в налоговой.

книги покупок/продаж не сдают в налоговую в рамках периодической отчетности. почитать эти книги к вам приедут если на вас уже заострили внимание в налоговой.
и, естественно, ничего криминального в сторно нет, более того, книги продаж/покупок/кассовые со сторно выглядят более реально.
Старый 19.08.2004, 11:15   #19  
Тимур is offline
Тимур
Аксакал в отставке
 
2,457 / 50 (6) ++++
Регистрация: 31.01.2003
Адрес: Москва
Проблема проявляется в двух случаях:
1)Кто-то играется в демобазе и ему нужны теже данные с настройками, но без транзакций. Здесь экспорт-импорт поможет.
2)Произошла ошибка в тестовой или промышленной эксплуатации. Здесь только исправления, отмена и сторнирование.
__________________
Девочка, никогда не произноси слова только за то, что они такие длинные и красивые; говори только то, что знаешь. (Л.Кэрролл "Алиса в стране чудес").
Старый 19.08.2004, 16:59   #20  
ATimTim is offline
ATimTim
Участник
 
395 / 13 (1) ++
Регистрация: 10.06.2004
Адрес: Питер
=))) так никто и не ответил по существу моего вопроса =))
Руководство готово купить функционал удаления проводок.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
KMActionPlanTable -удалить таблицу из запроса kitty DAX: Программирование 1 20.11.2007 10:37
Как через .NET коннектор удалить записи? Jab Straight DAX: Программирование 6 09.11.2007 18:56
Как удалить Производственный Заказ Nic DAX: Функционал 15 03.08.2005 09:39
Как создать закупку из кодов? somebody DAX: Программирование 4 15.10.2003 11:34
Функция "Удалить строки" Oks DAX: Функционал 1 03.07.2002 18:09

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 00:52.