Рассмотрим пример документа приемки, основанном на некоторой заявке на поставку из учетной системы. Вот как бы он выглядел до начала какой-либо работы на терминале:
Шапка
Тип документа: «Приемка», ID: «PO1203122-08» Имя: «ПП №ЗПН1203122/08», Штрихкод: «120312208», Назначено: «Кладовщики», Поставщик: «ООО Мойдодыр», Распространять по штрихкоду: «Да», Признаки: {«Вводить партию»}.
Декларировано ( свойство DeclaredItems , тип - коллекция объектов типа DocumentItem , т.е. строк документа):
Товар |
Упаковка |
Кол-во план |
Кол-во факт |
Партия |
Срок годности |
Палета ( SSCC ) |
<…и т.д.> |
---|---|---|---|---|---|---|---|
0001; Умывальник |
061; шт. |
4 |
0 |
- |
- |
- | |
4101; Мыло душистое |
060; короб |
17 |
0 |
- |
- |
- | |
0010; Зубной порошок |
070; кг |
20 |
0 |
- |
- |
- | |
7564; Густой гребешок |
061; шт. |
300 |
0 |
- |
- |
- | |
7564; Густой гребешок |
061; шт. |
100 |
0 |
- |
- |
- |
Реально ( свойство CurrentItems , тип - коллекция объектов типа DocumentItem , т.е. строк документа):
Товар |
Упаковка |
Кол-во план |
Кол-во факт |
Партия |
Срок годности |
Палета ( SSCC ) |
<…и т.д.> |
---|---|---|---|---|---|---|---|
пусто |
Привязанные ошибки (свойство Errors, тип – коллекция объектов типа Error, т.е. описаний ошибок)
Имя |
ID |
Комментарий |
Штрихкод |
Фатальная |
Поля |
---|---|---|---|---|---|
пусто |
Привязки признаков (свойство ClassificatorUsings , тип – коллекция объектов типа ClassificatorUsing , т.е. применений признака к объекту с указанным кодом)
Код признака |
Код объекта |
---|---|
пусто |
конец
А вот как бы он выглядел после окончания приемки на терминале:
Шапка
Тип документа: «Приемка», ID: «PO1203122-08» Имя: «ПП №ЗПН1203122/08», Штрихкод: «120312208», Назначено: «Кладовщики», Поставщик: «ООО Мойдодыр», Распространять по штрихкоду: «Да», Признаки: {«Вводить партию», «Код состояния транспортного средства: ok»}, Номер ворот: «5».
Декларировано ( свойство DeclaredItems , тип - коллекция объектов типа DocumentItem , т.е. строк документа):
Товар |
Упаковка |
Кол-во план |
Кол-во факт |
Партия |
Срок годности |
Палета ( SSCC ) |
<…и т.д.> |
---|---|---|---|---|---|---|---|
0001; Умывальник |
061; шт. |
4 |
0 |
- |
- |
- | |
4101; Мыло душистое |
060; короб |
17 |
0 |
- |
- |
- | |
0010; Зубной порошок |
070; кг |
20 |
0 |
- |
- |
- | |
7564; Густой гребешок |
061; шт. |
300 |
0 |
- |
- |
- | |
7564; Густой гребешок |
061; шт. |
100 |
0 |
- |
- |
- | |
3370; Полотенце пушистое |
061; шт. |
0 |
50 |
- |
- |
- |
Реально ( свойство CurrentItems , тип - коллекция объектов типа DocumentItem , т.е. строк документа):
Товар |
Упаковка |
Кол-во план |
Кол-во факт |
Партия |
Срок годности |
Палета ( SSCC ) |
<…и т.д.> |
---|---|---|---|---|---|---|---|
0001; Умывальник |
061; шт. |
3 |
3 |
- |
- |
2000010 |
|
4101; Мыло душистое |
060; короб |
9 |
9 |
СМ121007 |
12.04.08 |
2000011 |
|
4101; Мыло душистое |
060; короб |
8 |
9 |
СМ121007 |
12.04.08 |
2000012 |
|
4101; Мыло душистое |
060; короб |
0 |
4 |
СМ121007 |
12.04.08 |
2000013 |
|
3370; Полотенце пушистое |
061; шт. |
0 |
25 |
У1415224 |
- |
2000014 |
|
3370; Полотенце пушистое |
061; шт. |
0 |
25 |
Е1363462 |
- |
2000017 |
|
0010; Зубной порошок |
060; короб |
5 |
6 |
131108РР |
13.11.12 |
2000019 |
|
7564; Густой гребешок |
061; шт. |
300 |
300 |
- |
- |
2000020 |
|
7564; Густой гребешок |
061; шт. |
100 |
20 |
- |
- |
2000020 |
|
Привязанные ошибки (свойство Errors, тип – коллекция объектов типа Error, т.е. описаний ошибок)
Имя |
ID |
Комментарий |
Штрихкод |
Фатальная |
Поля |
---|---|---|---|---|---|
«Поддон битый» |
101 |
- |
101 |
нет |
Кол-во: 3 Тип: «Евро» |
Привязки признаков (свойство ClassificatorUsings , тип – коллекция объектов типа ClassificatorUsing , т.е. применений признака к объекту с указанным кодом)
Код признака |
Код объекта |
---|---|
772; «Брак» |
2000013 (Палета) |
конец
Чтобы получить из первого документа второй, кладовщик сделал следующие вещи:
На примере видно, как Mobile SMARTS работает с количествами и единицами измерения план/факт в строках документа. Для декларированных строк в колонке «план» отображается плановое количество, полученное из учетной системы. А в колонке «факт» после исполнения операции видно сколько в итоге было принято в плановых единицах измерения. Например, для пушистых полотенец, которые первоначально отсутствовали в плане, Mobile SMARTS была заведена новая строка декларированной части с плановым количеством «0». Для строк реальной части в колонке «план» отображается то количество из плана, которое приходится на данную конкретную реально принятую строку, т.е. сколько из плана она выполнила уже в реально принимаемых единицах измерения. Например, для зубного порошка там стоит 5 коробов (по 4 кг) – ведь по плану всего надо было принять 20 кг. А в колонке «факт» отображается тот факт, который был введен кладовщиком, сканирован с этикетки поставщика, либо был накоплен в результате нескольких вводов/ сканирований (реальные строки документа могут объединяться, если они отличаются только количеством – это определяется настройкой конфигурации).
Все это необходимо для того, чтобы упростить построение на терминале списков просмотра план/факт и алгоритмов, проверяющих недобор/переполнение.
Еще одно важное замечание: декларативная часть документа может содержать как много строк с одной и той же номенклатурой, так и много строк с одной и той же упаковкой и всем прочим. Каждая строка реальной части содержит ссылку на строку плана, которой она соответствует. Именно потому для тех реальных строк, для которых в плане ничего не предусмотрено, создаются новые плановые строки с плановым количеством «0». А те реальные строки, которые разносятся по нескольким строкам плана, разбиваются на несколько реальных строк так, чтобы каждой новой реальной строке соответствовала только одна строка плана. В целом алгоритм разноски сводится к следующему: