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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 19.12.2014, 12:58   #1  
Товарищ ♂uatr is offline
Товарищ ♂uatr
Участник
Аватар для Товарищ ♂uatr
MCBMSS
 
268 / 814 (28) +++++++
Регистрация: 23.10.2012
AX2012. Ошибка при отмене закрытия склада.
Добрый день!
Подскажите, пожалуйста, при закрытии склада в 2012 Аксапте создались записи с некорректными значениями в GeneralJournalAccountEntry.
Инфолог журнала закрытия пестрит записями:
Себестоимость ед. изм. 0,00 может быть ошибочной, поскольку проводка не может быть полностью сопоставлена.
После этого склад был открыт и, по идее, должны были создаться сторно записи в том же количестве, с противоположными знаками дающими 0(?) в сумме. Но они создались только частично.
С InventSettlement всё хорошо, количество записей идентичное (закрытие=открытию).
В итоге, в форме ручная корреспонденция фигурируют записи по сторнированному закрывающему ваучеру, которые даже после сопоставления дают больший результат (количество дебетовых строк не соответствует количеству кредитовых).
Видимо, необходимо самостоятельно создать сторно записи для GeneralJournalAccountEntry.
Кто-нибудь это уже делал?
Раз такое произошло, то проблему не решить только созданием сторно проводок, а она есть еще где-то(или это заблуждение?), какие есть соображения по этому поводу?
Старый 20.12.2014, 17:04   #2  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,158 / 1286 (47) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Ну сообщение:
Цитата:
Себестоимость ед. изм. 0,00 может быть ошибочной, поскольку проводка не может быть полностью сопоставлена.
Еще и до 2012 говорило о том, что для расходной проводки нет соответствующих приходных проводок в ТОМ ЖЕ периоде или ранее. Например, выполнили разноску заказа на покупку в декабре с указанием даты разноски 15/12/2014, после этого разнесли накладную по продажам в декабре с указание даты разноски 30/11/2014. В результате приход позже расхода.
Это пример по моделям, относящимся к месяцу, если в модели указано отношение по датам, то такое может происходить даже в пределах периода закрытия.
То же может происходить в случае, когда в группе складских аналитик установлен флаг финансовых остатков и даты прихода на склад позже, чем даты расхода со склада в разрезе комбинации финансовых аналитик. Точнее даже не соотношение дат прихода и расхода, а их соотношение по периоду проводок и настроек модели

Последний раз редактировалось Raven Melancholic; 20.12.2014 в 17:08.
За это сообщение автора поблагодарили: Товарищ ♂uatr (1).
Старый 20.12.2014, 17:12   #3  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,158 / 1286 (47) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
На самом деле, эти сообщения могут считаться ошибкой или не считаться зависит от того, ведете ли Вы учет именно в Аксе по РСБУ или не ведете.
Если есть такое отклонение по датам операции, то в следующем периоде (для упрощения будем считать, что период это месяц), операции с датой задним числом подхватятся для расчета себестоимости. По РСБУ это проблема, а для МФСО нормально.
Старый 21.12.2014, 12:36   #4  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 645 (26) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
Выделил вопрос по AX2012 в новую тему
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me
Старый 21.12.2014, 12:46   #5  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 645 (26) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
Теперь по теме вопроса:
Как верно заметил Raven Melancholic, сообщения о том, что не все расходы удалось сопоставить, в принципе, ошибкой не являются, но с логической точки зрения это не очень хорошо. Стоит с этим разобраться потом.
Насколько я понял, сейчас главная проблема в том, что отмена закрытия склада не полностью разнеслась в ГК и балансы ваучеров по закрытию и отмене закрытия разные. Так? Ищите, какие именно реверсирующие InventSettlement не разнеслись в ГК, что у них общего. Отмечено ли поле Posted для всех реверсирующих InventSettlement. Не настроена ли асинхронная разноска документов в ГК? В общем, перед тем, как исправлять ошибку, найдите её причину.
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me
За это сообщение автора поблагодарили: Товарищ ♂uatr (1).
Старый 21.12.2014, 20:45   #6  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,875 / 3123 (112) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Как вариант - отмена закрытия не сторнирует полностью закрытие по ГК из-за того что после закрытия удалили проводки InventTrans в закрытом периоде (штатно такое невозможно, но вероятно у вас джобом документ грохали).

Рекомендую проверить что InventSettlement по закрытию балансирует с ГК по закрытию.
Например в одной транзакции пометить его как неразнесенный (InventSettlement.posted = 0) разнести, вывести куда нить полученные проводки по ГК или сравнить с уже сделанными и откатить транзакцию.
Если не балансирует, то скорее всего все так и было.

