Документация · Примеры сценариев

Примеры сценариев

Все 21 сценариев терминала по одному: назначение, разбор шагов, ключевые поля и JSON целиком. Любой пример можно скопировать в редактор личного кабинета и сохранить как свой.

Ниже — каждый сценарий отдельной записью. Как добавить пример к себе: личный кабинет → раздел «Сценарии операций» → «Новый сценарий» → вставьте JSON в большое поле → «Сохранить как новый сценарий». Что означает каждое поле и что можно менять — в разделе «Редактор».

Надписи на экране (title) и голосовые подсказки (tts) меняются свободно. Блоки resolve, pre_actions и field_mappings лучше оставлять как есть. Вставляете как новый — задайте свой id, чтобы он не совпал с существующим.

Базовые операции

Засеваются на каждый аккаунт — доступны сразу после установки.

01

Приёмка

Приём товара от поставщика по готовому документу из МойСклад. Оператор сканирует позиции и вводит количество, факт сохраняется в приёмку. Есть отдельная ветка сканирования кодов маркировки «Честный знак» — она включается только для маркированного товара.

process_id: default-receive-v1 · operation_type: receive · засевается на аккаунт

Как идёт

  1. Отсканируйте штрихкод товара — сканирование
  2. Укажите количество — число
  3. Отсканируйте код маркировки — сканирование (только для маркированного товара («Честный знак»))
  4. Завершить приёмку? — да / нет
  5. Приёмка завершена — завершение

Ключевые поля

  • Тип операции — 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 · засевается на аккаунт

Как идёт

  1. Отсканируйте штрихкод товара — сканирование
  2. Укажите количество — число
  3. Отсканируйте код маркировки — сканирование (только для маркированного товара («Честный знак»))
  4. Завершить отгрузку? — да / нет
  5. Отгрузка завершена — завершение

Ключевые поля

  • Тип операции — 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 · засевается на аккаунт

Как идёт

  1. Отсканируйте штрихкод товара — сканирование
  2. Укажите количество — число
  3. Отсканируйте код маркировки — сканирование (только для маркированного товара («Честный знак»))
  4. Завершить перемещение? — да / нет
  5. Перемещение завершено — завершение

Ключевые поля

  • Тип операции — 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 · засевается на аккаунт

Как идёт

  1. Отсканируйте штрихкод товара — сканирование
  2. Укажите фактическое количество — число
  3. Завершить инвентаризацию и сохранить данные? — да / нет
  4. Инвентаризация завершена — завершение

Ключевые поля

  • Тип операции — 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 · засевается на аккаунт

Как идёт

  1. Отсканируйте или назовите товар для списания — сканирование
  2. Укажите количество для списания — число
  3. Продиктуйте причину списания — текст (причина попадёт в документ)
  4. Завершить списание? — да / нет
  5. Списание завершено — завершение

Ключевые поля

  • Тип операции — 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 · засевается на аккаунт

Как идёт

  1. Отсканируйте или назовите товар для пополнения — сканирование
  2. Укажите количество для выноса в зал — число
  3. Назовите зону назначения или паллету — текст
  4. Отсканируйте код маркировки — сканирование (только для маркированного товара («Честный знак»))
  5. Завершить пополнение? — да / нет
  6. Пополнение завершено — завершение

Ключевые поля

  • Тип операции — 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 · засевается на аккаунт

Как идёт

  1. Отсканируйте товар для контроля срока — сканирование
  2. Назовите срок годности партии — текст
  3. Укажите количество партии — число
  4. Выберите действие с партией — выбор из списка
  5. Завершить контроль сроков? — да / нет
  6. Контроль сроков завершен — завершение

Ключевые поля

  • Тип операции — 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 · засевается на аккаунт

Как идёт

  1. Назовите или найдите товар — сканирование
  2. Отсканируйте штрихкод для привязки — сканирование
  3. Привязать штрихкод? — да / нет
  4. Штрихкод привязан — завершение

Ключевые поля

  • Тип операции — 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 · засевается на аккаунт

Как идёт

  1. Отсканируйте или назовите товар для размещения — сканирование
  2. Отсканируйте ячейку хранения — сканирование (сканирование ячейки)
  3. Укажите количество для размещения — число
  4. Отсканируйте код маркировки — сканирование (только для маркированного товара («Честный знак»))
  5. Завершить размещение? — да / нет
  6. Размещение завершено — завершение

Ключевые поля

  • Тип операции — 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 · засевается на аккаунт

Как идёт

  1. Отсканируйте или назовите товар для сборки — сканирование
  2. Выберите ячейку для сборки — выбор из списка (выбор ячейки, где лежит товар)
  3. Сколько собрать? — число
  4. Завершить сборку? — да / нет
  5. Сборка завершена — завершение

Ключевые поля

  • Тип операции — 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 · засевается на аккаунт

Как идёт

  1. Отсканируйте или назовите товар для сборки — сканирование
  2. Выберите ячейку для сборки — выбор из списка (выбор ячейки, где лежит товар)
  3. Сколько собрать? — число
  4. Завершить сборку? — да / нет
  5. Сборка завершена — завершение

Ключевые поля

  • Тип операции — 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 · засевается на аккаунт

Как идёт

  1. Отсканируйте или назовите товар для приёмки — сканирование
  2. Выберите ячейку для размещения — выбор из списка (выбор ячейки склада)
  3. Сколько принять? — число
  4. Завершить приёмку? — да / нет
  5. Приёмка завершена — завершение

Ключевые поля

  • Тип операции — 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 · засевается на аккаунт

Как идёт

  1. Отсканируйте или назовите товар для приёмки — сканирование
  2. Выберите ячейку для размещения — выбор из списка (выбор ячейки склада)
  3. Сколько принять? — число
  4. Завершить приёмку? — да / нет
  5. Приёмка завершена — завершение

Ключевые поля

  • Тип операции — 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 · засевается на аккаунт

Как идёт

  1. Ячейки — завершение

Ключевые поля

  • Тип операции — 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

Как идёт

  1. Отсканируйте штрихкод товара — сканирование
  2. Укажите количество — число
  3. Завершить приёмку? — да / нет
  4. Приёмка создана — завершение

Ключевые поля

  • Тип операции — 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

Как идёт

  1. Отсканируйте штрихкод товара — сканирование
  2. Укажите количество — число
  3. Завершить отгрузку? — да / нет
  4. Отгрузка создана — завершение

Ключевые поля

  • Тип операции — 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

Как идёт

  1. Отсканируйте штрихкод товара — сканирование
  2. Укажите количество — число
  3. Завершить перемещение? — да / нет
  4. Перемещение создано — завершение

Ключевые поля

  • Тип операции — 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

Как идёт

  1. Отсканируйте штрихкод товара — сканирование
  2. Укажите количество — число
  3. Завершить списание? — да / нет
  4. Списание создано — завершение

Ключевые поля

  • Тип операции — 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

Как идёт

  1. Отсканируйте штрихкод товара — сканирование
  2. Укажите количество — число
  3. Завершить оприходование? — да / нет
  4. Оприходование создано — завершение

Ключевые поля

  • Тип операции — 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

Как идёт

  1. Отсканируйте штрихкод товара — сканирование
  2. Укажите количество — число
  3. Завершить заказ покупателя? — да / нет
  4. Заказ покупателя создан — завершение

Ключевые поля

  • Тип операции — 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

Как идёт

  1. Отсканируйте штрихкод товара — сканирование
  2. Укажите количество — число
  3. Завершить заказ поставщику? — да / нет
  4. Заказ поставщику создан — завершение

Ключевые поля

  • Тип операции — 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
}