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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 13.11.2017, 15:29   #1  
RSrd is offline
RSrd
Участник
 
7 / 12 (1) ++
Регистрация: 30.05.2013
AX4. Неверная сумма в InventTrans
Всем привет!

DAX 4.0.

По Заказу на продажу образовалась InventTrans на 8 миллионов вместо 6 тысяч.
Сопоставления нет.
CostAmountPosted = -8 277 820,58.
CostAmountAdjustment = 0.

В журналах запасов цены корректные.
Подскажите, куда копать и как исправить?
Миниатюры
Нажмите на изображение для увеличения
Название: axforum_inventtrans.jpg
Просмотров: 18
Размер:	297.8 Кб
ID:	11723  
Старый 13.11.2017, 15:54   #2  
mazzy is offline
mazzy
Administrator
Аватар для mazzy
Most Valuable Professional
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
28,759 / 3627 (178) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
CostAmountPosted всегда считается по средней на основании InventSum.

это очень быстрый алгоритм: сумма(inventSum.PostedСумма) / сумма(inventSum.PostedКол-во)
суммируются все итоги, у которых аналитика с установленой галочкой финансовый, совпадает с соответствующей аналитикой проводки.

таким образом:
1. либо вы ожидаете увидеть 6 тысяч по вашему алгоритму (FIFO, LIFO и т.п), а в этом поле находится себестоимость по среднему
2. либо вы не учитываете в своих ожиданиях какие-то итоги с финансовой аналитикой
3. либо ваши итоги содержат неправильные суммы.
__________________
GitHub, Facebook, mazzy.priot, mazzy.music, coub.
Старый 13.11.2017, 16:30   #3  
fed is offline
fed
Moderator
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,176 / 3994 (138) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Еще где-то до ранних сервис-паков DAX4 и самых поздних обновлений DAX3 была бага в рассчетте мгновенной себестоимости, которая приводила к задиранию этой самой мгновенной себестоимости до совершено космических сумм.
Лично видел эту багу на одном из своих проектов. (Пришлось писать джобики, котрые удаляли проводки из ГК, писали более или менее разумную сумму в InventTrans и повторно разносили в ГК). Выловил условия воспроизведения бага небезизвестный Валентинас, где-то в 2006ом году. В последних обновлениях DAX3 и в каких-то самых первых патчах к DAX4SP1 эту багу исправили.
За это сообщение автора поблагодарили: mazzy (2), MikeR (5), RSrd (1).
Старый 13.11.2017, 16:42   #4  
mazzy is offline
mazzy
Administrator
Аватар для mazzy
Most Valuable Professional
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
28,759 / 3627 (178) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Цитата:
Сообщение от fed Посмотреть сообщение
Еще где-то до ранних сервис-паков DAX4 и самых поздних обновлений DAX3 была бага в рассчетте мгновенной себестоимости, которая приводила к задиранию этой самой мгновенной себестоимости до совершено космических сумм.
да. это происходило в закрытии склада и при возвратах.
задиралась CostAmountAdjustment, насколько я помню.

вопрос был про CostAmountPosted
__________________
GitHub, Facebook, mazzy.priot, mazzy.music, coub.
Старый 13.11.2017, 16:44   #5  
fed is offline
fed
Moderator
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,176 / 3994 (138) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Цитата:
Сообщение от mazzy Посмотреть сообщение
да. это происходило в закрытии склада и при возвратах.
задиралась CostAmountAdjustment, насколько я помню.

вопрос был про CostAmountPosted
А по моему как раз мгновенная себестоимость задиралась. А закрытие помирало, из за того что у него сумма коррекции (по итогам коррекции большого числа проводок с большими суммами) вываливалась за пределы разрядной сетки. Просто если ты вовремя ловил такую ситуацию, то пересчет/закрытие еще могло ее исправить.
Старый 15.11.2017, 14:37   #6  
RSrd is offline
RSrd
Участник
 
7 / 12 (1) ++
Регистрация: 30.05.2013
Благодарю за ответы!

Да, в InventSum есть некорректная запись с ценой 1,5 миллиона вместо 500 рублей за штуку.

Как правильно в данном случае поступить?
Как исправить InventSum, проводки и желательно найти причину?
Старый 15.11.2017, 15:16   #7  
mazzy is offline
mazzy
Administrator
Аватар для mazzy
Most Valuable Professional
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
28,759 / 3627 (178) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Цитата:
Сообщение от RSrd Посмотреть сообщение
Да, в InventSum есть некорректная запись с ценой 1,5 миллиона вместо 500 рублей за штуку.

