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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 01.07.2009, 08:34   #1  
vanokh is offline
vanokh
Участник
 
108 / 63 (3) ++++
Регистрация: 23.10.2008
Указание нескольких клиентов в одной операции
AX 4.0 SP1 -> SP2



После перехода c SP1 на SP2 словили следующее:

В общем журнале ГК создаем две строки, в одной Клиент - по счету, в другой - по корр.счету. При разноске ругается - "Может быть только одна операция по клиенту по операции.".


Как выяснилось изменение было внесено в международном SP2 (KB 932712 - It is possible to post one voucher with two different customer invoice transactions in the daily journal.). Нужный KB на сайте Microsoft не найден...


Хочется понять, почему и зачем введено такое ограничение? У нас подобные операции используются для переброски денег между разными договорами одного клиента или как взаимозачет между разными клиентами.
Старый 01.07.2009, 15:14   #2  
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
Связь аналитических модулей (РК в частности) с ГК поддерживается на уровне даты операции и номера ваучера. Чтобы определить соответствие, например, CustTrans и LedgerTrans еще используется тип разноски в ГК. Если в один ваучер угодит бльше одного счета клиента, то определить соответствие между проводкой ГК и проводкой по клиенту становится технически невозможно. Ну и некоторые стандартные отчеты по выверке в таком случае тоже начинают глючить.

Могу посоветовать использовать транзитный счет и два ваучера.
__________________
С уважением,
glibs®
Старый 01.07.2009, 15:54   #3  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,326 / 3556 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
2glibs:
Все это правильно... Но тогда каков смысл поля "Новая операция" (LedgerJournalName.NewVoucher) в настройках журналов ГК?
Там же вообще есть вариант "Только один код операции"

Хотя конечно - с т.з. разбора данных в будущем - я не понимаю смысла назначения двум разным операциям одного кода ваучера. Поэтому - доработка - она может и оправдана (и транзитный счет - это выход) - но потребности во возаимозачетах никто не отменял
__________________
Возможно сделать все. Вопрос времени
Старый 01.07.2009, 16:32   #4  
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
Вероятно, эта настройка должна использоваться только для журналов, в которых регистрируются операции со счетами ГК. В журналах с такой настройкой не должно быть аналитических счетов (Клиенты, Поставщики, Банковские счета, и т.п.). Это IMHO.

Что касается транзитного счета для взаимозачетов и подобного рода операций... С двумя ваучерами сложно будет делать выверку. Если два клиента находятся в рамках одного ваучера (по сути: ваучер = некая операция), понять что за операция можно. Если сделать через два ваучера и транзитный счет, то связь в БД между половинками операций не сохранится, а поиск пользователем таких операций будет затруднен.

IMHO, здесь имеет место быть некий идеологический изъян в архитектуре Аксапты. По идее, ваучер лучше бы на такую операцию иметь один. А вот связь между аналитическими и синтетическими операцями можно было бы понадежнее заложить. Но это из серии: "Если бы да кабы...".
__________________
С уважением,
glibs®
Старый 01.07.2009, 16:51   #5  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,326 / 3556 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от glibs Посмотреть сообщение
Вероятно, эта настройка должна использоваться только для журналов, в которых регистрируются операции со счетами ГК. В журналах с такой настройкой не должно быть аналитических счетов (Клиенты, Поставщики, Банковские счета, и т.п.). Это IMHO.
Ну если так то конечно.... Только как-то мне сия мысль в голову не приходила.
То что связка идет по ваучеру+дата между аналитическими и синтетическими операциями - да идет... но в общем-то никто не обещал связь один в один.
Мне больше кажется - что при проектировании архитектуры просто не было задачи однозначно связывать Cust(Vend)Trans и LedgerTrans.

Цитата:
Сообщение от glibs Посмотреть сообщение
С двумя ваучерами сложно будет делать выверку.
...
IMHO, здесь имеет место быть некий идеологический изъян в архитектуре Аксапты.
Это не изъян, а идеологическое следствие "натягивание" функционала "корреспонденция" на функционал "многострочная проводка" с возможностью отключения первого.
Фактически, ведь связь между парами проводок есть - только эта связь "зарыта" в скромном поле "Пакет корреспонденции" (LedgerTrans.BondBatch_RU) и построить быстрый и красивый отчет по корреспондирующей части по данным из Cust(Vend)Trans сложно.

Что делать... Аксапта проектировалась без учета требований РСБУ
__________________
Возможно сделать все. Вопрос времени
Старый 01.07.2009, 17:04   #6  
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
Цитата:
Сообщение от sukhanchik
...
идеологическое следствие "натягивание" функционала "корреспонденция" на функционал "многострочная проводка"
...
Нет. Тут дело в другом.

Все объясняется в значительно степени терминами синтетический и аналитический учет. Обычно ваучер пишется с группировкой по типу операции, тексту проводки, счету ГК и аналитике (ну дате там еще и проч.). И даже при корреспонденции нескольким аналитическим записям может соответствовать одно движение по счету ГК.

Поэтому однозначной связи между синтетическими и аналитическими операциями нет. В классическом буржуйском учете для нее как раз и служит номер ваучера.

