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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 23.12.2009, 16:11   #41  
Lemming is offline
Lemming
Участник
Аватар для Lemming
 
1,144 / 343 (14) ++++++
Регистрация: 20.04.2004
Адрес: Москва, Чайнатаун в Люблино
Записей в блоге: 10
Cool
Цитата:
Сообщение от opusss Посмотреть сообщение
Следущие нашел...
Прекращайте поиск, делайте сторно и расходимся, а то боюсь при таком подходе и опыте, следующей вашей темой будет: "как восстановить случайно удаленные проводки?"

upd: Кстати вот

Последний раз редактировалось Lemming; 23.12.2009 в 16:14.
Старый 23.12.2009, 16:13   #42  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Цитата:
Сообщение от opusss Посмотреть сообщение
Следущие нашел...
там где insert - предполагаю надо удалять
для update - предполагаю надо либо update либо delete
И все сходится, говорите?
__________________
-ТСЯ или -ТЬСЯ ?
Старый 23.12.2009, 16:13   #43  
opusss is offline
opusss
Участник
 
28 / 10 (1) +
Регистрация: 22.12.2009
во первых как правильно сделать сторно? копирование журнала и в его строка смена знака на противоположенный в суммах?

во вторых я все таки попробую.
Старый 23.12.2009, 16:15   #44  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1293 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Цитата:
Сообщение от opusss Посмотреть сообщение
Ты штатный сотрудник?
Да, но опытный и очень вредный.
Цитата:
Следущие нашел
OFFICIALSTRANS_RU - ну прочистить можно, только это не очень важно и ни на что не влияет, поэтому можно и забить.
SYSDATABASELOG - у вас включен лог базы на некоторые таблицы. Лучше не чисть, а оставь, чтобы можно было прикрыть одно место, если возникнут споры.
LEDGERBALANCESTRANS Проводки в ГК - это не сами проводки, а их свернутое по по определенным критериям представление. Если будешь исправлять LedgerTrans таким образом, что вызывать будешь не doUpdate, doDelete и т.п., а update и delete и т.п., то они пересчитаются. Если использовать do*, то нужно будет пересчитать остатки по главной книге штатной периодической операцией.
NUMBERSEQUENCE* - это таблицы назначения номеров (
в частности, тем же складским журналам и номерам операций ГК) - возвращать в исходное состояние их не нужно.
USERINFO - искать нужно не в репозитарии, а в SystemDocumentation - Table.
Про остальные таблицы уже говорилось.
Ой, как говорил, это не совсем все таблицы.
Старый 23.12.2009, 16:15   #45  
opusss is offline
opusss
Участник
 
28 / 10 (1) +
Регистрация: 22.12.2009
Vadik я понимаю всю нелепость ситуации)), просто все предидущие джобики писались знающими людми, а щас все больно заняты или уволились давно((, так что блин сарказм это хорошо и его приемлю но щас нужно действие!!! )))

Raven Melancholic ага спсибо, ща чего-нить понапишу...)

Последний раз редактировалось opusss; 23.12.2009 в 16:17.
Старый 23.12.2009, 16:32   #46  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Цитата:
Сообщение от opusss Посмотреть сообщение
Vadik я понимаю всю нелепость ситуации
Да все нормально. В конце концов, бухгалтерА сами виноваты
__________________
-ТСЯ или -ТЬСЯ ?
Старый 23.12.2009, 16:33   #47  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
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;
}
Вам в принципе весь он не нужен, только идея. А конкретнее присмотритесь к методам InventSum.updateInventTrans() или даже InventSum.subInventTransOnSum()