Для защиты от удаления проводок поучаствовавших в закрытии / пересчете, можно сделать такую модифу (пример приводу для 2009-й аксапты) :
\Data Dictionary\Tables\InventTrans\Methods\delete
X++:
...
        if (this.isUpdatedFinancial())
        {
            // pkoz 19.03.2009 -->
            this.GRD_checkDeleteSettlement(); // перед удалением проверяем есть ли неотмененные сопоставления
            // - если есть то удалять нельзя нужно сперва отменить соответсвующее сопоставление, или коррекцию
            // если разрешить удаление без отмены как здесь, то тогда разъедется LedgerTrans и InventTrans
            // Дальнейшая отмена сопоставлений, коррекций, как я понимаю ситуацию уже не вылечит, так как
            // записи в inventSettlement по которым при отмене будут делать проводки по ГК уже будут удалены
            // т.е. нужно либо запретить удапение, либо при удалении делать сторнирующую проводку по ГК на
            // суммы удаляемых InventSettlement. Ну и просто - даже если проводок по ГК не было - InventSettlement
            // друг с дружкой связаны ссылками - поэтому просто удалять нельзя.

            // см. джоб GRD_6029_CancelSettlementPerInventTrans
            // pkoz 19.03.2009 <--

            delete_from inventSettlement
                index hint RecIdTypeIdx
                where inventSettlement.transRecId       == this.recId           &&
                      inventSettlement.itemId           == this.itemId;
        }
...
\Data Dictionary\Tables\InventTrans\Methods\GRD_checkDeleteSettlement
X++:
    // pkoz 19.03.2009
boolean GRD_checkDeleteSettlement(boolean _doThrow
    = true
//    = false
    )
{
    InventSettlement    inventSettlement;
    boolean             ret = true;
    InventClosing       InventClosing;
    str locGetErrorText()
    {
        return
        strFMT("По проводке Лот %1, recID %2, TransRefID %3, TransType %4 - есть неотмененные сопоставления/коррекции. Дата сопоставления/коррекции - %5",
                this.InventTransId,
                this.RecId,
                this.TransRefId,
                this.TransType,
                inventSettlement.TransDate //pkoz 31.07.2014
                );
    }
    ;
    if (this.isTmp())
        return true;

    ttsBegin;
    while
    select forupdate inventSettlement
    order by transDate //pkoz 31.07.2014
    where
        inventSettlement.transRecId       == this.recId           &&
//        inventSettlement.itemId           == this.itemId
        inventSettlement.Cancelled        == NoYes::No

    //pkoz 09.07.2012 -->
    /*
    // добавили такое условие потому что реально надо запрещать удаление InventTrans только если есть неотмененные сопоставления по
    // ваучеру отличному от ваучера из InventTrans
    // а именно этому случаю соответсвуют сопоставления от пересчетов, закрытий и коррекций
    // если же сопоставление возникло из-за накладных расходов при разноске закупки (markupTrans)
    // то там ...
    join InventClosing
    where
        InventClosing.Voucher   == inventSettlement.Voucher
     && InventClosing.TransDate == inventSettlement.TransDate
    */
    //pkoz 09.07.2012 <--

    {
        //pkoz 09.07.2012 -->
        if (     this.DateFinancial == inventSettlement.TransDate
             &&  this.Voucher       == inventSettlement.Voucher
             && !inventSettlement.inventClosing_GRD()
           )
        {
            // добавили такое условие потому что реально надо запрещать удаление InventTrans только если есть неотмененные сопоставления по
            // ваучеру отличному от ваучера из InventTrans
            // а именно этому случаю соответсвуют сопоставления от пересчетов, закрытий и коррекций
            // если же сопоставление возникло из-за накладных расходов при разноске закупки (markupTrans)
            // то там ...

            continue;
        }
        //pkoz 09.07.2012 <--

        if (_doThrow)
            throw   error(locGetErrorText());

        ret = checkFailed(locGetErrorText());
        break;
    }
    ttsCommit;

    return ret;
}

Последний раз редактировалось Logger; 21.12.2014 в 20:50.
За это сообщение автора поблагодарили: Товарищ ♂uatr (1).
Теги
закрытие склада

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
axforum blogs: Оптимизация разноски ГК закрытия склада AX2012 R2(российский функционал) Blog bot DAX Blogs 0 18.10.2013 00:15
Странное поведение при закрытии склада-ошибка в коде? Aquarius DAX: Программирование 11 27.06.2013 13:37
Ошибка при отмене закрытия склада Geo DAX: Функционал 6 18.02.2011 16:45
Проводки по отмене закрытия склада выбранной датой MironovI DAX: Функционал 8 25.01.2006 16:32
Русская локализация Axapta 3 ? SlavaK DAX: Администрирование 59 01.07.2003 22:38

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 13:18.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.