|
13.05.2013, 10:38 | #1 |
Участник
|
Простановка нового (замена старого) кода аналитики InventDimId в InventTrans
Добрый день!
AX 2009 Kernel 5.0.1500.3761 Appl 5.0.1500.2985 Solution RU HRP5 5.0.1500.2116.1 Есть некоторое количество записей в InventTrans (ура, их немного) у которых стоит несуществующий InventDimId, т.е. таблица InventDim не содержит записи с таким кодом. Не могу предположить точно все множество причин такой ситуации и ее последствий, но, как минимум, во многих формах из которых можно смотреть "Проводки лота" в этом случае проводки лота и не отображаются (обычно в запросах таких форм стоит Range на InventDimId) и отчеты тоже не всегда берут такие записи. В основном это проводки от заказов на продажу (от накладных). Вопрос простой - что нужно сделать, чтобы правильно проставить в InventTrans новый код аналитики? Можно ли просто: 1. из CustInvoiceTrans взять InventDim() 2. потом inventDimNew = InventDim::findOrCreate(CustInvoiceTrans.inventDim()) 3. потом InventTrans.InventDimId = inventDimNew.InventDimId 4. потом InventTrans.update() (или doUpdate()) Или вообще просто скопировать CustInvoiceTrans.InventDimId -> InventTrans.InventDimId? Благодарю. |
|
13.05.2013, 10:45 | #2 |
Участник
|
Конечно update()
Тогда система при этом учтет проводку в InventSum в этой аналитике. Но судя по всему вам надо бы пересчитать InventSum заново. Ведь не известно на каких аналитиках сейчас лежат остатки по испорченным проводкам. Это в администрировании есть механизм проверки и исправления целостности данных. |
|
|
За это сообщение автора поблагодарили: Romb (1). |
13.05.2013, 11:16 | #3 |
Участник
|
|
|
13.05.2013, 11:28 | #4 |
Участник
|
Будьте осторожны с таким подходом, он будет работать не всегда. Например, в случае если у вас активна партия или серийный номе, то вполне может быть:
- InventDim из CustInvoiceTrans партию не содержит. - InventDim из InventTrans партию содержит, так как она была выбрана например при резервировании. Используя описанный вами подход вы получите InventDim в InventTrans без партии, что может быть не корректно. А вот придумать альтернативу я не могу. Может у вас есть первичка, в которой был номер партии напечатан, тогда его нужно будет оттуда получить и прописать в InventTrans. З.Ы.: У меня в 2009 тоже периодически (за два года раза 2 или 3) возникали InventTrans со ссылкой на несуществующий InventDim. Было это в переносах, причину установить так и не удалось. Решалось просто, так как вся нужная аналитика была в строке переноса. |
|
|
За это сообщение автора поблагодарили: Romb (1), Logger (1). |
14.05.2013, 02:26 | #5 |
Участник
|
Благодарю за ответы!
Сделал копированием кода аналитики из CustInvoiceTrans с проверкой на то, что код корректный (комбинация аналитик требуемая). |
|
14.05.2013, 12:40 | #6 |
Участник
|
Цитата:
Я бы добавил к этой проверке следующее: 1. Не возникает ли у вас отрицательного остатка по выбранной аналитике после того как вы ее к InventTrans привяжете. Это поможет если у вас отрицательный склад запрещен. В вашей ситуации это вполне может быть. |
|
14.05.2013, 13:35 | #7 |
Участник
|
Также может быть ситуация когда на один CustInvoiceTrans будет несколько InventTrans, например были разные партии.
|
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|