P.S.: когда уже написал, решил перепроверить. Всё это можно не делать если воспользоваться параметром dropInventOnHand метода InventTrans.delete(), который по умолчанию почему-то выключен.
Старый 23.12.2009, 16:45   #48  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1293 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Цитата:
Сообщение от opusss Посмотреть сообщение
Vadik предыдущие джобики писались знающими людьми,
Mazzy бы назвал их не знающими, а любящими программизм. Поверь, мало кто назовет людей, которые постоянно занимались такими вещами знающими.
Все-таки совет, докажи, что так делать не нужно.
Технически все сделать можно, но заниматься этим не стоит.
Старый 23.12.2009, 16:56   #49  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Цитата:
Сообщение от S.Kuskov
...
Нашёл у себя джобик для восстановления InventSum
...
Можно чуть попроще написать.

Можно ли чистить InventSum?
__________________
С уважением,
glibs®
За это сообщение автора поблагодарили: mazzy (2), S.Kuskov (1).
Старый 23.12.2009, 17:06   #50  
opusss is offline
opusss
Участник
 
28 / 10 (1) +
Регистрация: 22.12.2009
вот что у меня пока получается

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  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от Raven Melancholic Посмотреть сообщение
LEDGERBALANCESTRANS Проводки в ГК - это не сами проводки, а их свернутое по по определенным критериям представление. Если будешь исправлять LedgerTrans таким образом, что вызывать будешь не doUpdate, doDelete и т.п., а update и delete и т.п., то они пересчитаются. Если использовать do*, то нужно будет пересчитать остатки по главной книге штатной периодической операцией
Чего-то я не найду у себя на таблице LedgerTrans перекрытого метода delete. Видимо всё-таки в любом случае нужно будет пользоваться периодической операцией пересчёта.
Старый 23.12.2009, 17:19   #52  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от opusss Посмотреть сообщение
delete_from LEDGERTRANS where LEDGERTRANS.Voucher == "номер лота из строк журнала";
Не лот из строк, а ваучер (видимо опечатались)

Цитата:
Сообщение от opusss Посмотреть сообщение
delete_from LEDGERBALANCESDIMTRANS where LEDGERBALANCESDIMTRANS.AccountNum == "не знаю может если повезет по одной из сумм и дате";
Не стоит так делать. Запускайте стандартный пересчёт

Цитата:
Сообщение от opusss Посмотреть сообщение
INVENTTRANS править пока непонятно где, посмотрю отпишусь
Также как и INVENTTRANSPOSTING
Старый 23.12.2009, 17:41   #53  
opusss is offline
opusss
Участник
 
28 / 10 (1) +
Регистрация: 22.12.2009
S.Kuskov
1. Можно подробней про пересчет для LedgerTrans, где он запускается?
2. Да очепятался.
3. LEDGERBALANCESDIMTRANS, еще раз про пересчсет, где запускается и что пересчитывает?
4. а INVENTTRANS то же удалаять нужно? я думал править?

Raven Melancholic про сотрудника я это к тому, что я к компании(которую поддерживаем) отнушусь оч слабенько, и я их премии лишить не смогу за их нежелание сторнировать)).

Последний раз редактировалось opusss; 23.12.2009 в 18:01.
Старый 23.12.2009, 18:25   #54  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от opusss Посмотреть сообщение
Можно подробней про пересчет для LedgerTrans, где он запускается?
Периодические операции в Главной книге

Цитата:
Сообщение от opusss Посмотреть сообщение
INVENTTRANS то же удалаять нужно? я думал править?
INVENTTRANS - это собственно и есть сами складские проводки. Можно сказать главный результат разноски складского журнала.
Просто создаются они до разноски ещё при добавлении строк в журнал, просто находятся в 'не проведённом' статусе, а при разноске журнала апдейтятся и становятся 'проведёнными'.
Старый 23.12.2009, 18:33   #55  
opusss is offline
opusss
Участник
 
28 / 10 (1) +
Регистрация: 22.12.2009
Вот еще строчку забыл\ нашел таблицу
X++:
delete_from InventJournalTrans where InventJournalTrans.JournalId == "номер журнала";