Как правильно в данном случае поступить?
Как исправить InventSum, проводки и желательно найти причину?
0.
InventSum - главная таблица складского модуля.
InventSum - не доступна из штатного функционала на редактирование для пользователя
InventSum могут исправить либо алгоритмы аксапты, либо прямой запрос к базе данных.

другими словами, inventSum - как печень - должна работать как часы.
Принять быстрые меры конечно нужно.
но неправильные суммы в этой таблице означает, что у вас где-то ОЧЕНЬ плохо.
и, конечно же, нужно найти причину.

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

Обсуждалось неоднократно. Поищите.
Например, Пересчет inventSum

2.
Исправлять проводки НЕ нужно.
Нужно ДОБАВИТЬ коррекции.
так вы сохраните историю и сможете быть уверенными что все алгоритмы работают корректно.

Коррекция находится в Закрытии склада. Там была кнопка "коррекция проводок".
Откорректировать себестоимость можно в приходных проводках.
В расходных себестоимость должна автоматически пересчитаться после запуска закрытия или коррекции склада.

(у меня сейчас нет акс4 под рукой. на скриншоте акс2012 и английская. но думаю, будет понятно)

3.
и да, обязательно разберитесь и устраните причину.
скорее всего, у вас не одна неправильная проводка, а целая группа неправильных.
Миниатюры
Нажмите на изображение для увеличения
Название: ax6.PNG
Просмотров: 5
Размер:	61.8 Кб
ID:	11730  
__________________
GitHub, Facebook, mazzy.priot, mazzy.music, coub.
За это сообщение автора поблагодарили: Logger (1).
Старый 15.11.2017, 22:31   #8  
RSrd is offline
RSrd
Участник
 
7 / 12 (1) ++
Регистрация: 30.05.2013
Благодарю за подробные инструкции!

Однако:

1.
Пересчет InventSum пересчитывает его по InventTrans и больше ничего не происходит - я правильно понимаю?
У нас InventTrans соответствует InventSum, и оба неправильные, поэтому ничего не изменилось.

2.
Я выбрал все приходные проводки (см. скрин) - там все цены корректные - корректировать нечего.
Что можно здесь сделать?

3.
Да. Многие проводки по этой номенклатуре неверны - в тех случаях, когда товар резервировался со склада и цена считалась по InventSum. Если резерва не было и товар брался из заказа на покупку - цена корректная (второй скрин).


Что можно сделать дальше?
Миниатюры
Нажмите на изображение для увеличения
Название: Transaction Adjustments.jpg
Просмотров: 10
Размер:	133.5 Кб
ID:	11731   Нажмите на изображение для увеличения
Название: InventTrans.jpg
Просмотров: 10
Размер:	218.7 Кб
ID:	11732  

Старый 16.11.2017, 08:49   #9  
mazzy is offline
mazzy
Administrator
Аватар для mazzy
Most Valuable Professional
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
28,759 / 3627 (178) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Без паники!
Почти все разбирались с себестоимостью.
продано 6.10.17 две штуки за 8млн - это конечно круто.

Да, выглядит типично для неправильно сработавшего алгоритма.
Многие в акс4 прошли через багу. Если это бага, то теперь для баги решение давно уже есть. )
Кроме того, у вас могли работать какие-то алгоритмы, созданные вашими программистами.
А также могли быть неправильные исходные данные.

Впрочем... Давайте по порядку.


Цитата:
Сообщение от RSrd Посмотреть сообщение
Пересчет InventSum пересчитывает его по InventTrans и больше ничего не происходит - я правильно понимаю?
У нас InventTrans соответствует InventSum, и оба неправильные, поэтому ничего не изменилось.
да, пересчет только обновляет InventSum на основании inventTrans.
да, он ничего больше делать не должен.

Если неправильные данные в проводках продажи, то нужно будет добиться, чтобы пересчет и закрытие склада сработало правильно и вывело на правильную сумму.

Цитата:
Сообщение от RSrd Посмотреть сообщение
2.
Я выбрал все приходные проводки (см. скрин) - там все цены корректные - корректировать нечего.
Что можно здесь сделать?
ок. спасибо, что проверили. принято.
пока будем исходить из этого и оставим приходные проводки.
значит, надо разбираться с расходными. причем с суммой, которая появляется в момент разноски. А это мгновенная средняя которая берется из InventSum/

к вопросу вернемся позже.


