Списание материалов: 2 ошибки

  • Автор темы Автор темы kaetank
  • Дата начала Дата начала

kaetank

Форумчанин
Списание материалов: 2 ошибки

При формировании операции "Списание материалов" из "Выпуска готовой продукции":
1.если материал (деталь и т.д.) повторяется, то количество не суммируется, а записывается последнее.
2.Списание идет на всю глубину раздеталировки. Еще в 1.х версиях была настройка: 1 уровень или по всем уровням. непонятно, почему убрали. В производстве чаще как-раз нужно списывать 1 уровень.
В принципе, все решается в одной функции: "СписаниеМатериаловРекурсия", там и суммируется с ошибкой, и там же можно проверить признак 1 уровня.
Для одного клиентоа мне поправить не долго, но каждый раз после обновления восстанавливать правки влом :).
 
При формировании операции "Списание материалов" из "Выпуска готовой продукции":
1.если материал (деталь и т.д.) повторяется, то количество не суммируется, а записывается последнее.

А в этом есть реальная необходимость? Может лучше добавить проверку на запрет ввода дубля?

2.Списание идет на всю глубину раздеталировки. Еще в 1.х версиях была настройка: 1 уровень или по всем уровням. непонятно, почему убрали. В производстве чаще как-раз нужно списывать 1 уровень.
В принципе, все решается в одной функции: "СписаниеМатериаловРекурсия", там и суммируется с ошибкой, и там же можно проверить признак 1 уровня.
Для одного клиентоа мне поправить не долго, но каждый раз после обновления восстанавливать правки влом :).

Там есть поле "Отдельная сборка". Укажите это в изделии, тогда дальнейшего списания не будет.
 
А в этом есть реальная необходимость? Может лучше добавить проверку на запрет ввода дубля?
Есть.
Именно для случая списания на всю глубину сборки.
в разные узлы часто входят одни и те же детали. Особенно часто крепеж.
 
Там есть поле "Отдельная сборка". Укажите это в изделии, тогда дальнейшего списания не будет.

Но тогда дальнейшего списания не будет никогда.
У меня случай с мелкосерийным производством - сегодня они делают узлы на склад, потом из них собирают изделия,(т.е. надо списывать изделие до узла, без дальнейшей раздеталировки)
а через неделю - без промежуточного хранения узлов, сразу регистрируют выпуск изделия - списывать надо до конца.
 
Есть.
Именно для случая списания на всю глубину сборки.
в разные узлы часто входят одни и те же детали. Особенно часто крепеж.

Ок, посмотрим этот момент. В принципе проблему можно в проекты занести.

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

Ну тут либо переключатель переставлять, либо создавать два узла. Один "с раздеталировкой", другой без и выбирать когда надо один, когда надо другой.
 
При формировании операции "Списание материалов" из "Выпуска готовой продукции":
1.если материал (деталь и т.д.) повторяется, то количество не суммируется, а записывается последнее.
Данная проблема есть только в случае, когда один и тот же материал встречается более одного раза непосредственно у изделия или полуфабриката, например:
Шкаф:
  • Дощечка - 5шт
  • Дощечка - 3шт <- вторая позиция материала которая приводит к ошибке.
  • Гвоздь - 10шт
  • Дверь - 2шт (полуфабрикат)

Где "Дверь" состоит из:
  • Дощечка - 1шт <- не мешает правильному списанию дощечки указанной в шкафе
  • Гвоздь - 2шт
 
А если детали одинаковые, но разные атрибуты?

Данная проблема есть только в случае, когда один и тот же материал встречается более одного раза непосредственно у изделия или полуфабриката, например:
Шкаф:
  • Дощечка - 5шт
  • Дощечка - 3шт <- вторая позиция материала которая приводит к ошибке.
  • Гвоздь - 10шт
  • Дверь - 2шт (полуфабрикат)

