23.12.2009, 16:11 | #41 |
Участник
|
Прекращайте поиск, делайте сторно и расходимся, а то боюсь при таком подходе и опыте, следующей вашей темой будет: "как восстановить случайно удаленные проводки?"
upd: Кстати вот Последний раз редактировалось Lemming; 23.12.2009 в 16:14. |
|
23.12.2009, 16:13 | #42 |
Модератор
|
Цитата:
__________________
-ТСЯ или -ТЬСЯ ? |
|
23.12.2009, 16:13 | #43 |
Участник
|
во первых как правильно сделать сторно? копирование журнала и в его строка смена знака на противоположенный в суммах?
во вторых я все таки попробую. |
|
23.12.2009, 16:15 | #44 |
Участник
|
Да, но опытный и очень вредный.
Цитата:
Следущие нашел
SYSDATABASELOG - у вас включен лог базы на некоторые таблицы. Лучше не чисть, а оставь, чтобы можно было прикрыть одно место, если возникнут споры. LEDGERBALANCESTRANS Проводки в ГК - это не сами проводки, а их свернутое по по определенным критериям представление. Если будешь исправлять LedgerTrans таким образом, что вызывать будешь не doUpdate, doDelete и т.п., а update и delete и т.п., то они пересчитаются. Если использовать do*, то нужно будет пересчитать остатки по главной книге штатной периодической операцией. NUMBERSEQUENCE* - это таблицы назначения номеров ( в частности, тем же складским журналам и номерам операций ГК) - возвращать в исходное состояние их не нужно. USERINFO - искать нужно не в репозитарии, а в SystemDocumentation - Table. Про остальные таблицы уже говорилось. Ой, как говорил, это не совсем все таблицы. |
|
23.12.2009, 16:15 | #45 |
Участник
|
Vadik я понимаю всю нелепость ситуации)), просто все предидущие джобики писались знающими людми, а щас все больно заняты или уволились давно((, так что блин сарказм это хорошо и его приемлю но щас нужно действие!!! )))
Raven Melancholic ага спсибо, ща чего-нить понапишу...) Последний раз редактировалось opusss; 23.12.2009 в 16:17. |
|
23.12.2009, 16:32 | #46 |
Модератор
|
Да все нормально. В конце концов, бухгалтерА сами виноваты
__________________
-ТСЯ или -ТЬСЯ ? |
|
23.12.2009, 16:33 | #47 |
Участник
|
USERINFO трогать тоже не нужно.
До кучи. Нашёл у себя джобик для восстановления InventSum X++: // Пересчет таблицы "В наличии" (InventSum) для заданной номенклатуры static void jobInventSumRebuildFromItemId(Args _args) { ItemId _ItemId = 'Код номенклатуры'; InventSum InventSum; InventTrans InventTrans_GrBy_InventDimId; InventTrans InventTrans; ; ttsbegin; delete_from InventSum where InventSum.ItemId == _ItemId; while select InventTrans_GrBy_InventDimId group by InventDimId where InventTrans_GrBy_InventDimId.ItemId == _ItemId { InventSum.clear(); InventSum.ItemId = _ItemId; InventSum.InventDimId = InventTrans_GrBy_InventDimId.InventDimId; while select InventTrans where InventTrans.ItemId == _ItemId && InventTrans.inventDimId == InventTrans_GrBy_InventDimId.InventDimId { InventSum.addInventTransOnSum(InventTrans); } InventSum.insert(); } ttscommit; } P.S.: когда уже написал, решил перепроверить. Всё это можно не делать если воспользоваться параметром dropInventOnHand метода InventTrans.delete(), который по умолчанию почему-то выключен. |
|
23.12.2009, 16:45 | #48 |
Участник
|
Mazzy бы назвал их не знающими, а любящими программизм. Поверь, мало кто назовет людей, которые постоянно занимались такими вещами знающими.
Все-таки совет, докажи, что так делать не нужно. Технически все сделать можно, но заниматься этим не стоит. |
|
23.12.2009, 16:56 | #49 |
Member
|
Цитата:
Сообщение от S.Kuskov
...
Нашёл у себя джобик для восстановления InventSum ... Можно ли чистить InventSum?
__________________
С уважением, glibs® |
|
|
За это сообщение автора поблагодарили: mazzy (2), S.Kuskov (1). |
23.12.2009, 17:06 | #50 |
Участник
|
вот что у меня пока получается
X++: static void SAS_del_INVENTJOURNAL(Args _args) { //insert //OFFICIALSTRANS_RU //Официальные лица - строки отчетов сами удаляются INVENTTRANSPOSTING INVENTTRANSPOSTING; //Разноска складских проводо //LRA_ALL_PARAMETERS //чего то наше???? LEDGERTRANS LEDGERTRANS; //Бухгалтерские проводки //SYSDATABASELOG //Журнал базы данных //LEDGERBALANCESTRANS //Проводки в ГК LEDGERBALANCESDIMTRANS LEDGERBALANCESDIMTRANS; //Бухгалтерские балансы - коды аналитики //NUMBERSEQUENCELIST //Список серий документов //NUMBERSEQUENCETTS //TTS INVENTJOURNALREPORTTABLE_RU INVENTJOURNALREPORTTABLE_RU;//Журнал отчетов по складским журналам TRANSACTIONLOG TRANSACTIONLOG; //Аудит //Update // INVENTJOURNALTABLE INVENTJOURNALTABLE; //Таблица складского журнала - удалить //OFFICIALSTRANS_RU // Официальные лица - строки отчетов - удалить INVENTSUM INVENTSUM; //Запасы в наличии - править INVENTTRANS INVENTTRANS; //Складские проводки -- править\удалять? //NUMBERSEQUENCETABLE //Серии документов - //USERINFO // - ytyfitk d htgjpbnfhbb //Delete // //OFFICIALSTRANS_RU //Официальные лица - строки отчетов - удалить //JOURNALERROR //??? //NUMBERSEQUENCETTS //TTS //OFFICIALSTRANS_RU как понял создается, изменяется и удаляется - с ним делать ничего не надо delete_from INVENTTRANSPOSTING where INVENTTRANSPOSTING.InventTransId == "номер лота из строк журнала"; delete_from LEDGERTRANS where LEDGERTRANS.Voucher == "номер лота из строк журнала"; delete_from LEDGERBALANCESDIMTRANS where LEDGERBALANCESDIMTRANS.AccountNum == "не знаю может если повезет по одной из сумм и дате"; delete_from INVENTJOURNALREPORTTABLE_RU where INVENTJOURNALREPORTTABLE_RU.JournalId == "номер журнала"; delete_from TRANSACTIONLOG where TRANSACTIONLOG.Txt == "не знаю может если повезет по юзеру и дате"; delete_from INVENTJOURNALTABLE where INVENTJOURNALTABLE.JournalId == "номер журнала"; //INVENTSUM и INVENTTRANS править пока непонятно где, посмотрю отпишусь // про таблицы которые удаля.тся то же не очень понятно } |
|
23.12.2009, 17:15 | #51 |
Участник
|
Цитата:
Сообщение от Raven Melancholic
LEDGERBALANCESTRANS Проводки в ГК - это не сами проводки, а их свернутое по по определенным критериям представление. Если будешь исправлять LedgerTrans таким образом, что вызывать будешь не doUpdate, doDelete и т.п., а update и delete и т.п., то они пересчитаются. Если использовать do*, то нужно будет пересчитать остатки по главной книге штатной периодической операцией
|
|
23.12.2009, 17:19 | #52 |
Участник
|
Цитата:
Цитата:
Также как и INVENTTRANSPOSTING |
|
23.12.2009, 17:41 | #53 |
Участник
|
S.Kuskov
1. Можно подробней про пересчет для LedgerTrans, где он запускается? 2. Да очепятался. 3. LEDGERBALANCESDIMTRANS, еще раз про пересчсет, где запускается и что пересчитывает? 4. а INVENTTRANS то же удалаять нужно? я думал править? Raven Melancholic про сотрудника я это к тому, что я к компании(которую поддерживаем) отнушусь оч слабенько, и я их премии лишить не смогу за их нежелание сторнировать)). Последний раз редактировалось opusss; 23.12.2009 в 18:01. |
|
23.12.2009, 18:25 | #54 |
Участник
|
Периодические операции в Главной книге
INVENTTRANS - это собственно и есть сами складские проводки. Можно сказать главный результат разноски складского журнала. Просто создаются они до разноски ещё при добавлении строк в журнал, просто находятся в 'не проведённом' статусе, а при разноске журнала апдейтятся и становятся 'проведёнными'. |
|
23.12.2009, 18:33 | #55 |
Участник
|
Вот еще строчку забыл\ нашел таблицу
X++: delete_from InventJournalTrans where InventJournalTrans.JournalId == "номер журнала"; S.Kuskov, про INVENTTRANS понял, спасибо. X++: delete_from INVENTTRANS where INVENTTRANS.InventTransId == "номер лота из строк журнала"; |
|
23.12.2009, 18:48 | #56 |
Участник
|
в итоге получается я так надеюсь конечный код, + надо запустить где-то и когда-то два\один пересчет.
X++: delete_from INVENTTRANSPOSTING where INVENTTRANSPOSTING.InventTransId == "номер лота из строк журнала"; //!!! будет закоментарено но надо что то запустить delete_from LEDGERTRANS where LEDGERTRANS.Voucher == "номер Документа ГК из строк журнала"; //!!! будет закоментарено но надо что то запустить delete_from LEDGERBALANCESDIMTRANS where LEDGERBALANCESDIMTRANS.AccountNum == "не знаю может если повезет по одной из сумм и дате"; delete_from INVENTJOURNALREPORTTABLE_RU where INVENTJOURNALREPORTTABLE_RU.JournalId == "номер журнала"; delete_from InventJournalTrans where InventJournalTrans.JournalId == "номер журнала"; delete_from TRANSACTIONLOG where TRANSACTIONLOG.Txt == "не знаю может если повезет по юзеру и дате"; delete_from INVENTJOURNALTABLE where INVENTJOURNALTABLE.JournalId == "номер журнала"; delete_from INVENTTRANS where INVENTTRANS.InventTransId == "номер лота из строк журнала"; // спертый кусок из посоветанного для правки INVENTSUM if (dialog.run()) { itemId = dialogItemId.value(); } if (itemId) { while select inventTable where inventTable.ItemId == itemId { reCalcItem = new InventSumReCalcItem(inventTable.ItemId, true, CheckFix::Fix); reCalcItem.updateNow(); } } //конец спертого куска |
|
23.12.2009, 19:49 | #57 |
Участник
|
Цитата:
Сообщение от opusss
//!!! будет закоментарено но надо что то запустить
delete_from LEDGERTRANS where LEDGERTRANS.Voucher == "номер Документа ГК из строк журнала"; //!!! будет закоментарено но надо что то запустить delete_from LEDGERBALANCESDIMTRANS where LEDGERBALANCESDIMTRANS.AccountNum == "не знаю может если повезет по одной из сумм и дате"; Повторюсь. Самостоятельный пересчёт InventSum можно не делать если воспользоваться параметром dropInventOnHand метода InventTrans.delete(). T.е. если X++: delete_from INVENTTRANS where INVENTTRANS.InventTransId == "номер лота из строк журнала"; X++: ttsbegin; while select forupdate InventTrans where INVENTTRANS.InventTransId == "номер лота из строк журнала" { InventTrans.delete(true); } ttscommit; |
|
23.12.2009, 20:12 | #58 |
Аманд
|
Так, всем стоять! Руки вверх от клавиатур!
Цитата:
во первых как правильно сделать сторно? копирование журнала и в его строка смена знака на противоположенный в суммах?
во вторых я все таки попробую. Что вам нужно сделать: 1. Сделать скриншот: заголовка журнала, строк журнала. 2. Описать, чем была вызвана операция в складском журнале. 3. По ситуации получите дополнительные вопросы. Дальше будем думать P.S. Народ, ну как вам не стыдно? Ведь повелись на "программизм" как дети: ведь сами же говорите что не надо программить и тут же человека на программистское решение толкаете! Ай-ай-ай Вношу предложение на всеобщее обсуждение: предлагаю выяснить ситуацию с возможностью сторнирования проводки и объяснить, как это сделать. И потребовать оформить это решение в инструкцию, предоставить клиенту, выложить на форуме! Последний раз редактировалось Vals; 23.12.2009 в 20:26. |
|
|
За это сообщение автора поблагодарили: mazzy (2), oip (2). |
23.12.2009, 20:25 | #59 |
Участник
|
А кто будет предлагать программировать, пожизненный эцих с гвоздями.
Валентин, представляешь, действительно стыдно, но любые намеки, увещевания не помогли. Так что осталось советами подставить автора, чтобы в будущем (получив пистон в одно место), не занимался такими вещами. |
|
23.12.2009, 20:36 | #60 |
Аманд
|
Будем надеяться, что разберётся
Просто он не знает как сделать и в этом случае программинг кажется более лёгким путём. Последний раз редактировалось Vals; 23.12.2009 в 20:40. |
|