Цитата:
Сообщение от RSrd Посмотреть сообщение
3.
Да. Многие проводки по этой номенклатуре неверны - в тех случаях, когда товар резервировался со склада и цена считалась по InventSum. Если резерва не было и товар брался из заказа на покупку - цена корректная (второй скрин).
Угу. Принято.

Сначала давайте обустроим рабочее место.
Во-первых, нужно на форму вытащить складскую аналитику.
Хотя бы ту, по которой установлен признак Финансовая (по ней считается себестоимость)
Кнопка Склад \ Отображение аналитики

Далее.
Придется попросить программистов вытащить вам два поля на грид: общую сумму и себестоимость единицы.
Попросите, чтобы программисты сразу перетащили эти поля в конец грида.

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

Далее.
Вытащите себе на грид поле Коррекция из вкладки Обновление.
Скройте поле с финансовой себестоимостью и финансовой датой (очень, похоже что вы используете только Invoice/Накладные).
измените названия полей так, чтобы было удобно.
сделать это можно самостоятельно правой кнопкой, Персонализация.

получится похоже на скриншот 3

даже если у вас не получится модифицировать форму,
то вы можете выгрузить данные в excel и там уже добавить формулы и расчетные величины. так, чтобы было удобно для анализа.


Цитата:
Сообщение от RSrd Посмотреть сообщение
Что можно сделать дальше?
Ок. Грамотный вопрос.

Как исправить
В расходных проводках себестоимость корректируется в соответствии в процедуре закрытия и пересчета склада: Какова бы ни была исходно рассчитанная, после пересчета склада сумма полей Posted+Adjustment должна давать правильную себестоимость.

Поэтому.
1.
Запускаете пересчет склада по вашей номенклатуре (сначала лучше в тестовой базе, а не в рабочей. и для быстроты эксперимента по одной номенклатуре, задайте фильтры)

2.
смотрите как изменилась себестоимость в расходных проводках.

2.1.
если после пересчета сум(Разнесено + Коррекция) дает правильную себестоимость, то с вашими алгоритмами все хорошо. вам нужно только разобраться откуда появляется изначальная неправильная. Продажи в минус? Что-то в карточке? Что-то исправили в процедуре резервирования?

2.2.
если после пересчета сум(Разнесено + Коррекция) продолжает давать дикое отклонение (скорее всего, с другим знаком), то поздравляю - у вас тот самый баг, про который говорил fed. самый простой способ победить баг - найти и установить обновления для ax4, после чего запустить пересчет склада.


Диагностика
после того как вы показали складскую аналитику и выполнили исправления, нужно разобраться с причиной.
нужно понять, не происходит ли отклонение по какому-то одному складу/партии.

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

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

примерно так.
Миниатюры
Нажмите на изображение для увеличения
Название: price.PNG
Просмотров: 6
Размер:	163.4 Кб
ID:	11733   Нажмите на изображение для увеличения
Название: 2.PNG
Просмотров: 3
Размер:	95.4 Кб
ID:	11734  

Нажмите на изображение для увеличения
Название: 3.PNG
Просмотров: 9
Размер:	123.4 Кб
ID:	11735  
__________________
GitHub, Facebook, mazzy.priot, mazzy.music, coub.

Последний раз редактировалось mazzy; 16.11.2017 в 08:57.
За это сообщение автора поблагодарили: RSrd (1).
Старый 16.11.2017, 10:38   #10  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
1,686 / 846 (32) +++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Отрицательный финансовый склад на модели включен?
Если включен, то не было ли момента, когда сумма уходила в отрицательную область на небольшую сумму?
За это сообщение автора поблагодарили: mazzy (2).
Старый 17.11.2017, 16:17   #11  
RSrd is offline
RSrd
Участник
 
7 / 12 (1) ++
Регистрация: 30.05.2013
Благодарю за оперативный ответ!

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

После пересчета склада цены не изменились.

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

Однако, в InventSum себестоимость - 36 рублей и не пересчитывается

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

Можно ли применить алгоритм закрытия по одной номенклатуре и без, собственно, закрытия?
И - что сделать в итоге с InventSum?
Миниатюры
Нажмите на изображение для увеличения
Название: AfterClosing.jpg
Просмотров: 3
Размер:	203.3 Кб
ID:	11739   Нажмите на изображение для увеличения
Название: Version.jpg
Просмотров: 0
Размер:	46.3 Кб
ID:	11740  

Старый 17.11.2017, 16:43   #12  
RSrd is offline
RSrd
Участник
 
