Показать сообщение отдельно
Старый 14.12.2011, 23:23   #22  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,275 / 3476 (122) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от EVGL Посмотреть сообщение
Еще один кошмарный образчик неудавшейся функциональности - это т.н. "трехсторонее сопоставление":
Ага, а еще это "многостороннее сопоставление" убило возможность корректировки входящего НДС. Ведь исходящий НДС мы должны посчитать по ставке 18% (ну или по той ставке, которой надо) - а входящий по большому счету - мы не считать должны, а должны забить таким, каким он к нам пришел в счет-фактуре, даже если он отличается от расчетного.
Возможно, конечно - что виновато в этом не это сопоставление - но, учитывая схему его работы - ручная корректировка входящего НДС совершенно не вписывается в идеологию сопоставления. А проанализировав код, который лишил возможности корректировать НДС - я все-таки пришел к выводу - что отключили эту функциональность исключительно ради функциональности трехстороннего сопоставления.

Речь идет о форме Настройка-Налог из заказов на покупку. Вкладка Корректировка появляется только для исходящего налога (форма TaxTmpWorkTrans).

Вот что на форме прописано в методе init (особенно порадовало - КАК это написано - formstr и название формы с апострофами):
X++:
......     
        switch (callerForm.name())
        {
            case formstr('PurchTable') :

                regulationTab.visible(false);
                tmpTaxRegulation_ds.allowCreate(false);
                tmpTaxRegulation_ds.allowDelete(false);
                break;
......
Здесь - relulationTab - как раз та самая закладка Коррекция

Метод setAllowEdit той же формы:
X++:
    if (callerForm)
    {
        if (callerForm.name() == formstr('PurchTable'))
        {
            purchaseOrderForm = true;
        }
    }

    if (sourceSingleLine || (!taxRegulation.taxLinesExist() && !invoiceRegister)
        || purchaseOrderForm == true)
    {
        tmpTaxRegulation_ds.allowEdit(false);
        taxRegulationField.allowEdit(false);
Что любопытно:
1. "Врезки" с упоминанием PurchTable сделаны аккуратно. Если их также аккуратно убрать - то функционал корректировки входящего НДС появляется. Правда в этом случае начинает (как и ожидалось) крышу сносить у трехстороннего сопоставления - НДС-то уже "не тот" . Я имею в виду конечно вариант, когда цена включает НДС.
2. Код формы TaxTmpWorkTrans в 4.0 SP2 отличается от кода формы в 2009 RU6 исключительно этими вставками
3. То, КАК было написано название формы в коде позволяет сделать вывод о гхм... сравнительно небольшом опыте работы в АХ разработчика, писавшего этот код. Неудивительно - что он "поломал" функциональность корректировки - он просто мог не знать для чего она нужна....

А теперь самое интересное. В официальных тренингах от МС корректировка входящего НДС описана как работающая функциональность, которую нужно показывать слушателям (ну, само собой, трехстороннее сопоставление тоже должно показываться). Правда, налоги рассказываются в курсе по финансам (Финансы 1, глава 6; Корректировка на стр. 6-62), а сопоставление - в курсе по логистике (Логистика 1, глава 3 на стр. 3-64) .
__________________
Возможно сделать все. Вопрос времени

Последний раз редактировалось sukhanchik; 14.12.2011 в 23:47.
За это сообщение автора поблагодарили: mazzy (2), Pustik (2), Logger (5), lev (2), Bega (1).