Ниже — каждый сценарий отдельной записью. Как добавить пример к себе:
личный кабинет → раздел «Сценарии операций» → «Новый сценарий» →
вставьте JSON в большое поле → «Сохранить как новый сценарий». Что
означает каждое поле и что можно менять — в разделе
«Редактор».
Надписи на экране (title) и голосовые подсказки
(tts) меняются свободно. Блоки resolve,
pre_actions и field_mappings лучше оставлять
как есть. Вставляете как новый — задайте свой id, чтобы он
не совпал с существующим.
Базовые операции
Засеваются на каждый аккаунт — доступны сразу после установки.
01
Приёмка
Приём товара от поставщика по готовому документу из МойСклад. Оператор сканирует позиции и вводит количество, факт сохраняется в приёмку. Есть отдельная ветка сканирования кодов маркировки «Честный знак» — она включается только для маркированного товара.
process_id: default-receive-v1 · operation_type: receive · засевается на аккаунт
Как идёт
- Отсканируйте штрихкод товара — сканирование
- Укажите количество — число
- Отсканируйте код маркировки — сканирование (только для маркированного товара («Честный знак»))
- Завершить приёмку? — да / нет
- Приёмка завершена — завершение
Ключевые поля
- Тип операции — receive: приёмка (в МойСклад — Приёмка/supply).
- incremental_save: true — позиции уходят в документ сразу при сканировании, а не только в конце.
- field_mappings → коды маркировки «Честный знак» (marking_codes → trackingCodes).
JSON целиком
{
"id": "default-receive-v1",
"name": "Приёмка",
"operation_type": "receive",
"version": 1,
"start_step": "scan_barcode",
"incremental_save": true,
"field_mappings": [
{
"line_field": "marking_codes",
"ms_target": "trackingCodes"
}
],
"steps": [
{
"id": "scan_barcode",
"type": "scan",
"field": "barcode",
"title": "Отсканируйте штрихкод товара",
"required": true,
"next": "quantity",
"next_map": {
"готово": "confirm_finish",
"завершить": "confirm_finish",
"стоп": "confirm_finish"
},
"tts": "Отсканируйте штрихкод",
"resolve": {
"search_types": [
"barcode",
"article",
"fuzzy"
],
"targets": {
"assortment_id": "id",
"assortment_name": "name",
"gtin": "gtin",
"marking_mode": "marking_mode"
},
"required": true
},
"marking_divert": "scan_marking_code"
},
{
"id": "quantity",
"type": "number",
"field": "quantity",
"title": "Укажите количество",
"required": true,
"next": "scan_barcode",
"min": 0,
"tts": "Сколько штук?",
"pre_actions": [
{
"type": "collect_items",
"fields": [
"assortment_id",
"assortment_name",
"quantity"
]
}
]
},
{
"id": "scan_marking_code",
"type": "scan",
"field": "marking_code",
"title": "Отсканируйте код маркировки",
"required": false,
"next": "scan_marking_code",
"next_map": {
"готово": "confirm_finish",
"дальше": "scan_barcode",
"завершить": "confirm_finish",
"стоп": "confirm_finish",
"товар": "scan_barcode"
},
"tts": "Отсканируйте код маркировки"
},
{
"id": "confirm_finish",
"type": "confirm",
"field": "confirm_finish",
"title": "Завершить приёмку?",
"required": true,
"next_map": {
"false": "scan_barcode",
"true": "finish"
},
"tts": "Завершить приёмку?"
},
{
"id": "finish",
"type": "finish",
"field": "",
"title": "Приёмка завершена",
"required": false,
"tts": "Приёмка завершена"
}
]
}
02
Отгрузка
Отгрузка покупателю по документу из МойСклад: сканирование позиций и количество, факт уходит в отгрузку. Как и в приёмке, для маркированного товара добавляется сканирование кодов «Честный знак».
process_id: default-demand-v1 · operation_type: demand · засевается на аккаунт
Как идёт
- Отсканируйте штрихкод товара — сканирование
- Укажите количество — число
- Отсканируйте код маркировки — сканирование (только для маркированного товара («Честный знак»))
- Завершить отгрузку? — да / нет
- Отгрузка завершена — завершение
Ключевые поля
- Тип операции — demand: отгрузка (Отгрузка/demand).
- incremental_save: true — позиции уходят в документ сразу при сканировании, а не только в конце.
- field_mappings → коды маркировки «Честный знак» (marking_codes → trackingCodes).
JSON целиком
{
"id": "default-demand-v1",
"name": "Отгрузка",
"operation_type": "demand",
"version": 1,
"start_step": "scan_barcode",
"incremental_save": true,
"field_mappings": [
{
"line_field": "marking_codes",
"ms_target": "trackingCodes"
}
],
"steps": [
{
"id": "scan_barcode",
"type": "scan",
"field": "barcode",
"title": "Отсканируйте штрихкод товара",
"required": true,
"next": "quantity",
"next_map": {
"готово": "confirm_finish",
"завершить": "confirm_finish",
"стоп": "confirm_finish"
},
"tts": "Отсканируйте штрихкод",
"resolve": {
"search_types": [
"barcode",
"article",
"fuzzy"
],
"targets": {
"assortment_id": "id",
"assortment_name": "name",
"gtin": "gtin",
"marking_mode": "marking_mode"
},
"required": true
},
"marking_divert": "scan_marking_code"
},
{
"id": "quantity",
"type": "number",
"field": "quantity",
"title": "Укажите количество",
"required": true,
"next": "scan_barcode",
"min": 0,
"tts": "Сколько штук?",
"pre_actions": [
{
"type": "collect_items",
"fields": [
"assortment_id",
"assortment_name",
"quantity"
]
}
]
},
{
"id": "scan_marking_code",
"type": "scan",
"field": "marking_code",
"title": "Отсканируйте код маркировки",
"required": false,
"next": "scan_marking_code",
"next_map": {
"готово": "confirm_finish",
"дальше": "scan_barcode",
"завершить": "confirm_finish",
"стоп": "confirm_finish",
"товар": "scan_barcode"
},
"tts": "Отсканируйте код маркировки"
},
{
"id": "confirm_finish",
"type": "confirm",
"field": "confirm_finish",
"title": "Завершить отгрузку?",
"required": true,
"next_map": {
"false": "scan_barcode",
"true": "finish"
},
"tts": "Завершить отгрузку?"
},
{
"id": "finish",
"type": "finish",
"field": "",
"title": "Отгрузка завершена",
"required": false,
"tts": "Отгрузка завершена"
}
]
}
03
Перемещение
Перемещение товара между складами по документу. Требуется минимум два склада в МойСклад — на аккаунте с одним складом операция не запустится.
process_id: default-move-v1 · operation_type: move · засевается на аккаунт
Как идёт
- Отсканируйте штрихкод товара — сканирование
- Укажите количество — число
- Отсканируйте код маркировки — сканирование (только для маркированного товара («Честный знак»))
- Завершить перемещение? — да / нет
- Перемещение завершено — завершение
Ключевые поля
- Тип операции — move: перемещение (Перемещение/move).
- incremental_save: true — позиции уходят в документ сразу при сканировании, а не только в конце.
- field_mappings → коды маркировки «Честный знак» (marking_codes → trackingCodes).
JSON целиком
{
"id": "default-move-v1",
"name": "Перемещение",
"operation_type": "move",
"version": 1,
"start_step": "scan_barcode",
"incremental_save": true,
"field_mappings": [
{
"line_field": "marking_codes",
"ms_target": "trackingCodes"
}
],
"steps": [
{
"id": "scan_barcode",
"type": "scan",
"field": "barcode",
"title": "Отсканируйте штрихкод товара",
"required": true,
"next": "quantity",
"next_map": {
"готово": "confirm_finish",
"завершить": "confirm_finish",
"стоп": "confirm_finish"
},
"tts": "Отсканируйте штрихкод",
"resolve": {
"search_types": [
"barcode",
"article",
"fuzzy"
],
"targets": {
"assortment_id": "id",
"assortment_name": "name",
"gtin": "gtin",
"marking_mode": "marking_mode"
},
"required": true
},
"marking_divert": "scan_marking_code"
},
{
"id": "quantity",
"type": "number",
"field": "quantity",
"title": "Укажите количество",
"required": true,
"next": "scan_barcode",
"min": 0,
"tts": "Сколько штук?",
"pre_actions": [
{
"type": "collect_items",
"fields": [
"assortment_id",
"assortment_name",
"quantity"
]
}
]
},
{
"id": "scan_marking_code",
"type": "scan",
"field": "marking_code",
"title": "Отсканируйте код маркировки",
"required": false,
"next": "scan_marking_code",
"next_map": {
"готово": "confirm_finish",
"дальше": "scan_barcode",
"завершить": "confirm_finish",
"стоп": "confirm_finish",
"товар": "scan_barcode"
},
"tts": "Отсканируйте код маркировки"
},
{
"id": "confirm_finish",
"type": "confirm",
"field": "confirm_finish",
"title": "Завершить перемещение?",
"required": true,
"next_map": {
"false": "scan_barcode",
"true": "finish"
},
"tts": "Завершить перемещение?"
},
{
"id": "finish",
"type": "finish",
"field": "",
"title": "Перемещение завершено",
"required": false,
"tts": "Перемещение завершено"
}
]
}
04
Инвентаризация
Пересчёт остатков по складу. Оператор сканирует товар и вводит фактическое количество; расхождения с учётом видно по итогам инвентаризации.
process_id: default-inventory-v1 · operation_type: inventory · засевается на аккаунт
Как идёт
- Отсканируйте штрихкод товара — сканирование
- Укажите фактическое количество — число
- Завершить инвентаризацию и сохранить данные? — да / нет
- Инвентаризация завершена — завершение
Ключевые поля
- Тип операции — inventory: инвентаризация (Инвентаризация).
- incremental_save: true — позиции уходят в документ сразу при сканировании, а не только в конце.
JSON целиком
{
"id": "default-inventory-v1",
"name": "Инвентаризация",
"operation_type": "inventory",
"version": 1,
"start_step": "scan_barcode",
"incremental_save": true,
"steps": [
{
"id": "scan_barcode",
"type": "scan",
"field": "barcode",
"title": "Отсканируйте штрихкод товара",
"required": true,
"next": "quantity",
"next_map": {
"готово": "confirm_finish",
"завершить": "confirm_finish",
"стоп": "confirm_finish"
},
"tts": "Отсканируйте штрихкод",
"resolve": {
"search_types": [
"barcode",
"article",
"fuzzy"
],
"targets": {
"assortment_id": "id",
"assortment_name": "name",
"gtin": "gtin",
"marking_mode": "marking_mode"
},
"required": true
}
},
{
"id": "quantity",
"type": "number",
"field": "quantity",
"title": "Укажите фактическое количество",
"required": true,
"next": "scan_barcode",
"min": 0,
"tts": "Сколько штук?",
"pre_actions": [
{
"type": "collect_items",
"fields": [
"assortment_id",
"assortment_name",
"quantity"
]
}
]
},
{
"id": "confirm_finish",
"type": "confirm",
"field": "confirm_finish",
"title": "Завершить инвентаризацию и сохранить данные?",
"required": true,
"next_map": {
"false": "scan_barcode",
"true": "finish"
},
"tts": "Завершить инвентаризацию?"
},
{
"id": "finish",
"type": "finish",
"field": "",
"title": "Инвентаризация завершена",
"required": false,
"tts": "Инвентаризация завершена"
}
]
}
05
Списание брака и сроков
Списание брака и просроченного товара. После количества оператор диктует причину — она переносится в позицию документа МойСклад.
process_id: default-loss-v1 · operation_type: loss · засевается на аккаунт
Как идёт
- Отсканируйте или назовите товар для списания — сканирование
- Укажите количество для списания — число
- Продиктуйте причину списания — текст (причина попадёт в документ)
- Завершить списание? — да / нет
- Списание завершено — завершение
Ключевые поля
- Тип операции — loss: списание (Списание/loss).
- incremental_save: true — позиции уходят в документ сразу при сканировании, а не только в конце.
- field_mappings → коды маркировки «Честный знак» (marking_codes → trackingCodes).
- field_mappings → причина списания (reason → reason).
JSON целиком
{
"id": "default-loss-v1",
"name": "Списание брака и сроков",
"operation_type": "loss",
"version": 1,
"start_step": "scan_barcode",
"incremental_save": true,
"field_mappings": [
{
"line_field": "marking_codes",
"ms_target": "trackingCodes"
},
{
"line_field": "reason",
"ms_target": "reason"
}
],
"steps": [
{
"id": "scan_barcode",
"type": "scan",
"field": "barcode",
"title": "Отсканируйте или назовите товар для списания",
"required": true,
"next": "quantity",
"next_map": {
"готово": "confirm_finish",
"завершить": "confirm_finish",
"стоп": "confirm_finish"
},
"tts": "Назовите или отсканируйте товар",
"resolve": {
"search_types": [
"barcode",
"article",
"fuzzy"
],
"targets": {
"assortment_id": "id",
"assortment_name": "name",
"gtin": "gtin",
"marking_mode": "marking_mode"
},
"required": true
},
"marking_divert": "reason"
},
{
"id": "quantity",
"type": "number",
"field": "quantity",
"title": "Укажите количество для списания",
"required": true,
"next": "reason",
"min": 0,
"tts": "Сколько списать?"
},
{
"id": "reason",
"type": "text",
"field": "reason",
"title": "Продиктуйте причину списания",
"required": true,
"next": "scan_barcode",
"tts": "Назовите причину списания",
"pre_actions": [
{
"type": "collect_items",
"fields": [
"assortment_id",
"assortment_name",
"quantity",
"reason"
]
}
],
"marking_divert": "scan_marking_code"
},
{
"id": "confirm_finish",
"type": "confirm",
"field": "confirm_finish",
"title": "Завершить списание?",
"required": true,
"next_map": {
"false": "scan_barcode",
"true": "finish"
},
"tts": "Завершить списание?"
},
{
"id": "finish",
"type": "finish",
"field": "",
"title": "Списание завершено",
"required": false,
"tts": "Списание завершено"
}
]
}
06
Пополнение торгового зала
Пополнение торгового зала: вынос товара со склада в зал. Оформляется как перемещение между зонами хранения.
process_id: default-replenishment-v1 · operation_type: move · засевается на аккаунт
Как идёт
- Отсканируйте или назовите товар для пополнения — сканирование
- Укажите количество для выноса в зал — число
- Назовите зону назначения или паллету — текст
- Отсканируйте код маркировки — сканирование (только для маркированного товара («Честный знак»))
- Завершить пополнение? — да / нет
- Пополнение завершено — завершение
Ключевые поля
- Тип операции — move: перемещение (Перемещение/move).
- incremental_save: true — позиции уходят в документ сразу при сканировании, а не только в конце.
- field_mappings → коды маркировки «Честный знак» (marking_codes → trackingCodes).
JSON целиком
{
"id": "default-replenishment-v1",
"name": "Пополнение торгового зала",
"operation_type": "move",
"version": 1,
"start_step": "scan_barcode",
"incremental_save": true,
"field_mappings": [
{
"line_field": "marking_codes",
"ms_target": "trackingCodes"
}
],
"steps": [
{
"id": "scan_barcode",
"type": "scan",
"field": "barcode",
"title": "Отсканируйте или назовите товар для пополнения",
"required": true,
"next": "quantity",
"next_map": {
"готово": "confirm_finish",
"завершить": "confirm_finish",
"стоп": "confirm_finish"
},
"tts": "Назовите или отсканируйте товар",
"resolve": {
"search_types": [
"barcode",
"article",
"fuzzy"
],
"targets": {
"assortment_id": "id",
"assortment_name": "name",
"gtin": "gtin",
"marking_mode": "marking_mode"
},
"required": true
},
"marking_divert": "destination"
},
{
"id": "quantity",
"type": "number",
"field": "quantity",
"title": "Укажите количество для выноса в зал",
"required": true,
"next": "destination",
"min": 0,
"tts": "Сколько вынести?"
},
{
"id": "destination",
"type": "text",
"field": "destination",
"title": "Назовите зону назначения или паллету",
"required": true,
"next": "scan_barcode",
"tts": "Куда переместить?",
"pre_actions": [
{
"type": "collect_items",
"fields": [
"assortment_id",
"assortment_name",
"quantity",
"destination"
]
}
],
"marking_divert": "scan_marking_code"
},
{
"id": "scan_marking_code",
"type": "scan",
"field": "marking_code",
"title": "Отсканируйте код маркировки",
"required": false,
"next": "scan_marking_code",
"next_map": {
"готово": "confirm_finish",
"дальше": "scan_barcode",
"завершить": "confirm_finish",
"стоп": "confirm_finish",
"товар": "scan_barcode"
},
"tts": "Отсканируйте код маркировки"
},
{
"id": "confirm_finish",
"type": "confirm",
"field": "confirm_finish",
"title": "Завершить пополнение?",
"required": true,
"next_map": {
"false": "scan_barcode",
"true": "finish"
},
"tts": "Завершить пополнение?"
},
{
"id": "finish",
"type": "finish",
"field": "",
"title": "Пополнение завершено",
"required": false,
"tts": "Пополнение завершено"
}
]
}
07
Контроль сроков годности
Контроль сроков годности: проверка партий и решение по каждой. Технически — перемещение, поэтому нужны две зоны/склада.
process_id: default-expiry-control-v1 · operation_type: move · засевается на аккаунт
Как идёт
- Отсканируйте товар для контроля срока — сканирование
- Назовите срок годности партии — текст
- Укажите количество партии — число
- Выберите действие с партией — выбор из списка
- Завершить контроль сроков? — да / нет
- Контроль сроков завершен — завершение
Ключевые поля
- Тип операции — move: перемещение (Перемещение/move).
- incremental_save: true — позиции уходят в документ сразу при сканировании, а не только в конце.
JSON целиком
{
"id": "default-expiry-control-v1",
"name": "Контроль сроков годности",
"operation_type": "move",
"version": 1,
"start_step": "scan_barcode",
"incremental_save": true,
"steps": [
{
"id": "scan_barcode",
"type": "scan",
"field": "barcode",
"title": "Отсканируйте товар для контроля срока",
"required": true,
"next": "expiry_date",
"next_map": {
"готово": "confirm_finish",
"завершить": "confirm_finish",
"стоп": "confirm_finish"
},
"tts": "Отсканируйте товар",
"resolve": {
"search_types": [
"barcode",
"article",
"fuzzy"
],
"targets": {
"assortment_id": "id",
"assortment_name": "name",
"gtin": "gtin",
"marking_mode": "marking_mode"
},
"required": true
}
},
{
"id": "expiry_date",
"type": "text",
"field": "expiry_date",
"title": "Назовите срок годности партии",
"required": true,
"next": "quantity",
"tts": "Назовите срок годности"
},
{
"id": "quantity",
"type": "number",
"field": "quantity",
"title": "Укажите количество партии",
"required": true,
"next": "action",
"min": 0,
"tts": "Сколько единиц?"
},
{
"id": "action",
"type": "select",
"field": "expiry_action",
"title": "Выберите действие с партией",
"required": true,
"next": "scan_barcode",
"options": [
"оставить",
"переместить в уценку",
"переместить в утилизацию"
],
"tts": "Что сделать с партией?",
"pre_actions": [
{
"type": "collect_items",
"fields": [
"assortment_id",
"assortment_name",
"expiry_date",
"quantity",
"expiry_action"
]
}
]
},
{
"id": "confirm_finish",
"type": "confirm",
"field": "confirm_finish",
"title": "Завершить контроль сроков?",
"required": true,
"next_map": {
"false": "scan_barcode",
"true": "finish"
},
"tts": "Завершить контроль сроков?"
},
{
"id": "finish",
"type": "finish",
"field": "",
"title": "Контроль сроков завершен",
"required": false,
"tts": "Контроль сроков завершен"
}
]
}
08
Привязка штрихкода
Привязка нового штрихкода к карточке товара в МойСклад. Сначала сканируется сам товар, затем новый штрихкод, который к нему привязывается.
process_id: default-barcode-bind-v1 · operation_type: barcode_bind · засевается на аккаунт
Как идёт
- Назовите или найдите товар — сканирование
- Отсканируйте штрихкод для привязки — сканирование
- Привязать штрихкод? — да / нет
- Штрихкод привязан — завершение
Ключевые поля
- Тип операции — barcode_bind: привязка штрихкода к товару.
JSON целиком
{
"id": "default-barcode-bind-v1",
"name": "Привязка штрихкода",
"operation_type": "barcode_bind",
"version": 1,
"start_step": "find_product",
"steps": [
{
"id": "find_product",
"type": "scan",
"field": "product_search",
"title": "Назовите или найдите товар",
"required": true,
"next": "scan_barcode",
"tts": "Назовите товар для привязки штрихкода",
"resolve": {
"search_types": [
"fuzzy",
"barcode"
],
"targets": {
"product_id": "id",
"product_name": "name"
},
"required": true
}
},
{
"id": "scan_barcode",
"type": "scan",
"field": "barcode",
"title": "Отсканируйте штрихкод для привязки",
"required": true,
"next": "confirm",
"tts": "Отсканируйте штрихкод"
},
{
"id": "confirm",
"type": "confirm",
"field": "confirmed",
"title": "Привязать штрихкод?",
"required": true,
"next_map": {
"false": "find_product",
"true": "do_bind"
},
"tts": "Привязать штрихкод?"
},
{
"id": "do_bind",
"type": "finish",
"field": "",
"title": "Штрихкод привязан",
"required": false,
"tts": "Штрихкод привязан"
}
]
}
Адресное хранение (по ячейкам)
Работа по ячейкам склада из МойСклад. Тоже из коробки; нужен тариф с адресным хранением.
09
Размещение по ячейкам
Раскладка принятого товара по ячейкам склада. Оператор сканирует товар, затем ячейку, затем количество. Нужен тариф МойСклад с адресным хранением.
process_id: default-putaway-v1 · operation_type: receive · засевается на аккаунт
Как идёт
- Отсканируйте или назовите товар для размещения — сканирование
- Отсканируйте ячейку хранения — сканирование (сканирование ячейки)
- Укажите количество для размещения — число
- Отсканируйте код маркировки — сканирование (только для маркированного товара («Честный знак»))
- Завершить размещение? — да / нет
- Размещение завершено — завершение
Ключевые поля
- Тип операции — receive: приёмка (в МойСклад — Приёмка/supply).
- incremental_save: true — позиции уходят в документ сразу при сканировании, а не только в конце.
- field_mappings → ячейка адресного хранения (slot_href → slot).
- field_mappings → коды маркировки «Честный знак» (marking_codes → trackingCodes).
JSON целиком
{
"id": "default-putaway-v1",
"name": "Размещение по ячейкам",
"operation_type": "receive",
"version": 1,
"start_step": "scan_barcode",
"incremental_save": true,
"field_mappings": [
{
"line_field": "slot_href",
"ms_target": "slot"
},
{
"line_field": "marking_codes",
"ms_target": "trackingCodes"
}
],
"steps": [
{
"id": "scan_barcode",
"type": "scan",
"field": "barcode",
"title": "Отсканируйте или назовите товар для размещения",
"required": true,
"next": "scan_cell",
"next_map": {
"готово": "confirm_finish",
"завершить": "confirm_finish",
"стоп": "confirm_finish"
},
"tts": "Назовите или отсканируйте товар",
"resolve": {
"search_types": [
"barcode",
"article",
"fuzzy"
],
"targets": {
"assortment_id": "id",
"assortment_name": "name",
"gtin": "gtin",
"marking_mode": "marking_mode"
},
"required": true
}
},
{
"id": "scan_cell",
"type": "scan",
"field": "cell_barcode",
"title": "Отсканируйте ячейку хранения",
"required": true,
"next": "quantity",
"tts": "Отсканируйте ячейку",
"resolve": {
"search_types": [
"cell"
],
"targets": {
"slot_href": "slot_href",
"slot_id": "slot_id",
"slot_name": "slot_name"
},
"required": true
},
"marking_divert": "scan_marking_code"
},
{
"id": "quantity",
"type": "number",
"field": "quantity",
"title": "Укажите количество для размещения",
"required": true,
"next": "scan_barcode",
"min": 0,
"tts": "Сколько разместить?",
"pre_actions": [
{
"type": "collect_items",
"fields": [
"assortment_id",
"assortment_name",
"slot_id",
"slot_name",
"slot_href",
"quantity"
],
"merge_key": [
"assortment_id",
"slot_id"
]
}
]
},
{
"id": "scan_marking_code",
"type": "scan",
"field": "marking_code",
"title": "Отсканируйте код маркировки",
"required": false,
"next": "scan_marking_code",
"next_map": {
"готово": "confirm_finish",
"дальше": "scan_barcode",
"завершить": "confirm_finish",
"стоп": "confirm_finish",
"товар": "scan_barcode"
},
"tts": "Отсканируйте код маркировки"
},
{
"id": "confirm_finish",
"type": "confirm",
"field": "confirm_finish",
"title": "Завершить размещение?",
"required": true,
"next_map": {
"false": "scan_barcode",
"true": "finish"
},
"tts": "Завершить размещение?"
},
{
"id": "finish",
"type": "finish",
"field": "",
"title": "Размещение завершено",
"required": false,
"tts": "Размещение завершено"
}
]
}
10
Сборка по заказу
Сборка заказа покупателя по ячейкам. Терминал находит или создаёт отгрузку по выбранному заказу; товар берётся из ячеек, где он фактически лежит. Добавлять можно только позиции из заказа (снимается флагом allow_unplanned_items).
process_id: default-picking-v1 · operation_type: demand · засевается на аккаунт
Как идёт
- Отсканируйте или назовите товар для сборки — сканирование
- Выберите ячейку для сборки — выбор из списка (выбор ячейки, где лежит товар)
- Сколько собрать? — число
- Завершить сборку? — да / нет
- Сборка завершена — завершение
Ключевые поля
- Тип операции — demand: отгрузка (Отгрузка/demand).
- incremental_save: true — позиции уходят в документ сразу при сканировании, а не только в конце.
- create_document.from_order: customerorder — документ создаётся/находится по выбранному заказу.
- field_mappings → ячейка адресного хранения (slot_href → slot).
JSON целиком
{
"id": "default-picking-v1",
"name": "Сборка по заказу",
"operation_type": "demand",
"version": 1,
"start_step": "scan_barcode",
"incremental_save": true,
"field_mappings": [
{
"line_field": "slot_href",
"ms_target": "slot"
}
],
"steps": [
{
"id": "scan_barcode",
"type": "scan",
"field": "barcode",
"title": "Отсканируйте или назовите товар для сборки",
"required": true,
"next": "pick_cell",
"next_map": {
"готово": "confirm_finish",
"завершить": "confirm_finish",
"стоп": "confirm_finish"
},
"tts": "Назовите или отсканируйте товар",
"resolve": {
"search_types": [
"barcode",
"article",
"fuzzy"
],
"targets": {
"assortment_id": "id",
"assortment_name": "name",
"gtin": "gtin",
"marking_mode": "marking_mode"
},
"required": true
}
},
{
"id": "pick_cell",
"type": "select",
"field": "slot_pick",
"title": "Выберите ячейку для сборки",
"required": false,
"next": "quantity",
"tts": "Выберите ячейку",
"resolve": {
"search_types": [
"product_cells"
],
"targets": {
"slot_href": "slot_href",
"slot_id": "slot_id",
"slot_name": "slot_name"
},
"required": true
}
},
{
"id": "quantity",
"type": "number",
"field": "quantity",
"title": "Сколько собрать?",
"required": true,
"next": "scan_barcode",
"min": 0,
"tts": "Сколько штук?",
"pre_actions": [
{
"type": "collect_items",
"fields": [
"assortment_id",
"assortment_name",
"slot_id",
"slot_name",
"slot_href",
"quantity"
],
"merge_key": [
"assortment_id",
"slot_id"
]
}
]
},
{
"id": "confirm_finish",
"type": "confirm",
"field": "confirm_finish",
"title": "Завершить сборку?",
"required": true,
"next_map": {
"false": "scan_barcode",
"true": "finish"
},
"tts": "Завершить сборку?"
},
{
"id": "finish",
"type": "finish",
"field": "",
"title": "Сборка завершена",
"required": false,
"tts": "Сборка завершена"
}
],
"create_document": {
"from_order": "customerorder"
}
}
11
Сборка по ячейкам (без заказа)
Сборка по ячейкам без заказа: перед стартом выбирается покупатель, отгрузку создаёт сам терминал. Ограничения по плану заказа нет.
process_id: default-picking-noorder-v1 · operation_type: demand · засевается на аккаунт
Как идёт
- Отсканируйте или назовите товар для сборки — сканирование
- Выберите ячейку для сборки — выбор из списка (выбор ячейки, где лежит товар)
- Сколько собрать? — число
- Завершить сборку? — да / нет
- Сборка завершена — завершение
Ключевые поля
- Тип операции — demand: отгрузка (Отгрузка/demand).
- incremental_save: true — позиции уходят в документ сразу при сканировании, а не только в конце.
- create_document.pick_agent — документ создаёт терминал; перед стартом оператор выбирает контрагента (поставщика/покупателя).
- field_mappings → ячейка адресного хранения (slot_href → slot).
JSON целиком
{
"id": "default-picking-noorder-v1",
"name": "Сборка по ячейкам (без заказа)",
"operation_type": "demand",
"version": 1,
"start_step": "scan_barcode",
"incremental_save": true,
"field_mappings": [
{
"line_field": "slot_href",
"ms_target": "slot"
}
],
"steps": [
{
"id": "scan_barcode",
"type": "scan",
"field": "barcode",
"title": "Отсканируйте или назовите товар для сборки",
"required": true,
"next": "pick_cell",
"next_map": {
"готово": "confirm_finish",
"завершить": "confirm_finish",
"стоп": "confirm_finish"
},
"tts": "Назовите или отсканируйте товар",
"resolve": {
"search_types": [
"barcode",
"article",
"fuzzy"
],
"targets": {
"assortment_id": "id",
"assortment_name": "name",
"gtin": "gtin",
"marking_mode": "marking_mode"
},
"required": true
}
},
{
"id": "pick_cell",
"type": "select",
"field": "slot_pick",
"title": "Выберите ячейку для сборки",
"required": false,
"next": "quantity",
"tts": "Выберите ячейку",
"resolve": {
"search_types": [
"product_cells"
],
"targets": {
"slot_href": "slot_href",
"slot_id": "slot_id",
"slot_name": "slot_name"
},
"required": true
}
},
{
"id": "quantity",
"type": "number",
"field": "quantity",
"title": "Сколько собрать?",
"required": true,
"next": "scan_barcode",
"min": 0,
"tts": "Сколько штук?",
"pre_actions": [
{
"type": "collect_items",
"fields": [
"assortment_id",
"assortment_name",
"slot_id",
"slot_name",
"slot_href",
"quantity"
],
"merge_key": [
"assortment_id",
"slot_id"
]
}
]
},
{
"id": "confirm_finish",
"type": "confirm",
"field": "confirm_finish",
"title": "Завершить сборку?",
"required": true,
"next_map": {
"false": "scan_barcode",
"true": "finish"
},
"tts": "Завершить сборку?"
},
{
"id": "finish",
"type": "finish",
"field": "",
"title": "Сборка завершена",
"required": false,
"tts": "Сборка завершена"
}
],
"create_document": {
"pick_agent": true
}
}
12
Приёмка по заказу
Приёмка по заказу поставщику с раскладкой по ячейкам склада. Терминал создаёт приёмку по выбранному заказу.
process_id: default-receive-cells-v1 · operation_type: receive · засевается на аккаунт
Как идёт
- Отсканируйте или назовите товар для приёмки — сканирование
- Выберите ячейку для размещения — выбор из списка (выбор ячейки склада)
- Сколько принять? — число
- Завершить приёмку? — да / нет
- Приёмка завершена — завершение
Ключевые поля
- Тип операции — receive: приёмка (в МойСклад — Приёмка/supply).
- incremental_save: true — позиции уходят в документ сразу при сканировании, а не только в конце.
- create_document.from_order: purchaseorder — документ создаётся/находится по выбранному заказу.
- field_mappings → ячейка адресного хранения (slot_href → slot).
JSON целиком
{
"id": "default-receive-cells-v1",
"name": "Приёмка по заказу",
"operation_type": "receive",
"version": 1,
"start_step": "scan_barcode",
"incremental_save": true,
"field_mappings": [
{
"line_field": "slot_href",
"ms_target": "slot"
}
],
"steps": [
{
"id": "scan_barcode",
"type": "scan",
"field": "barcode",
"title": "Отсканируйте или назовите товар для приёмки",
"required": true,
"next": "pick_cell",
"next_map": {
"готово": "confirm_finish",
"завершить": "confirm_finish",
"стоп": "confirm_finish"
},
"tts": "Назовите или отсканируйте товар",
"resolve": {
"search_types": [
"barcode",
"article",
"fuzzy"
],
"targets": {
"assortment_id": "id",
"assortment_name": "name",
"gtin": "gtin",
"marking_mode": "marking_mode"
},
"required": true
}
},
{
"id": "pick_cell",
"type": "select",
"field": "slot_pick",
"title": "Выберите ячейку для размещения",
"required": false,
"next": "quantity",
"tts": "Выберите ячейку",
"resolve": {
"search_types": [
"store_cells"
],
"targets": {
"slot_href": "slot_href",
"slot_id": "slot_id",
"slot_name": "slot_name"
},
"required": true
}
},
{
"id": "quantity",
"type": "number",
"field": "quantity",
"title": "Сколько принять?",
"required": true,
"next": "scan_barcode",
"min": 0,
"tts": "Сколько штук?",
"pre_actions": [
{
"type": "collect_items",
"fields": [
"assortment_id",
"assortment_name",
"slot_id",
"slot_name",
"slot_href",
"quantity"
],
"merge_key": [
"assortment_id",
"slot_id"
]
}
]
},
{
"id": "confirm_finish",
"type": "confirm",
"field": "confirm_finish",
"title": "Завершить приёмку?",
"required": true,
"next_map": {
"false": "scan_barcode",
"true": "finish"
},
"tts": "Завершить приёмку?"
},
{
"id": "finish",
"type": "finish",
"field": "",
"title": "Приёмка завершена",
"required": false,
"tts": "Приёмка завершена"
}
],
"create_document": {
"from_order": "purchaseorder"
}
}
13
Приёмка по ячейкам (без заказа)
Приёмка по ячейкам без заказа: перед стартом выбирается поставщик, приёмку создаёт терминал.
process_id: default-receive-cells-noorder-v1 · operation_type: receive · засевается на аккаунт
Как идёт
- Отсканируйте или назовите товар для приёмки — сканирование
- Выберите ячейку для размещения — выбор из списка (выбор ячейки склада)
- Сколько принять? — число
- Завершить приёмку? — да / нет
- Приёмка завершена — завершение
Ключевые поля
- Тип операции — receive: приёмка (в МойСклад — Приёмка/supply).
- incremental_save: true — позиции уходят в документ сразу при сканировании, а не только в конце.
- create_document.pick_agent — документ создаёт терминал; перед стартом оператор выбирает контрагента (поставщика/покупателя).
- field_mappings → ячейка адресного хранения (slot_href → slot).
JSON целиком
{
"id": "default-receive-cells-noorder-v1",
"name": "Приёмка по ячейкам (без заказа)",
"operation_type": "receive",
"version": 1,
"start_step": "scan_barcode",
"incremental_save": true,
"field_mappings": [
{
"line_field": "slot_href",
"ms_target": "slot"
}
],
"steps": [
{
"id": "scan_barcode",
"type": "scan",
"field": "barcode",
"title": "Отсканируйте или назовите товар для приёмки",
"required": true,
"next": "pick_cell",
"next_map": {
"готово": "confirm_finish",
"завершить": "confirm_finish",
"стоп": "confirm_finish"
},
"tts": "Назовите или отсканируйте товар",
"resolve": {
"search_types": [
"barcode",
"article",
"fuzzy"
],
"targets": {
"assortment_id": "id",
"assortment_name": "name",
"gtin": "gtin",
"marking_mode": "marking_mode"
},
"required": true
}
},
{
"id": "pick_cell",
"type": "select",
"field": "slot_pick",
"title": "Выберите ячейку для размещения",
"required": false,
"next": "quantity",
"tts": "Выберите ячейку",
"resolve": {
"search_types": [
"store_cells"
],
"targets": {
"slot_href": "slot_href",
"slot_id": "slot_id",
"slot_name": "slot_name"
},
"required": true
}
},
{
"id": "quantity",
"type": "number",
"field": "quantity",
"title": "Сколько принять?",
"required": true,
"next": "scan_barcode",
"min": 0,
"tts": "Сколько штук?",
"pre_actions": [
{
"type": "collect_items",
"fields": [
"assortment_id",
"assortment_name",
"slot_id",
"slot_name",
"slot_href",
"quantity"
],
"merge_key": [
"assortment_id",
"slot_id"
]
}
]
},
{
"id": "confirm_finish",
"type": "confirm",
"field": "confirm_finish",
"title": "Завершить приёмку?",
"required": true,
"next_map": {
"false": "scan_barcode",
"true": "finish"
},
"tts": "Завершить приёмку?"
},
{
"id": "finish",
"type": "finish",
"field": "",
"title": "Приёмка завершена",
"required": false,
"tts": "Приёмка завершена"
}
],
"create_document": {
"pick_agent": true
}
}
14
Ячейки
Просмотр и правка остатков по ячейкам прямо на терминале. Особый сценарий без шагов: по нему приложение открывает встроенный экран «Ячейки», а не запускает обычный проход по шагам.
process_id: cell-editor-v1 · operation_type: cell_editor · засевается на аккаунт
Как идёт
- Ячейки — завершение
Ключевые поля
- Тип операции — cell_editor: экран «Ячейки» (без документа).
- Единственный шаг finish — формальный: приложение открывает по этому сценарию экран «Ячейки», а не идёт по шагам.
JSON целиком
{
"id": "cell-editor-v1",
"name": "Ячейки",
"operation_type": "cell_editor",
"version": 1,
"start_step": "open",
"steps": [
{
"id": "open",
"type": "finish",
"field": "",
"title": "Ячейки",
"required": false
}
]
}
Создание документов
Терминал сам создаёт документ — заранее в офисе ничего заводить не нужно. Ставятся вручную (не засеваются) и требуют свежей версии приложения.
15
Создание приёмки
Терминал сам создаёт приёмку с нуля — заранее заводить документ в офисе не нужно. Перед стартом выбираются склад и поставщик. Сохраняется черновиком, чтобы в офисе проверили и провели.
process_id: default-create-receive-v1 · operation_type: receive · ставится вручную (opt-in) · версия приложения ≥ 2
Как идёт
- Отсканируйте штрихкод товара — сканирование
- Укажите количество — число
- Завершить приёмку? — да / нет
- Приёмка создана — завершение
Ключевые поля
- Тип операции — receive: приёмка (в МойСклад — Приёмка/supply).
- incremental_save: true — позиции уходят в документ сразу при сканировании, а не только в конце.
- create_document.pick_agent — документ создаёт терминал; перед стартом оператор выбирает контрагента (поставщика/покупателя).
- finish_conduct: false — документ сохраняется черновиком (галочка «Проведено» снята); проверят и проведут в офисе.
- min_client_version: 2 — пункт появляется в меню только на приложении версии ≥ 2; на старых ТСД он скрыт.
JSON целиком
{
"id": "default-create-receive-v1",
"name": "Создание приёмки",
"operation_type": "receive",
"version": 1,
"start_step": "scan_barcode",
"incremental_save": true,
"steps": [
{
"id": "scan_barcode",
"type": "scan",
"field": "barcode",
"title": "Отсканируйте штрихкод товара",
"required": true,
"next": "quantity",
"next_map": {
"готово": "confirm_finish",
"завершить": "confirm_finish",
"стоп": "confirm_finish"
},
"tts": "Отсканируйте штрихкод",
"resolve": {
"search_types": [
"barcode",
"article",
"fuzzy"
],
"targets": {
"assortment_id": "id",
"assortment_name": "name",
"gtin": "gtin",
"marking_mode": "marking_mode"
},
"required": true
}
},
{
"id": "quantity",
"type": "number",
"field": "quantity",
"title": "Укажите количество",
"required": true,
"next": "scan_barcode",
"min": 0,
"tts": "Сколько штук?",
"pre_actions": [
{
"type": "collect_items",
"fields": [
"assortment_id",
"assortment_name",
"quantity"
]
}
]
},
{
"id": "confirm_finish",
"type": "confirm",
"field": "confirm_finish",
"title": "Завершить приёмку?",
"required": true,
"next_map": {
"false": "scan_barcode",
"true": "finish"
},
"tts": "Завершить приёмку?"
},
{
"id": "finish",
"type": "finish",
"field": "",
"title": "Приёмка создана",
"required": false,
"tts": "Приёмка создана"
}
],
"min_client_version": 2,
"create_document": {
"pick_agent": true
},
"finish_conduct": false
}
16
Создание отгрузки
Терминал сам создаёт отгрузку: перед стартом склад и покупатель. По умолчанию сохраняется черновиком; чтобы отгрузка сразу проводилась и списывала остаток, поставьте finish_conduct: true.
process_id: default-create-demand-v1 · operation_type: demand · ставится вручную (opt-in) · версия приложения ≥ 2
Как идёт
- Отсканируйте штрихкод товара — сканирование
- Укажите количество — число
- Завершить отгрузку? — да / нет
- Отгрузка создана — завершение
Ключевые поля
- Тип операции — demand: отгрузка (Отгрузка/demand).
- incremental_save: true — позиции уходят в документ сразу при сканировании, а не только в конце.
- create_document.pick_agent — документ создаёт терминал; перед стартом оператор выбирает контрагента (поставщика/покупателя).
- finish_conduct: false — документ сохраняется черновиком (галочка «Проведено» снята); проверят и проведут в офисе.
- min_client_version: 2 — пункт появляется в меню только на приложении версии ≥ 2; на старых ТСД он скрыт.
JSON целиком
{
"id": "default-create-demand-v1",
"name": "Создание отгрузки",
"operation_type": "demand",
"version": 1,
"start_step": "scan_barcode",
"incremental_save": true,
"steps": [
{
"id": "scan_barcode",
"type": "scan",
"field": "barcode",
"title": "Отсканируйте штрихкод товара",
"required": true,
"next": "quantity",
"next_map": {
"готово": "confirm_finish",
"завершить": "confirm_finish",
"стоп": "confirm_finish"
},
"tts": "Отсканируйте штрихкод",
"resolve": {
"search_types": [
"barcode",
"article",
"fuzzy"
],
"targets": {
"assortment_id": "id",
"assortment_name": "name",
"gtin": "gtin",
"marking_mode": "marking_mode"
},
"required": true
}
},
{
"id": "quantity",
"type": "number",
"field": "quantity",
"title": "Укажите количество",
"required": true,
"next": "scan_barcode",
"min": 0,
"tts": "Сколько штук?",
"pre_actions": [
{
"type": "collect_items",
"fields": [
"assortment_id",
"assortment_name",
"quantity"
]
}
]
},
{
"id": "confirm_finish",
"type": "confirm",
"field": "confirm_finish",
"title": "Завершить отгрузку?",
"required": true,
"next_map": {
"false": "scan_barcode",
"true": "finish"
},
"tts": "Завершить отгрузку?"
},
{
"id": "finish",
"type": "finish",
"field": "",
"title": "Отгрузка создана",
"required": false,
"tts": "Отгрузка создана"
}
],
"min_client_version": 2,
"create_document": {
"pick_agent": true
},
"finish_conduct": false
}
17
Создание перемещения
Терминал сам создаёт перемещение: перед стартом выбираются склад-источник и склад-приёмник (второй должен отличаться от первого). Сохраняется черновиком.
process_id: default-create-move-v1 · operation_type: move · ставится вручную (opt-in) · версия приложения ≥ 2
Как идёт
- Отсканируйте штрихкод товара — сканирование
- Укажите количество — число
- Завершить перемещение? — да / нет
- Перемещение создано — завершение
Ключевые поля
- Тип операции — move: перемещение (Перемещение/move).
- incremental_save: true — позиции уходят в документ сразу при сканировании, а не только в конце.
- create_document.pick_target_store — документ создаёт терминал; перед стартом выбирается второй склад (приёмник), источник — склад запуска.
- finish_conduct: false — документ сохраняется черновиком (галочка «Проведено» снята); проверят и проведут в офисе.
- min_client_version: 2 — пункт появляется в меню только на приложении версии ≥ 2; на старых ТСД он скрыт.
JSON целиком
{
"id": "default-create-move-v1",
"name": "Создание перемещения",
"operation_type": "move",
"version": 1,
"start_step": "scan_barcode",
"incremental_save": true,
"steps": [
{
"id": "scan_barcode",
"type": "scan",
"field": "barcode",
"title": "Отсканируйте штрихкод товара",
"required": true,
"next": "quantity",
"next_map": {
"готово": "confirm_finish",
"завершить": "confirm_finish",
"стоп": "confirm_finish"
},
"tts": "Отсканируйте штрихкод",
"resolve": {
"search_types": [
"barcode",
"article",
"fuzzy"
],
"targets": {
"assortment_id": "id",
"assortment_name": "name",
"gtin": "gtin",
"marking_mode": "marking_mode"
},
"required": true
}
},
{
"id": "quantity",
"type": "number",
"field": "quantity",
"title": "Укажите количество",
"required": true,
"next": "scan_barcode",
"min": 0,
"tts": "Сколько штук?",
"pre_actions": [
{
"type": "collect_items",
"fields": [
"assortment_id",
"assortment_name",
"quantity"
]
}
]
},
{
"id": "confirm_finish",
"type": "confirm",
"field": "confirm_finish",
"title": "Завершить перемещение?",
"required": true,
"next_map": {
"false": "scan_barcode",
"true": "finish"
},
"tts": "Завершить перемещение?"
},
{
"id": "finish",
"type": "finish",
"field": "",
"title": "Перемещение создано",
"required": false,
"tts": "Перемещение создано"
}
],
"min_client_version": 2,
"create_document": {
"pick_target_store": true
},
"finish_conduct": false
}
18
Создание списания
Терминал сам создаёт списание: перед стартом только склад. Сохраняется черновиком. Чтобы фиксировать причину, добавьте шаг text с полем reason и строку field_mappings (см. «Редактор»).
process_id: default-create-loss-v1 · operation_type: loss · ставится вручную (opt-in) · версия приложения ≥ 2
Как идёт
- Отсканируйте штрихкод товара — сканирование
- Укажите количество — число
- Завершить списание? — да / нет
- Списание создано — завершение
Ключевые поля
- Тип операции — loss: списание (Списание/loss).
- incremental_save: true — позиции уходят в документ сразу при сканировании, а не только в конце.
- create_document: {} — документ создаётся терминалом только со складом (без контрагента и второго склада).
- finish_conduct: false — документ сохраняется черновиком (галочка «Проведено» снята); проверят и проведут в офисе.
- min_client_version: 2 — пункт появляется в меню только на приложении версии ≥ 2; на старых ТСД он скрыт.
JSON целиком
{
"id": "default-create-loss-v1",
"name": "Создание списания",
"operation_type": "loss",
"version": 1,
"start_step": "scan_barcode",
"incremental_save": true,
"steps": [
{
"id": "scan_barcode",
"type": "scan",
"field": "barcode",
"title": "Отсканируйте штрихкод товара",
"required": true,
"next": "quantity",
"next_map": {
"готово": "confirm_finish",
"завершить": "confirm_finish",
"стоп": "confirm_finish"
},
"tts": "Отсканируйте штрихкод",
"resolve": {
"search_types": [
"barcode",
"article",
"fuzzy"
],
"targets": {
"assortment_id": "id",
"assortment_name": "name",
"gtin": "gtin",
"marking_mode": "marking_mode"
},
"required": true
}
},
{
"id": "quantity",
"type": "number",
"field": "quantity",
"title": "Укажите количество",
"required": true,
"next": "scan_barcode",
"min": 0,
"tts": "Сколько штук?",
"pre_actions": [
{
"type": "collect_items",
"fields": [
"assortment_id",
"assortment_name",
"quantity"
]
}
]
},
{
"id": "confirm_finish",
"type": "confirm",
"field": "confirm_finish",
"title": "Завершить списание?",
"required": true,
"next_map": {
"false": "scan_barcode",
"true": "finish"
},
"tts": "Завершить списание?"
},
{
"id": "finish",
"type": "finish",
"field": "",
"title": "Списание создано",
"required": false,
"tts": "Списание создано"
}
],
"min_client_version": 2,
"create_document": {},
"finish_conduct": false
}
19
Создание оприходования
Терминал сам создаёт оприходование излишков: перед стартом только склад. Сохраняется черновиком.
process_id: default-create-enter-v1 · operation_type: enter · ставится вручную (opt-in) · версия приложения ≥ 2
Как идёт
- Отсканируйте штрихкод товара — сканирование
- Укажите количество — число
- Завершить оприходование? — да / нет
- Оприходование создано — завершение
Ключевые поля
- Тип операции — enter: оприходование (Оприходование/enter).
- incremental_save: true — позиции уходят в документ сразу при сканировании, а не только в конце.
- create_document: {} — документ создаётся терминалом только со складом (без контрагента и второго склада).
- finish_conduct: false — документ сохраняется черновиком (галочка «Проведено» снята); проверят и проведут в офисе.
- min_client_version: 2 — пункт появляется в меню только на приложении версии ≥ 2; на старых ТСД он скрыт.
JSON целиком
{
"id": "default-create-enter-v1",
"name": "Создание оприходования",
"operation_type": "enter",
"version": 1,
"start_step": "scan_barcode",
"incremental_save": true,
"steps": [
{
"id": "scan_barcode",
"type": "scan",
"field": "barcode",
"title": "Отсканируйте штрихкод товара",
"required": true,
"next": "quantity",
"next_map": {
"готово": "confirm_finish",
"завершить": "confirm_finish",
"стоп": "confirm_finish"
},
"tts": "Отсканируйте штрихкод",
"resolve": {
"search_types": [
"barcode",
"article",
"fuzzy"
],
"targets": {
"assortment_id": "id",
"assortment_name": "name",
"gtin": "gtin",
"marking_mode": "marking_mode"
},
"required": true
}
},
{
"id": "quantity",
"type": "number",
"field": "quantity",
"title": "Укажите количество",
"required": true,
"next": "scan_barcode",
"min": 0,
"tts": "Сколько штук?",
"pre_actions": [
{
"type": "collect_items",
"fields": [
"assortment_id",
"assortment_name",
"quantity"
]
}
]
},
{
"id": "confirm_finish",
"type": "confirm",
"field": "confirm_finish",
"title": "Завершить оприходование?",
"required": true,
"next_map": {
"false": "scan_barcode",
"true": "finish"
},
"tts": "Завершить оприходование?"
},
{
"id": "finish",
"type": "finish",
"field": "",
"title": "Оприходование создано",
"required": false,
"tts": "Оприходование создано"
}
],
"min_client_version": 2,
"create_document": {},
"finish_conduct": false
}
20
Создание заказа покупателя
Терминал создаёт заказ покупателя. Это заказ, а не складская операция: движения товара нет, остатки не меняются, цена позиций — 0.
process_id: default-create-customerorder-v1 · operation_type: customerorder · ставится вручную (opt-in) · версия приложения ≥ 2
Как идёт
- Отсканируйте штрихкод товара — сканирование
- Укажите количество — число
- Завершить заказ покупателя? — да / нет
- Заказ покупателя создан — завершение
Ключевые поля
- Тип операции — customerorder: заказ покупателя (customerorder).
- incremental_save: true — позиции уходят в документ сразу при сканировании, а не только в конце.
- create_document.pick_agent — документ создаёт терминал; перед стартом оператор выбирает контрагента (поставщика/покупателя).
- finish_conduct: false — документ сохраняется черновиком (галочка «Проведено» снята); проверят и проведут в офисе.
- min_client_version: 2 — пункт появляется в меню только на приложении версии ≥ 2; на старых ТСД он скрыт.
JSON целиком
{
"id": "default-create-customerorder-v1",
"name": "Создание заказа покупателя",
"operation_type": "customerorder",
"version": 1,
"start_step": "scan_barcode",
"incremental_save": true,
"steps": [
{
"id": "scan_barcode",
"type": "scan",
"field": "barcode",
"title": "Отсканируйте штрихкод товара",
"required": true,
"next": "quantity",
"next_map": {
"готово": "confirm_finish",
"завершить": "confirm_finish",
"стоп": "confirm_finish"
},
"tts": "Отсканируйте штрихкод",
"resolve": {
"search_types": [
"barcode",
"article",
"fuzzy"
],
"targets": {
"assortment_id": "id",
"assortment_name": "name",
"gtin": "gtin",
"marking_mode": "marking_mode"
},
"required": true
}
},
{
"id": "quantity",
"type": "number",
"field": "quantity",
"title": "Укажите количество",
"required": true,
"next": "scan_barcode",
"min": 0,
"tts": "Сколько штук?",
"pre_actions": [
{
"type": "collect_items",
"fields": [
"assortment_id",
"assortment_name",
"quantity"
]
}
]
},
{
"id": "confirm_finish",
"type": "confirm",
"field": "confirm_finish",
"title": "Завершить заказ покупателя?",
"required": true,
"next_map": {
"false": "scan_barcode",
"true": "finish"
},
"tts": "Завершить заказ покупателя?"
},
{
"id": "finish",
"type": "finish",
"field": "",
"title": "Заказ покупателя создан",
"required": false,
"tts": "Заказ покупателя создан"
}
],
"min_client_version": 2,
"create_document": {
"pick_agent": true
},
"finish_conduct": false
}
21
Создание заказа поставщику
Терминал создаёт заказ поставщику. Как и заказ покупателя: движения товара нет, остатки не меняются, цена позиций — 0.
process_id: default-create-purchaseorder-v1 · operation_type: purchaseorder · ставится вручную (opt-in) · версия приложения ≥ 2
Как идёт
- Отсканируйте штрихкод товара — сканирование
- Укажите количество — число
- Завершить заказ поставщику? — да / нет
- Заказ поставщику создан — завершение
Ключевые поля
- Тип операции — purchaseorder: заказ поставщику (purchaseorder).
- incremental_save: true — позиции уходят в документ сразу при сканировании, а не только в конце.
- create_document.pick_agent — документ создаёт терминал; перед стартом оператор выбирает контрагента (поставщика/покупателя).
- finish_conduct: false — документ сохраняется черновиком (галочка «Проведено» снята); проверят и проведут в офисе.
- min_client_version: 2 — пункт появляется в меню только на приложении версии ≥ 2; на старых ТСД он скрыт.
JSON целиком
{
"id": "default-create-purchaseorder-v1",
"name": "Создание заказа поставщику",
"operation_type": "purchaseorder",
"version": 1,
"start_step": "scan_barcode",
"incremental_save": true,
"steps": [
{
"id": "scan_barcode",
"type": "scan",
"field": "barcode",
"title": "Отсканируйте штрихкод товара",
"required": true,
"next": "quantity",
"next_map": {
"готово": "confirm_finish",
"завершить": "confirm_finish",
"стоп": "confirm_finish"
},
"tts": "Отсканируйте штрихкод",
"resolve": {
"search_types": [
"barcode",
"article",
"fuzzy"
],
"targets": {
"assortment_id": "id",
"assortment_name": "name",
"gtin": "gtin",
"marking_mode": "marking_mode"
},
"required": true
}
},
{
"id": "quantity",
"type": "number",
"field": "quantity",
"title": "Укажите количество",
"required": true,
"next": "scan_barcode",
"min": 0,
"tts": "Сколько штук?",
"pre_actions": [
{
"type": "collect_items",
"fields": [
"assortment_id",
"assortment_name",
"quantity"
]
}
]
},
{
"id": "confirm_finish",
"type": "confirm",
"field": "confirm_finish",
"title": "Завершить заказ поставщику?",
"required": true,
"next_map": {
"false": "scan_barcode",
"true": "finish"
},
"tts": "Завершить заказ поставщику?"
},
{
"id": "finish",
"type": "finish",
"field": "",
"title": "Заказ поставщику создан",
"required": false,
"tts": "Заказ поставщику создан"
}
],
"min_client_version": 2,
"create_document": {
"pick_agent": true
},
"finish_conduct": false
}