7 / 12 (1) ++
Регистрация: 30.05.2013
Raven,
Да, отрицательный финансовый склад включен.
Я правильно понимаю, что это к InventSum.PostedValue относится?
Насколько мне известно - нет... не понятно, как это проверить-то.
Старый 17.11.2017, 17:06   #13  
mazzy is offline
mazzy
Administrator
Аватар для mazzy
Most Valuable Professional
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
28,759 / 3627 (178) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Цитата:
Сообщение от RSrd Посмотреть сообщение
Однако, в InventSum себестоимость - 36 рублей и не пересчитывается
...
И - что сделать в итоге с InventSum?
InventSum должна содержать сумму ВСЕХ проводок.
не на дату, не за период. а ВСЕХ - прошлых, настоящих и будущих.
Если это не так - искать неправильный код.

Цитата:
Сообщение от RSrd Посмотреть сообщение
Можно ли применить алгоритм закрытия по одной номенклатуре и без, собственно, закрытия?
Закрытие - нельзя
Пересчет - можно.

Закрытие: это пересчет + пометка полностью сопоставленных проводок галочкой Закрыто. Проводки, помеченные галочкой Закрыто, больше не участвуют в процедуре расчета.

Ключевой момент - это производство и возвраты. при этих операциях из одной номенклатуры может появится другая номенклатура. поэтому себестоимость с одной номенклатуры может перейти (списаться) на другую номенклатуру.

Когда вы пересчитываете с фильтрами, то можете потерять такие переходы.
Закрытие будет считать все.
Миниатюры
Нажмите на изображение для увеличения
Название: 1.PNG
Просмотров: 0
Размер:	46.7 Кб
ID:	11741  
__________________
GitHub, Facebook, mazzy.priot, mazzy.music, coub.
Старый 17.11.2017, 17:11   #14  
mazzy is offline
mazzy
Administrator
Аватар для mazzy
Most Valuable Professional
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
28,759 / 3627 (178) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Цитата:
Сообщение от RSrd Посмотреть сообщение
Raven,
Да, отрицательный финансовый склад включен.
Я правильно понимаю, что это к InventSum.PostedValue относится?
Да.

Trans.CostAmountPosted - это поле, которое содержит оценку себестоимости, рассчитанную в момент разноски БЫСТРЫМ алгоритмом.

Если InventSum.PostedValue или InventSum.Qty содержат отрицательные значения,
То себестоимость оценивается специальным образом - берется из прайса/карточки.

Надо посмотреть в ваш код, есть ли какие-нибудь модификации в этом месте. И что там вообще происходит.
__________________
GitHub, Facebook, mazzy.priot, mazzy.music, coub.
Старый 17.11.2017, 17:23   #15  
RSrd is offline
RSrd
Участник
 
7 / 12 (1) ++
Регистрация: 30.05.2013
Цитата:
Сообщение от mazzy Посмотреть сообщение
Ключевой момент - это производство и возвраты. при этих операциях из одной номенклатуры может появится другая номенклатура. поэтому себестоимость с одной номенклатуры может перейти (списаться) на другую номенклатуру.

Когда вы пересчитываете с фильтрами, то можете потерять такие переходы.
Закрытие будет считать все.
Спасибо, проверим возвраты. Судя по всем - это то самое направление, где нужно рыть.
Я имел ввиду - можно ли сделать джоб, выполняюий закрытие, но понимаю, что это лишено смысла, и нужно использовать пересчет склада с правильными фильтрами.

Цитата:
Если в карточке нет подозрительного, то стоит проверить процедуру резервирования - создать заказ, указать номенклатуру и количество, при котором должны происходить "неправильные вещи", не разносить, посмотреть что создается в строчках заказа и в складских проводках до разноски. Может быть, в тестовой базе разнести и проверить разноску.
Да, я проверял: до и после резервирования цены выглядят нормально.
После разноски накладной - подтягивается некорректная цена из InventSum (до и после закрытия поведение - то же).

Последний раз редактировалось RSrd; 17.11.2017 в 17:28.
За это сообщение автора поблагодарили: mazzy (2).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Неверная сумма в проводке по отмене сопоставления с предоплатой АХ2009 ksenia DAX: Функционал 5 29.09.2016 17:33
Связь inventsettlement с расходными и приходными проводками inventtrans с одинаковым лотом Aquarius DAX: Программирование 1 23.05.2016 16:42
Странное поведение при закрытии склада-ошибка в коде? Aquarius DAX: Программирование 11 27.06.2013 13:37
Query из 7 таблиц Cornflower DAX: Программирование 29 15.03.2007 11:27
Связь таблиц InventTrans и PurchLine Pustik DAX: Программирование 2 25.11.2004 12:23
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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