![]() |
#1 |
Модератор
|
![]()
Создаю отчет в Excel на основе складских проводок (InventTrans).
Мне надо в отчета показать поле InventPosting.LedgerAccountId (Код счета, действующий для данной номенклатуры в настройке: Управление запасами\Настройка\Разноска\Разноска\Разноска\ закладка Запасы\ настройка Приход.) Как мне обрабатывая строку запроса у query с InventTrans дойти до InventPosting и достать поле Код счета.? Через какие пути связаны эти таблицы? ItemRelation ? ![]() |
|
![]() |
#2 |
Программатор
|
Смотрите на таблице релейшн InventTable. Не оно? Наверна нет...
|
|
![]() |
#3 |
Программатор
|
И добавить связку по InventAccountType. И слепить что то типа InventTransType2InventAccountType
|
|
![]() |
#4 |
NavAx
|
Надо смотреть не InventPosting, а InventTransPosting, и связаны они по соответсвующим ваучерам и датам.
ЗЫ. В InventPosting текущая настройка, а в InventTransPosting счета по каким прошла операция, и они могут не совпадать. |
|
![]() |
#5 |
Программатор
|
ну может человеку надо именно настройку
![]() |
|
![]() |
#6 |
Модератор
|
Может быть связь такая:
InventTrans имеет полу ItemID (номенклатуру) InventTable имеет и ItemId и ItemGroupId (группу номенклатуры) У InventPosting есть ItemRelation - это и есть ItemGroupId ? Вроде бы да? |
|
![]() |
#7 |
Модератор
|
raz
по всей видимости перейдя на форму "Разноска запасов" - Управление запасами\Настройка\Разноска\Разноска\Разноска запасов\ закладка Запасы\ настройка Приход. там DataSources Invent построен на таблице InventPosting. От туда думал и взять Код счет. Хотя он на форме называется Номер счета. Или всетаки точно надо думать про таблицу InventTransPosting? InventTransPosting в физической разноске учавствует или в финансовой? |
|
![]() |
#8 |
Программатор
|
Там есть поле InventTransPostingType, может быть финансовым или физическим. Наврно и то и то.
|
|
![]() |
#9 |
Member
|
Вот такая связь...
X++: server static LedgerAccount account( InventAccountType accountType, CustVendAC accountNum, CustVendGroupId accountGroup, TaxGroup taxGroup ) { Counter i = 0; Integer maxOutcome= enumcnt(TableGroupAll); InventPosting inventLedger; CustVendRel accountRelation; TaxGroup testTaxGroup; Integer taxQty; Counter taxI; InventPostingParameters inventPostingParameters = InventPostingParameters::find(); if (! accountGroup) accountGroup = InventPosting::accountGroup(accountType,accountNum); if (!taxGroup) taxI = 2; else taxI = inventPostingParameters.taxCodeRelationEnabled()? 1 : 2; while (taxI <= taxQty) { if (taxI == 1) testTaxGroup = taxGroup; else testTaxGroup = ''; while (i < maxOutcome) { if (inventPostingParameters.accountRelationEnabled(i)) { accountRelation= InventPosting::accountRelation(i,accountNum,accountGroup); select firstonly inventLedger index hint ItemIdx where inventLedger.InventAccountType == accountType && inventLedger.CustVendCode == i && inventLedger.CustVendRelation == accountRelation && inventLedger.ItemCode == TableGroupAll::All && inventLedger.ItemRelation == '' && inventLedger.TaxGroupId == testTaxGroup; if (inventLedger.LedgerAccountId) return inventLedger.LedgerAccountId; } i += 1; } taxI += 1; } return ''; }
__________________
С уважением, glibs® |
|
![]() |
#10 |
NavAx
|
Уж не оборотку ли по номенклатуре пытаетесь сделать?
|
|
![]() |
#11 |
Модератор
|
Задание: Отчет по движению ТМЦ в производстве. (MX-20)
|
|
![]() |
#12 |
NavAx
|
Начните с InventReport_LedgerConciliation.
Может появиться понимание. |
|
![]() |
#13 |
Модератор
|
raz Репсект покапаюсь в InventReport_LedgerConciliation. Может и придет понимание ;-) Жду не дождусь, где оно ходит только!
На счет InventPosting надо спросить консультанта мож и вправду использовать InventTransPosting и фильтром по InventTransPostingType |
|
![]() |
#14 |
NavAx
|
Еще раз повторю в InventPosting текущая настройка, т.е. если настройку поменяли, то отчет будет врать.
Вот еще для понимания Связь между складскими и фин.проводками Взяв идеи из InventReport_LedgerConciliation, можно сделать Отчет по движению ТМЦ в производстве. |
|