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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 01.02.2013, 11:07   #1  
Murlin is offline
Murlin
Возьми свет!!!
Аватар для Murlin
Самостоятельные клиенты AX
Злыдни
 
291 / 32 (2) +++
Регистрация: 22.09.2008
Адрес: Тюмень, Рашан Федерашан
DAX 2009 связь скл. проводки со строкой накладной по заказу
Обнаружил что теперь в DAX 2009 связи между проводкой складской и строкой накладной(custinvoicetrans) не прописаны, каким образом устроена связь между проводкой и накладной и почему от этой связки отказались?
Необходимо посчитать маржу в OLAP.
__________________
Axapta 3.0 sp 5 Oracle
Диплом Интернет-Университета Информационных Технологий: Основы бухгалтерского учета
Я могу взорвать вам мозг!!!
Старый 01.02.2013, 12:10   #2  
d&m is offline
d&m
MCT
Аватар для d&m
MCP
Manzana Group
MCBMSS
 
459 / 186 (7) ++++++
Регистрация: 11.09.2007
Записей в блоге: 6
для расчета маржи уже есть методы прям на таблице CustInvoiceTrans (ContributionMargin и ContributionMarginMST).

там же и связь прописана
X++:
InventTrans::invoiceCostAmount(this.InventTransId,this.InvoiceDate,this.InvoiceId);
другими словами на вопрос:
Цитата:
Сообщение от Murlin Посмотреть сообщение
... каким образом устроена связь между проводкой и накладной ...?
Необходимо посчитать маржу в OLAP.
ответ: по номуру лота, номеру накладной и дате накладной.
__________________
Sometimes there is a moment as you are awakening - when you become aware of the real world around you, - but you are still dreaming. - You may think you can fly but you do better not try.
За это сообщение автора поблагодарили: Murlin (1).
Старый 01.02.2013, 12:21   #3  
Murlin is offline
Murlin
Возьми свет!!!
Аватар для Murlin
Самостоятельные клиенты AX
Злыдни
 
291 / 32 (2) +++
Регистрация: 22.09.2008
Адрес: Тюмень, Рашан Федерашан
Цитата:
Сообщение от d&m Посмотреть сообщение
для расчета маржи уже есть методы прям на таблице CustInvoiceTrans (ContributionMargin и ContributionMarginMST).

там же и связь прописана
X++:
InventTrans::invoiceCostAmount(this.InventTransId,this.InvoiceDate,this.InvoiceId);
другими словами на вопрос:

ответ: по номуру лота, номеру накладной и дате накладной.
но уникальности нет по этим полям в накладных.
__________________
Axapta 3.0 sp 5 Oracle
Диплом Интернет-Университета Информационных Технологий: Основы бухгалтерского учета
Я могу взорвать вам мозг!!!
Старый 01.02.2013, 12:47   #4  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,875 / 3123 (112) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от Murlin Посмотреть сообщение
но уникальности нет по этим полям в накладных.
Все правильно. Это косяк аксапты. Вылезает если разрешены дубликаты по номерам накладных.
Можно порекомендовать вам сделать какое-то поле идентифицирующее однозначно накладную. И протаскивать его в строку и в проводку.
Мы таким полем назначили ваучер. В строку его протаскиваем. В проводке он и так есть.
Старый 01.02.2013, 14:41   #5  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,654 / 1158 (42) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от Murlin Посмотреть сообщение
Обнаружил что теперь в DAX 2009 связи между проводкой складской и строкой накладной(custinvoicetrans) не прописаны, каким образом устроена связь между проводкой и накладной и почему от этой связки отказались?
А можно уточнить, что Вы вкладываете в термин "теперь"? Насколько я вижу, все те индексы, которые были на таблице CustInvoiceTrans в Ax2.5 и Ax3.0 так и остался в Ax2009. Один-в-один. Relations также совпадают для версий Ax3.0 и Ax2009. Вообще НИКАКИХ изменений.

Вы как раньше-то связывали? В какой версии?
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
Старый 01.02.2013, 14:46   #6  
Murlin is offline
Murlin
Возьми свет!!!
Аватар для Murlin
Самостоятельные клиенты AX
Злыдни
 
291 / 32 (2) +++
Регистрация: 22.09.2008
Адрес: Тюмень, Рашан Федерашан
Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
А можно уточнить, что Вы вкладываете в термин "теперь"? Насколько я вижу, все те индексы, которые были на таблице CustInvoiceTrans в Ax2.5 и Ax3.0 так и остался в Ax2009. Один-в-один. Relations также совпадают для версий Ax3.0 и Ax2009. Вообще НИКАКИХ изменений.