Данила, а если вариант:
1. Дощечка (атрибут=сосна) - 2 шт.
2. Дощечка (атрибут=береза) - 5 шт.

, то это приведет к ошибке?
 
Данная проблема есть только в случае, когда один и тот же материал встречается более одного раза непосредственно у изделия или полуфабриката, например:
Шкаф:
  • Дощечка - 5шт
  • Дощечка - 3шт <- вторая позиция материала которая приводит к ошибке.
  • Гвоздь - 10шт
  • Дверь - 2шт (полуфабрикат)
Где "Дверь" состоит из:
  • Дощечка - 1шт <- не мешает правильному списанию дощечки указанной в шкафе
  • Гвоздь - 2шт
В этом случае да
а в случае
антресоль для шкафа:
  • Дощечка - 5шт
  • Гвоздь - 10шт
  • Дверь - 2шт (полуфабрикат)
тумбочка:
  • Дощечка - 3шт
  • Гвоздь - 15шт
  • Дверь - 2шт (полуфабрикат)
Где "Дверь" состоит из:
  • Дощечка - 1шт
  • Гвоздь - 2шт
Если списывать одновременно антресоль и тумбочку, дощечка и гвоздь из дверей будут списаны по последнему вхождению - смотри индекс в массиве: инд = СТР0(сб.код_товара, 6) + "#" + ?(тов.отдельное_произв И НЕ сб.код_товара ИЗ для_списания, "1", "0") + "#"
+ СТР0(сб.код_материала, 6) + "#" + СТР0(сб.аналитика1_ид, 6) + "#" + СТР0(сб.аналитика2_ид, 6) , он будет одинаковый для прохода по обоим "дверям"
 
Ошибка в методе расчета остатка

в статическом такое возможно.в динамичеком нет!
 
Для своего случая я решил вопросы следующим образом:
1. С повтором материала в одной сборке:
В функции списание материалов
было:
НормаРасхМатер!инд = СТР(сб.кол_с_отх) + "#" + СТР(?(сб.кол_товара = 0, 1, сб.кол_товара)) + "#" + СТР(сб.кол_товара)

стало:

ЕСЛИ инд ИЗ НормаРасхМатер ТО
нор_поз=сб.кол_с_отх
нор_собр=ЗНАЧ(СЛОВО(1,НормаРасхМатер!инд,"#"))
НормаРасхМатер!инд = СТР(нор_поз+нор_собр) + "#" + СТР(?(сб.кол_товара = 0, 1, сб.кол_товара)) + "#" + СТР(сб.кол_товара)
ИНАЧЕ
НормаРасхМатер!инд = СТР(сб.кол_с_отх) + "#" + СТР(?(сб.кол_товара = 0, 1, сб.кол_товара)) + "#" + СТР(сб.кол_товара)
КОНЕЦ_ЕСЛИ

2. С вариантами списания до конца или 1 уровень:
Узлам проставил признак "Отдельная сборка",
Добавил определение ТИП_СПИСАНИЯ_МАТ=1/0 (1- один уровень,0 -все)
В функции списание материалов
было:
инд = СТР0(сб.код_товара, 6) + "#" + ?(тов.отдельное_произв И (НЕ сб.код_товара ИЗ для_списания ), "1", "0") + "#"
+ СТР0(сб.код_материала, 6) + "#" + СТР0(сб.аналитика1_ид, 6) + "#" + СТР0(сб.аналитика2_ид, 6)
Стало :
инд = СТР0(сб.код_товара, 6) + "#" + ?(тов.отдельное_произв И (НЕ сб.код_товара ИЗ для_списания И ТИП_СПИСАНИЯ_МАТ=1), "1", "0") + "#"
+ СТР0(сб.код_материала, 6) + "#" + СТР0(сб.аналитика1_ид, 6) + "#" + СТР0(сб.аналитика2_ид, 6)
так работает, и изменения в коде минимальные.
 
Назад
Сверху