07.04.2009, 11:48 | #1 |
Участник
|
Nav 4
Нужно отследить сколько по конкретной закупке остается товара. После покупки могут производится перемещения со одного склада на другие ,а потом обратно. И в этом перемещении может быть товар с из другой закупки. Я отслеживаю с\с товаров при перемещении и отсеиваю не нужное кол-во. Проблема состоит в том, что в одном перемещении могут быть товары из разных закупок, но с одинаковыми с\с и тогда отследить из какой конкретной закупки ушел этот товар не получается. |
|
07.04.2009, 11:57 | #2 |
Участник
|
Можно по операциям применения. Перемещения не суммируют операции (положительные), а переносят их как есть с одного склада на другой, поэтому информация не теряется, отследить можно.
У меня была такая задача, я решил ее добавлением поля в ILE, подстановкой туда номера документа для независимых положительных операций и протягивания этого поля для зависимых положительных операций (перемещений). Анализ в этом случае делается по полю "Остаток Кол-во". Проблемы будут только когда было списание с нескольких положительных операций, а потом решили сделать точный полный или частичный возврат - здесь нужны более серьезные доработки для точного указания применения (не только номера операции, но еще и конкретного прихода). |
|
07.04.2009, 12:42 | #3 |
Участник
|
|
|
07.04.2009, 17:57 | #4 |
Участник
|
Если требуются остатки на конкретную дату, а не на сегодня, то строить отчет на поле "Остаток кол-во" нельзя
Построить такой отчет можно без доп. полей, но правда работать он будет достаточно долго. По каждому товару нужно создать темповую товар книгу, куда изначально сложить интересующие операции покупки, затем по отрицательным операциям(не перемещениям) по этому товару найти исходную операцию (функция ниже), если она совпадает с одной из интересующих операций покупки, то в темптаблице уменьшить кол-во. Ну и затем показать все что осталось в темповой таблице. Дополнительных полей создавать не требуется, учет переделывать тоже не нужно. Да, это не будет работать, если учет по средней. Код: GetIncomingOperation(EntryNo : Integer) IncomingEntry : Decimal ItemLedgerEntry.GET(EntryNo); IF ItemLedgerEntry."Entry Type" = ItemLedgerEntry."Entry Type" :: Transfer THEN BEGIN ItemAppEntry.RESET; ItemAppEntry.SETRANGE("Item Ledger Entry No.",EntryNo); IF ItemAppEntry.FIND('-') THEN IncomingEntry := GetIncomingOperation(ItemAppEntry."Transferred-from Entry No."); END ELSE IncomingEntry := EntryNo; |
|
07.04.2009, 18:54 | #5 |
Участник
|
Цитата:
Сообщение от romtex
Если требуются остатки на конкретную дату, а не на сегодня, то строить отчет на поле "Остаток кол-во" нельзя
Построить такой отчет можно без доп. полей, но правда работать он будет достаточно долго. По каждому товару нужно создать темповую товар книгу, куда изначально сложить интересующие операции покупки, затем по отрицательным операциям(не перемещениям) по этому товару найти исходную операцию (функция ниже), если она совпадает с одной из интересующих операций покупки, то в темптаблице уменьшить кол-во. Ну и затем показать все что осталось в темповой таблице. Дополнительных полей создавать не требуется, учет переделывать тоже не нужно. Да, это не будет работать, если учет по средней. Код: GetIncomingOperation(EntryNo : Integer) IncomingEntry : Decimal ItemLedgerEntry.GET(EntryNo); IF ItemLedgerEntry."Entry Type" = ItemLedgerEntry."Entry Type" :: Transfer THEN BEGIN ItemAppEntry.RESET; ItemAppEntry.SETRANGE("Item Ledger Entry No.",EntryNo); IF ItemAppEntry.FIND('-') THEN IncomingEntry := GetIncomingOperation(ItemAppEntry."Transferred-from Entry No."); END ELSE IncomingEntry := EntryNo; |
|