|
Подбор товар через сканер при условии - что есть брак | ☑ | ||
---|---|---|---|---|
0
lamme
11.06.22
✎
20:09
|
Приветствую.
Сразу скажу. Идей - как решить - нет. От слова совсем. То одно не получается , то другое итак Вводные данные. Ут10 Есть документ. Поступление товаров. Типовой. Используются характеристики. В него добавлено 2 доп колонки - КоличествоОтсканированного и КоличествоОтсканированногоБрака. В одном документе могут быть несколько строк с одним товаром, но разными характеристиками. Например Товар1 / Характеристика1 / 10 Товар2 / Характеристика2 / 8 Товар3 / Характеристика3 / 6 Что необходимо придумать. - идет сканирование товара - который пришел. Кладовщик берет товар, сканирует (поиск по артикулу в ТЧ документа) - выставляет количество 7. указывает , брак это или нет (Булево) и дальше - надо распределить эти 7 штук в документе. Должно получится, например Товар1 / Характеристика1 / 10 / 7 Товар2 / Характеристика2 / 8 / 0 Товар3 / Характеристика3 / 6 / 0 Потом берет сл товар. Сканирует. Вводит 5 шт. Распределяется например Товар1 / Характеристика1 / 10 / 10 Товар2 / Характеристика2 / 8 / 3 Товар3 / Характеристика3 / 6 / 0 Сл скнирует. Вводит количество = 1. И укахывает - что это БРАК Товар1 / Характеристика1 / 10 / 10 / 0 Товар2 / Характеристика2 / 8 / 3 / 1 Товар3 / Характеристика3 / 6 / 0 / 0 Следующее сканирование. Количество = 4 Товар1 / Характеристика1 / 10 / 10 / 0 Товар2 / Характеристика2 / 8 / 7 / 1 Товар3 / Характеристика3 / 6 / 0 / 0 ну и тд ... те любое количество сканирований. Но должно все заполниться по количеству товара в документе Какие строки выбираются при сканировании - произвольные. Главное чтобы Количество (в документе) = КоличествоОтсканированного + КоличествоОтсканированногоБрака. При этом отсканировано по факту может быть больше, чем в документе Те если в документе 10 8 6 (итого 24) то по факту прихода - товара может быть 25. и последний - 25-ый ... 26-ый ... те избыток -так же должен упасть на любую строку. Но при этом весь избыток должен быть только на одной строке товара. о .. Я смог только распределить пропорционально - когда товар всегда сканируется нормальный, не бракованный. Прошу помощи |
|||
1
Garykom
гуру
11.06.22
✎
22:44
|
Другую ТЧ делай
|
|||
2
Garykom
гуру
11.06.22
✎
22:46
|
Исходную типовую ТЧ не трогаешь
Делаешь вторую или лучше сразу две новые ТЧ для приемки-сканирования По исходной ищешь и добавляешь во вторую "Не брак" или в третью "Брак" Ибо может быть так что недобор или перебор товара пришлют или пересорт Так у тебя и исходные по бумагам есть и что насканировано Далее сам думай |
|||
3
NorthWind
12.06.22
✎
14:28
|
А стоит ли вообще для такой цели курочить документы? Может, разумнее написать АРМ-обработку, подключать из нее необходимые для работы документы, из нее же выполнять сканирование, распределять товары по документам, затем перепроводить?
|
|||
4
NorthWind
12.06.22
✎
14:32
|
и, кстати, если юзеру помимо ШК нужно будет указывать количество и определять брак или не брак - может, лучше ТСД, а не сканер? Хотя это по вкусу, если все равно это все будет рядом с компом, то можно и на компе...
|
|||
5
NorthWind
12.06.22
✎
18:08
|
а вот в чем проблема с распределением - я, честно сказать, не понял. ТЗ и отбор строк в помощь, дальше чисто механическая работа по проверке правил предпочтения и рассовыванию значений. Код, скорее всего, выйдет достаточно громоздкий, но ничего заумного тут нет...
|
|||
6
Злопчинский
12.06.22
✎
18:13
|
(5) Причем, такиз задач в 1С - где нет ничего заумного - большинство...
|
|||
7
lamme
12.06.22
✎
23:13
|
(3)
так и есть есть доп обработка. которая берет данные из документа и при сканировании и ввода количества - распределяет это количество в исходный документ. |
|||
8
lamme
12.06.22
✎
23:13
|
(4)
тсд - нет сканер - да не мое условие |
|||
9
lamme
12.06.22
✎
23:13
|
(5)
проблема именно в придумывании этого кода чтобы учесть все |
|||
10
lamme
12.06.22
✎
23:16
|
хотя я чем дальше об этом думаю - тем понимаю
что если есть код - который распределяет количество нормального товара по строкам документа (при сравнивании с колонкой -количество) то разница между этим алгоритмом и алгоритмом распределения брака - никакой только у НЕ брака идет сравнение между отксанированным и количеством а у брака - между отсканированным(браком) и (количество+скан не брака) ну те распределение то же колонки сравнения разные |
|||
11
NorthWind
13.06.22
✎
08:51
|
Отбираем в отдельный массив все строки с текущим отсканированным товаром. Далее присваиваем Остаток = Количество отсканированного товара, проходим в цикле по всем строкам массива. Проверяем у каждой строки количество свободных слотов (к-во в документе минус хорошее минус брак). Где оно больше нуля — распределяем из Остатка, и Остаток тут же уменьшаем на это количество. Переходим к следующей строке. Продолжаем до тех пор пока Остаток не станет 0 или пока строки не закончатся.
После отработки алгоритма сравниваем Остаток с 0. Если Остаток=0, заканчиваем работу. Иначе, если Остаток оказался больше 0, это означает, что отсканирован избыток товара. Проходим по строкам и выбираем такую, где присутствует избыток, такая строка у нас по идее должна быть одна. Либо, если ее нет, тогда выбираем первую по счету строку, где избыток равен нулю. Добавляем туда наш избыток. Таким образом у нас всегда избыток будет падать на одну и ту же строку. Ну и да, мне тоже кажется что алгоритм один и тот же что для брака, что для хорошего, отличается только колонка, на которую кидать распределенное количество. |
|||
12
NorthWind
13.06.22
✎
08:56
|
Можно подумать о сортировке массива по количеству слотов перед работой алгоритма, чтобы реализовать "жадную" опцию - по возможности сначала заполнять такие строки, где свободных слотов больше всего или меньше всего. Но необязательно.
|
|||
13
Garykom
гуру
13.06.22
✎
10:32
|
(10) не колонки а ТЧ
ибо что ты будешь делать когда в отсканированном товар/характеристика, которых нет в накладной? т.е. по факту пришло другое, чего нет в документах |
|||
14
NorthWind
13.06.22
✎
10:41
|
(13) этого нет в изначальной постановке. Скорее всего нужно будет ругнуться на экран пользователю, потому что у него не хватит данных - помимо Товара, нужна еще Характеристика, которую неоткуда будет взять.
Но, может, и тупо добавить строку. |
|||
15
lamme
13.06.22
✎
20:54
|
решено ..
по факту - п10 окзаался верен разница только в итоговой колонке - куда идет расчет всем спасибо |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |