06.09.2010, 11:18 | #1 |
Axapta Retail User
|
Проводки в InventSum не закрываются до конца
Ax 3.0 SP 3 CU 1
Настройки складской аналитики: Склад - Первичная аналитика, финансовая. Партия - Физ. наличие и пропуски при приходе и расходе. т.е. по партии хотим отслеживать наличие, начиная с определенного момента, а в разрезе склада хотим видеть себестоимость. Метод FIFO. Отрицательный склад полностью отключен. На данный момент столкнулись со следующим: По одному номеру партии в разрезе одного склада был приход 1 шт и расход 1 шт. Эти складские проводки давно финансово закрыты. Но вот в inventSum висит по этой аналитике (склад+партия) строка: PostedValue = 41,04. Количества все равны нулю, ClosedQty равен единице, Closed равен нулю. Строка висит уже 2 года. Я примерно понимаю, откуда растут ноги - раз партия у нас не финансовая аналитика, то вполне нормально, что она в разрезе этих двух проводок финансово не закрылась - а сопоставление прошло с другими партиями по FIFo по складу. Но вот огромное количество таких незакрытых проводок в InventSum очень сказывается на производительности. Их наличие в общем случае нормальная ситуация? Или это какой то баг нашего сервис пака? И самый больной вопрос - как от них избавится? Пока у меня только совсем жесткий вариант на уме - сгруппировать и просуммировать их все в аналитику просто склад без указания партий. |
|
06.09.2010, 11:37 | #2 |
Участник
|
Это фича и никакой не баг.
Так и должно быть. Если хотите повысить производительность, то может завести свою галку closed которую назначать закрытой, когда обнулилась сумма по финансовым аналитикам. И учитывать эту галку в отчетах. Придется правда на каждом обновлении InventSum дополнительный группирующий запрос делать. Это может очень сильно снизить производительность. Но партия и серийник - высокоселективные аналитики, может и нормально будет. |
|
|
За это сообщение автора поблагодарили: ViV (1). |
06.09.2010, 13:32 | #3 |
Axapta Retail User
|
Logger, спасибо.
Галочка, к сожалению, поможет мало - склад, как фин аналитика, по данному товару еще открыт. Тогда собственно вопрос остается один - что я испорчу, если я сгруппирую записи по складу просуммировав прямо в inventSum? По тем записям, где все inventTrans по данным физическим аналитикам уже закрыты. Но финансовая аналитика склад - открыта (есть еще остатки). По сути тормозит запрос, который считает себестоимость по текущему складу данной номенклатуры - ничего удивительного, если ему надо 100 тыс. строк в inventSum просуммировать. Вот их и хочется свернуть. |
|
06.09.2010, 15:26 | #4 |
Участник
|
Как так просуммируете ?
Вы хотите записей еще там создать ? Это же ошибочная ситуация. InventSum должен соответствовать InventTrans. |
|
06.09.2010, 19:53 | #5 |
Axapta Retail User
|
Объясню подробнее:
Сейчас есть например 4 строки: 1. Склад = Тест1 Партия пустая Сумма 100 руб Кол-во 20 штук 2. Склад = Тест1 Партия Парт1 Сумма 20 руб Кол-во 0 штук 3. Склад = Тест1 Партия Парт2 Сумма 30 руб Кол-во 0 штук Все InventTrans с партиями Парт1 и Парт2 закрыты финансово. По факту на складе должно быть: Склад = Тест1 Партия пустая Сумма 150 руб Кол-во 20 штук Вот я и пытаюсь понять - если я так схлопну вручную (т.е. заместо 3 проводок останется 1), то чем это чревато? Я понимаю, что это жесткий метод - но производительность дороже. Наверное. Пока вижу минус, что при запуске расчета целосности данных система все вернет на свои места. |
|
06.09.2010, 21:45 | #6 |
Участник
|
Добрый час.
Знакомая ситуация: долгое формирование отчетов отражающих остатки ТМЦ и расчет фактической себестоимости. Верно говорите: Цитата:
Из собственного опыта: С производительностью отчетов (отражающих сальдо ТМЦ в разрезе складской аналитики) и пересчета себестоимости боролись так: Изначально дописали в функцию пересчета подобный метод, который «схлопывал» данные в InventSum. Но желаемого результата не добились (повышение производительности отчетов и пересчета фактической себестоимости). Пошли другим путем: пересчет себестоимости стали делать не через бизнес, а средствами SQL; для повышения производительности отчетов создали таблицу на подобие InventSum на дату. В итоге у одного заказчика пересчет, который выполнялся в районе 5-7 дней, производится за 40-55 минут. У второго заказчика, база чуть больше, расчет выполняется за 120 минут. Оба заказчика на Ax 3.0. Сложность: трудоемкий процесс по написанию пересчета средствами SQL. По таблице содержащей рассчитанное сальдо на конец отчетного периода: должен быть жесткий алгоритм по закрытию (открытию закрытого) периода: период закрыли – записи в регистры в данном периоде не возможны. Открываем период – удаляем рассчитанное сальдо. Иначе сами понимаете. Надеюсь данная информация Вам поможет в принятии верного решения |
|
|
За это сообщение автора поблагодарили: ViV (2). |
07.09.2010, 11:51 | #7 |
Участник
|
Если говорить про отчеты, то в AX 2009 локализаторы добавили отчет "Оборотная ведомость по складу" (Управление запасами / Запросы / Проводки / Оборотная ведомость по складу), который может использовать предрассчитанные остатки (Управление запасами / Периодические операции / Запасы в наличии на указанную дату). Посмотрите, может такой подход устроит? Ну и не забываем про OLAP =)
__________________
Ivanhoe as is.. |
|
07.09.2010, 12:42 | #8 |
Axapta Retail User
|
У нас критичны как раз не отчеты (они давно переведены на OLAP), а именно текущая работа.
В частности, когда менеджер хочет оценить маржу по заказу и вызывает форму "Запросы" - "Итоги". Идет расчет себестоимости по наличию на текущем складе - тут все и виснет. |
|
10.09.2010, 15:30 | #9 |
Axapta Retail User
|
Сделали таким способом:
все такие проводки в inventSum пометили галкой "closed", если выполнились условия - что на складе (фин. аналитике) остаток по кол-ву и по сумме ноль, и все inventTrans по фин. аналитике финансово закрыты. Пока полет с точки зрения себестоимости нормальный и большая масса проводок закрылась. |
|
11.09.2010, 11:51 | #10 |
Участник
|
Как вам это удалось?
Цитата:
Цитата:
Цитата:
Кстати, если выполнить процедуру пересчета InventSum - то думаю, что это все слетит... |
|
13.09.2010, 10:13 | #11 |
Axapta Retail User
|
Наверное я не совсем четко расписала. Проблему с себестоимостью это конечно не решает.
Но частично помогает решить проблему с производительность. Т.е. для проводок: 1. Склад = Тест1 Партия Парт1 Сумма -20 руб Кол-во 0 штук 2. Склад = Тест1 Партия Парт2 Сумма +20 руб Кол-во 0 штук Проставили флажок Closed - таким образом и себестоимость не пострадала и быстродействие значительно улучшилось. Цитата:
Кстати, если выполнить процедуру пересчета InventSum - то думаю, что это все слетит...
Именно при пересчете остатков слетит. Пересчет и закрытие склада проходят нормально. |
|