Вы как раньше-то связывали? В какой версии?
Я точно не помню но помню смутно что связь была прописана через метод или через relation. возможно в 4ке. Я брал оттуда связку и связывал. По мойму это даже было в стандарте, могу ошибатся
__________________
Axapta 3.0 sp 5 Oracle
Диплом Интернет-Университета Информационных Технологий: Основы бухгалтерского учета
Я могу взорвать вам мозг!!!
Старый 01.02.2013, 15:57   #7  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,654 / 1158 (42) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Вообще-то, однозначная связь между строками фактур и складскими проводками невозможна "по определению". Так сказать, by-design

По самой "природе" строки фактур создаются на основе строк заказа. А складские проводки выступают лишь как некий дополнительный фактор контроля. Дополнительные проверки. Причем "интегральный" (суммовой) фактор контроля (сумма по разным складским аналитикам).

Ну, а поскольку на основании одной строки заказа может быть как много строк фактур, так и много складских проводок, то и связь между этими таблицами будет много-ко-многим.

Собстенно, код на однозначную связь и не рассчитывает. Если посмотреть, что делает метод InventTrans::invoiceCostAmount(), то видно, что он суммирует складские проводки. Причем InvoiceId и InvoiceDate - это всего-лишь контроль частичной фактуровки, а вовсе не попытка создать уникальный идентификатор.

Другими словами, сделать "исторический" анализ - не получится. Даже в том случае, если Вы добавите уникальные идентификаторы. Может банально не оказаться складской проводки с таким идентификатором (удалили после сторнирования).

PS: А вот "проклятием рода Баскервилей" я считаю отсутствие однозначной связи между шапками и строками фактур (CustInvoiceJour - CustInvoiceTrans). Но это уже другая история
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
За это сообщение автора поблагодарили: Murlin (1).
Старый 01.02.2013, 22:09   #8  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,429 / 1772 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Владимир Максимов, а почему вы накладные называете фактурами?
Старый 04.02.2013, 07:10   #9  
Murlin is offline
Murlin
Возьми свет!!!
Аватар для Murlin
Самостоятельные клиенты AX
Злыдни
 
291 / 32 (2) +++
Регистрация: 22.09.2008
Адрес: Тюмень, Рашан Федерашан
Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
PS: А вот "проклятием рода Баскервилей" я считаю отсутствие однозначной связи между шапками и строками фактур (CustInvoiceJour - CustInvoiceTrans). Но это уже другая история
Пипец
__________________
Axapta 3.0 sp 5 Oracle
Диплом Интернет-Университета Информационных Технологий: Основы бухгалтерского учета
Я могу взорвать вам мозг!!!
Старый 04.02.2013, 10:39   #10  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,875 / 3123 (112) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Владимир Максимов, а почему вы накладные называете фактурами?
Кстати, да. Если говорить именно о строках CustInvoiceTrans то однозначную связь построить все же можно. У нас даже для просмотра маржи дисплей методы в строках накладных висят.
Старый 04.02.2013, 11:17   #11  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,654 / 1158 (42) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Владимир Максимов, а почему вы накладные называете фактурами?
Потому что я все еще работаю в Ax2.5. А там эта таблица называлась "Строки счетов-фактур", а CustInvoiceJour - соответственно "Счета-фактур"
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
За это сообщение автора поблагодарили: S.Kuskov (1).
Старый 04.02.2013, 11:38   #12  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,654 / 1158 (42) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от Logger Посмотреть сообщение
Кстати, да. Если говорить именно о строках CustInvoiceTrans то однозначную связь построить все же можно. У нас даже для просмотра маржи дисплей методы в строках накладных висят.
Можно. Если принять некоторые организационные ограничения.

Например, запрет удаления строк заказов. Ведь после сторнирования никто не мешает удалить строки заказов, при этом строки накладных "провиснут". Будут ссылаться на не существующие лоты. Ну, и весьма специфическим способом придется организовывать связку складских проводок с разной складской аналитикой. Также надо добавить контроль уникальности на значение InvoiceId.

Может, еще чего надо сделать. Т.е. работать будет, если постоянно "пальцем придерживать"
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Проводки с типом SummedUp при закрытии склада в DAX 2009 ansoft DAX: Функционал 15 20.09.2010 08:28
emeadaxsupport: List of fixes that improve performance of certain features in Dynamics AX 2009 Blog bot DAX Blogs 0 13.10.2009 19:06
msdynamicsax: DAX 2009 and MS SQL 2008 Blog bot DAX Blogs 0 09.08.2008 14:05
axStart: Microsoft Dynamics AX 2009 Hot Topics Web Seminar Series Blog bot DAX Blogs 0 06.08.2008 12:05
msdynamicsax: Enterprise Portal development in DAX 2009 Blog bot DAX Blogs 0 18.04.2008 07:06

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

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

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