S.Kuskov, про INVENTTRANS понял, спасибо.
X++:
 delete_from INVENTTRANS where INVENTTRANS.InventTransId == "номер лота из строк журнала";
Старый 23.12.2009, 18:48   #56  
opusss is offline
opusss
Участник
 
28 / 10 (1) +
Регистрация: 22.12.2009
в итоге получается я так надеюсь конечный код, + надо запустить где-то и когда-то два\один пересчет.

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  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от opusss Посмотреть сообщение
//!!! будет закоментарено но надо что то запустить
delete_from LEDGERTRANS where LEDGERTRANS.Voucher == "номер Документа ГК из строк журнала";

//!!! будет закоментарено но надо что то запустить
delete_from LEDGERBALANCESDIMTRANS where LEDGERBALANCESDIMTRANS.AccountNum == "не знаю может если повезет по одной из сумм и дате";
Пересчёт сальдо по периодам обновляет таблицу LEDGERBALANCESDIMTRANS на основании данных из таблицы LEDGERTRANS. Так что LEDGERBALANCESDIMTRANS действительно нужно закомментировать, а LEDGERTRANS вам всё-таки прийдётся удалить самостоятельно, после чего и запустить пересчёт


Повторюсь. Самостоятельный пересчёт 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  
Vals is offline
Vals
Аманд
Аватар для Vals
Компания АМАНД
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2009
 
1,766 / 507 (20) +++++++
Регистрация: 27.02.2002
Адрес: Pass partout, Москва
Так, всем стоять! Руки вверх от клавиатур!
Цитата:
во первых как правильно сделать сторно? копирование журнала и в его строка смена знака на противоположенный в суммах?

во вторых я все таки попробую.
Вот он, путь истины
Что вам нужно сделать:
1. Сделать скриншот: заголовка журнала, строк журнала.
2. Описать, чем была вызвана операция в складском журнале.
3. По ситуации получите дополнительные вопросы.

Дальше будем думать

P.S. Народ, ну как вам не стыдно? Ведь повелись на "программизм" как дети: ведь сами же говорите что не надо программить и тут же человека на программистское решение толкаете!
Ай-ай-ай
Вношу предложение на всеобщее обсуждение: предлагаю выяснить ситуацию с возможностью сторнирования проводки и объяснить, как это сделать.
И потребовать оформить это решение в инструкцию, предоставить клиенту, выложить на форуме!

Последний раз редактировалось Vals; 23.12.2009 в 20:26.
За это сообщение автора поблагодарили: mazzy (2), oip (2).
Старый 23.12.2009, 20:25   #59  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1293 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Цитата:
Сообщение от Vals Посмотреть сообщение
Так, всем стоять. Народ, ну как вам не стыдно?
А кто будет предлагать программировать, пожизненный эцих с гвоздями.
Валентин, представляешь, действительно стыдно, но любые намеки, увещевания не помогли. Так что осталось советами подставить автора, чтобы в будущем (получив пистон в одно место), не занимался такими вещами.
Старый 23.12.2009, 20:36   #60  
Vals is offline
Vals
Аманд
Аватар для Vals
Компания АМАНД
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2009
 
1,766 / 507 (20) +++++++
Регистрация: 27.02.2002
Адрес: Pass partout, Москва
Будем надеяться, что разберётся
Просто он не знает как сделать и в этом случае программинг кажется более лёгким путём.

Последний раз редактировалось Vals; 23.12.2009 в 20:40.
Теги
отмена операций, перепроведение, складские журналы

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Новый тип складского журнала breakpoint DAX: Функционал 5 06.06.2008 13:55
Утверждение складского журнала Andrux DAX: Администрирование 5 13.08.2007 16:00
Удаление журнала спецификаций rrkrivov DAX: Программирование 24 21.03.2006 10:33
Удаление строки журнала ATimTim DAX: Программирование 7 05.08.2004 13:49
Разноска скопированного складского журнала dn DAX: Функционал 1 06.08.2003 20:51

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

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

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