|
![]() |
#1 |
Moderator
|
Отвечу по шагам. В текущей (2009RU7) версии аксапты есть два подхода к принудительному (без нормального сопоставления и рассчета себестоимости) закрытию проводок:
Теперь о твоей конкретной ситуации: Во первых - со своим советом насчет того чтобы подхакать закрытие чтобы считало всю номенклатуру сервисами - я был не прав. Дело в том, что у тебя тогда ВСЕ проводки пометяться как закрытые, а задача состоит в том чтобы пометить как закрытые только те проводки, которые НЕ ВХОДЯТ в текущий остаток. Соответственно у тебя есть два подхода к решению проблемы: 1. Написать собственную процедуру закрытия. Просто надо бежать по текущим складским остаткам в разрезе аналитик финансового склада и для каждой комбинации аналитик отсчитывать назад от текущей даты достаточно складских проводок в статусе "Закуплено" чтобы покрыть текущий складской остаток. Затем все остальные складские проводки надо пометить как закрытые (с использованием кода inventCostItemDim.updateServiceItems() как прототипа). Да - еще замечу что если у тебя в складских остатках, допустим 5 штук, а приходная проводка на 12, то тебе надо ее рассплитить на две проводки по 7 и 5 штук, первую закрыть, а вторую - оставить. Я бы лично пошел по этому пути. 2. Если ты не чуствуешь себя достаточно увереным для варианта N1, по прежнему можно пойти по пути обычного закрытия склада. Я бы, к рекомендациям mazzy, сделал такие поправки:
|
|
|
За это сообщение автора поблагодарили: mazzy (2), lev (4), Link (1). |
![]() |
#2 |
Участник
|
Цитата:
переносы и спецификации детектируются и откладываются на второй проход. или я чего забыл? |
|
![]() |
#3 |
Moderator
|
Цитата:
Но поскольку топикстартера вообще не интересует себестоимость, то вполне можно поставить всего 1 итерацию чтобы сначала все сопоставилось, а потом списалось. |
|
![]() |
#4 |
Участник
|
Цитата:
Согласись, что обычно после производства готовая продукция обычно таки перемещается на склад хранения. И если без производства, но были перемещения. Точно одного прохода будет достаточно, чтобы получить что-нибудь боль-мень вменяемое? (Это я уже для повышения собственной образованности спрашиваю) |
|
![]() |
#5 |
Moderator
|
Цитата:
Сообщение от mazzy
![]() А если были?
Согласись, что обычно после производства готовая продукция обычно таки перемещается на склад хранения. И если без производства, но были перемещения. Точно одного прохода будет достаточно, чтобы получить что-нибудь боль-мень вменяемое? (Это я уже для повышения собственной образованности спрашиваю) |
|
![]() |
#6 |
Moderator
|
Цитата:
Сообщение от fed
![]() Попробуйте запустить пересчет по самой популярной номенклатуре с тем числом хелперов которые получились на предыдущем пункте, и помониторьте загрузку сервера БД. Если у вас там полный содом с утилизацией, памятью и очередью к диску - значит номер заведомо не пройдет и надо разбираться с вариантом N1 и принудительным закрытием.
|
|
![]() |
#7 |
Британский учённый
|
Цитата:
Сообщение от fed
![]()
Цитата:
Сообщение от fed
![]() 1. Написать собственную процедуру закрытия. Просто надо бежать по текущим складским остаткам в разрезе аналитик финансового склада и для каждой комбинации аналитик отсчитывать назад от текущей даты достаточно складских проводок в статусе "Закуплено" чтобы покрыть текущий складской остаток. Затем все остальные складские проводки надо пометить как закрытые (с использованием кода inventCostItemDim.updateServiceItems() как прототипа). Да - еще замечу что если у тебя в складских остатках, допустим 5 штук, а приходная проводка на 12, то тебе надо ее рассплитить на две проводки по 7 и 5 штук, первую закрыть, а вторую - оставить. Я бы лично пошел по этому пути.
[/LIST]
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще. |
|
![]() |
#8 |
Участник
|
Может быть проще будет сделать переброску остатков с помощью двух журналов типа "проводка" ?
1. Формируем журнал(ы) на списание на основании остатков, разносим, маркируем поля сопоставления во всех проводках. 2. Копируем этот журнал(ы) с отрицательным знаком, разносим, наслаждаемся ![]() Из плюсов: 1. Не надо возится со старыми проводками 2. Можно выправить себ-ть на день Ч Из минусов - теряется связь со старыми документами |
|
![]() |
#9 |
Британский учённый
|
Цитата:
Сообщение от fed
![]() Услуги. В версии 4.0sp1, появилась специальная ветка (inventCostItemDim,updateServiceItemTrans()), которая принудительно закрывает складскип проводки по услугам. Закрывает она их по умному, заполняя сопоставленное количество, сопоставленную сумму и создавая в складских сопоставлениях запись специального типа (InventSettletModel::ServiceItem). Из за того что все эти поля заполняются и запись сопоставления создается, такая проводка для всех (ну или почти всех) стандартных и нестандартных отчетов выглядит как закрытая и сопоставленная 'по честному'
1. Написать собственную процедуру закрытия. Просто надо бежать по текущим складским остаткам в разрезе аналитик финансового склада и для каждой комбинации аналитик отсчитывать назад от текущей даты достаточно складских проводок в статусе "Закуплено" чтобы покрыть текущий складской остаток. Затем все остальные складские проводки надо пометить как закрытые (с использованием кода inventCostItemDim.updateServiceItems() как прототипа). Да - еще замечу что если у тебя в складских остатках, допустим 5 штук, а приходная проводка на 12, то тебе надо ее рассплитить на две проводки по 7 и 5 штук, первую закрыть, а вторую - оставить. Я бы лично пошел по этому пути. В этом методе изначально цикл обрабатывает только проводки со статусами Sold и Purchased. Правильно ли я сделал убрав это условие при использовании метода для закрытия всех проводок? П.С. Если кому то нужен класс, могу выложить.
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще. |
|
![]() |
#10 |
Moderator
|
Цитата:
Сообщение от Link
![]() Написал класс для закрытия склада, есть вопросик по inventCostItemDim.updateServiceItems() :
В этом методе изначально цикл обрабатывает только проводки со статусами Sold и Purchased. Правильно ли я сделал убрав это условие при использовании метода для закрытия всех проводок? П.С. Если кому то нужен класс, могу выложить. |
|
|
За это сообщение автора поблагодарили: Link (1). |
![]() |
#11 |
Британский учённый
|
Цитата:
Сообщение от fed
![]() Не правильно. Закрытие в общем случае вообще не должно трогать проводки с другими статусами (оно правда иногда обновляет, но не закрывает, проводки со статусами Received и Deducted, но наш случай это явно не затрагивает). Вообще для твоего случая, любые проводки в статусах отличных от Purchased и Sold должны игнорироваться. (Это справедливо и для поиска проводок, составляющих остаток в inventSum.postedQty).
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще. |
|
![]() |
#12 |
Британский учённый
|
Упустил такой момент, в случае с негативными складскими остатками, нужно ли их покрывать?
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще. |
|
![]() |
#13 |
Moderator
|
Цитата:
Кстати - я не очень уверен что вы сможете перейти на стандартную себестоимость в Ax2009 по тем номенклатурам по которым остаток отрицательный. По крайней мере - я бы попробовал на 2009ой потренироваться... |
|
![]() |
#14 |
Британский учённый
|
Цитата:
Сообщение от fed
![]() Вообще лучше с ними разбираться и пытаться понять почему они негативные, а потом подправить дооприходованием зависших приходных документов. Но если это случилось - то да, надо их покрывать, отсчитать нужное количество расходных проводок и не помечать их как закрытые. Тогда после оприходования недостающих приходов (текущим периодом конечно), можно будет запустить нормальное закрытие и приходы с расходами закрыть друг на друга.
Кстати - я не очень уверен что вы сможете перейти на стандартную себестоимость в Ax2009 по тем номенклатурам по которым остаток отрицательный. По крайней мере - я бы попробовал на 2009ой потренироваться... Думаю, что мы попытаемся привести номенклатуры в порядок, перед переходом. Я сейчас хочу допилить наше закрытие, что бы можно было паралельно закрывать, ака хелперы. Как закроем склад, сразу будем тренероваться со стандартной себестоимостью. Спасибо за помощь!
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще. |
|
![]() |
#15 |
Участник
|
Еще неплохо бы проверить проводки по возвратам и маркированные проводки, с ними может быть весело
![]() |
|
Теги |
inventory closing, закрытие склада |
|
|