Проблема в том, что в Аксапте (не русской) есть функционал (отчеты по выверке), которые нуждаются в установке связи между синтетическими и аналитическими операциями. И при некоторых стеченях обстоятельств (данная тема с этого началась) тот алгоритм, который в нее сейчас заложен, приводит к некорректным результатам.
__________________
С уважением,
glibs®
За это сообщение автора поблагодарили: sukhanchik (3).
Старый 01.07.2009, 21:03   #7  
BOAL is offline
BOAL
Участник
Аватар для BOAL
MCBMSS
Злыдни
1C
Лучший по профессии 2015
 
621 / 453 (17) +++++++
Регистрация: 28.04.2003
Адрес: Москва
Вывод какой?
Разрешить обратно для наших широт. Мы разрешали. Мне кл-кл транзакции крайне нужны - на них все и живет, исторически и логически тоже.

sukhanchik, у тебя в "новой" АХ как у самого сейчас?
Старый 02.07.2009, 03:22   #8  
vanokh is offline
vanokh
Участник
 
108 / 63 (3) ++++
Регистрация: 23.10.2008
Цитата:
Сообщение от BOAL Посмотреть сообщение
Вывод какой?
Разрешить обратно для наших широт.
Да, разлепим пельмени обратно... Транзитный счет + два ваучера развалит наши отчеты, которые мы уже приспособили под операции клиент-клиент на одном ваучере, а стандартной выверкой пока не пользуемся.

Занятно, аналогичная проверка для операций поставщик-поставщик изменена в локализации - проверка из международной закомментирована, вместо нее написана другая:
X++:
ledgerJournalTrans.selectLocked(false);
        select count(RecId) from ledgerJournalTrans
        index hint NumVoucherIdx
            where ledgerJournalTrans.Voucher     == _ledgerJournalTrans.Voucher &&
                  ledgerJournalTrans.JournalNum  == _ledgerJournalTrans.JournalNum &&
                  ledgerJournalTrans.AccountType == LedgerJournalACType::Vend;
        if (ledgerJournalTrans.RecId > 1)
        {
            ok      = checkFailed("@SYS29116");
            allok   = false;
        }
    }
/* this code doesn't work correctly for SAD documents
    //
    //  When "Vendor" type is used on any Ledger Journal Transaction it can only
    //  exist once per "Voucher" series .
    //
    //  Since a "Vendor" type can be applied to either the primary or offset side
    //  of a transaction. This is both a qualifying factor and additional data to be
    //  validated. Although this only applies to "Daily" (GL) based journals it
    //  should not affect this validation.
    //
    if (_ledgerJournalTrans.AccountType       == LedgerJournalACType::Vend ||
       (_ledgerJournalTrans.OffsetAccount     &&
        _ledgerJournalTrans.OffsetAccountType == LedgerJournalACType::Vend))
    {
        ledgerJournalTrans.selectLocked(false);
        select count(RecId) from ledgerJournalTrans
        index hint NumVoucherIdx
            where ledgerJournalTrans.Voucher            == _ledgerJournalTrans.Voucher &&
                  ledgerJournalTrans.JournalNum         == _ledgerJournalTrans.JournalNum &&
                  (ledgerJournalTrans.AccountType       == LedgerJournalACType::Vend ||
                  (ledgerJournalTrans.OffsetAccount     &&
                   ledgerJournalTrans.OffsetAccountType == LedgerJournalACType::Vend));
        if (ledgerJournalTrans.RecId > 1)
        {
            ok      = checkFailed("@SYS29116");
            allok   = false;
        }
    }
*/

Последний раз редактировалось vanokh; 02.07.2009 в 03:36.
Старый 02.07.2009, 12:23   #9  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,326 / 3556 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от BOAL Посмотреть сообщение
sukhanchik, у тебя в "новой" АХ как у самого сейчас?
Ну как - 2 клиента разных - пожалуйста. А вот 2 одинаковых даже - с разными профилями разноски (или договорами) - фиг.
Вообще-то сей код обитает в \Classes\LedgerJournalTransUpdateCust\checkVoucher для клиентов и \Classes\LedgerJournalTransUpdateVend\checkVoucher для поставщиков.
У нас штатный (неизмененный) код в 4.0 EE SP2. Спокойно дает сделать разноску (и такие взаимозачеты у нас есть).
__________________
Возможно сделать все. Вопрос времени
Старый 02.07.2009, 11:41   #10  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 645 (26) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
Вообще-то, если вы посмотрите внимательно на проверку, операции Клиент-Клиент там не запрещены. Запрещены многострочные операции, в которых клиент встречается больше одного раза. А в рамках одной строки взаимозачеты вполне можно разносить.
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me
Теги
ax4.0, hotfix, sp2, журнал гк

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Сергей Герасимов: О технической поддержке клиентов по продуктам Microsoft Dynamics Blog bot DAX Blogs 4 13.02.2007 14:58
Планирование нескольких продуктов из одной партии сырья Lexeich DAX: Функционал 12 25.08.2006 10:37
Привязать к одной операции несколько рабочих центров aevi82 DAX: Функционал 14 02.12.2005 16:11
Помогите указать 2 рабочих центра на операции clerk DAX: Функционал 14 08.02.2005 22:35
Коды клиентов в CRM - проблема Zabr DAX: Функционал 5 01.12.2003 12:41

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

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

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