Алгоритм программы выполняется шаг за шагом, начиная с первого действия. Каждому действию можно задать уникальное имя, которое потом используется для задания перехода к данному действию.
Если переходы явно не заданы (не указаны переходы по именам), то действия будут идти по порядку. Если у действия не задано имя, то явный переход на него назначить нельзя, оно может быть выполнено, только когда придет его очередь (по порядку).
От одного действия могут быть назначены сразу несколько переходов на другие действия или операции. На какое действие или операцию будет осуществлен переход зависит от введенных данных.
Для удобства переходы показаны разноцветными стрелочками, чтобы видеть, куда могут переходить действия и при каких условиях или откуда может быть осуществлен переход на это действие. Синие стрелочки – переход по обычным действиям. Бордовые стрелочки – переходы по обработчикам. Красные и зеленые переходы по «if», зеленый – условие выполнено, красный – условие не выполнено. Оранжевые – задано неправильно имя перехода (например, удалили действие или переименовали).
Например, при выборе номенклатуры, если отсканированный товар был найден в справочнике номенклатуры, то переход будет на действие с именем «ПрисвоитьШК». Если товар не найден в справочнике номенклатуры, то переход будет осуществлен на действие с именем «10» - вызов операции Обработка неизвестного штрихкода (именовать действия можно используя числа).
Опциональные переходы – не обязательные переходы, зависят от настроек. Если опциональный переход не задан, то действие имеет свой встроенный в Mobile SMARTS алгоритм обработки.
Например, действие «Выбор номенклатуры». Если при выполнении этого действия товар не найден и не задан переход для этого случая, то действие имеет свой собственный уже написанный и встроенный в Mobile SMARTS алгоритм обработки не найденного товара (произвести звук ошибки и вывести сообщение, что товар не найден).
А если нам необходим свой специализированный алгоритм обработки ненайденного товара (например, вызов операции Обработка неизвестного штрихкода), то надо задать переход на него.
Для готовых решений на основе Mobile SMARTS (драйвера терминала сбора данных для «1С:Предприятия»), такой алгоритм уже написан.
Значение системных переходов
В выпадающем списке для действия (группировки действий, операции) кнопки отображаются возможные варианты перехода по нажатию такой кнопки. Вначале этот список заполнен системными переходами.
Для действий внутри алгоритма типа документа
Системное действие |
Латинское название |
Описание |
---|---|---|
Отмена действия |
cancel |
Отмена изменений по текущему действию и возврат к предыдущему в стеке (изменения в сессию не сохраняются). |
Возврат на одно действие |
finishproc |
Возврат к предыдущему действию в стеке без отмены произведенных изменений (изменения сохраняются в сессию ). |
Завершить документ |
return |
Выход из документа, документ считается выполненным, у него будет выставлен флаг завершен и при обмене данными он уйдет на сервер. |
Прервать работу с документом |
abort |
Выход из документа, документ считается прерванным. Флаг завершения не выставляется, и документ остается на терминале. |
Возврат документа |
release |
Отказ от выполнения документа. Если документ не был изменен, то он будет возвращен на сервер, в исходном состоянии, и не будет считаться выполненным. Впоследствии его снова сможет забрать тот же или другой пользователь. Если документ был создан на терминале, то он будет удален. Если документ уже был изменен, то … |
Разница между прерыванием и завершением документа состоит в том, будет ли выставляться флажок «Завершен» в документе.
Для действий внутри алгоритма операции
Системное действие |
Латинское название |
Описание |
---|---|---|
Отмена действия |
cancel |
Отмена изменений по текущему действию и возврат к предыдущему в стеке (изменения в сессию не сохраняются). |
Возврат на одно действие |
finishproc |
Возврат к предыдущему действию в стеке без отмены произведенных изменений (изменения сохраняются в сессию ). |
Завершить операцию |
return |
Успешное завершение операции (операция выполнена) c возвратом результата. |
Прервать операцию |
abort |
Прерывание операции без возврата результата. |
Для действий внутри групп или циклов
Системное действие |
Латинское название |
Описание |
---|---|---|
Отмена действия |
cancel |
Отмена изменений по текущему действию и возврат к предыдущему в стеке внутри группы (изменения в сессию не сохраняются). |
Возврат на одно действие |
finishproc |
Возврат к предыдущему действию в стеке группы без отмены произведенных изменений (изменения сохраняются в сессию). |
Продолжить |
continue |
Для цикла: переход на начало цикла с выбором следующего элемента, или завершение цикла, если элементы цикла закончились. |
Прервать |
break |
Прервать текущую группу действий и перейти на следующее действие в основном алгоритме. |
Завершить операцию |
return |
Завершение выполнения всего алгоритма, в котором находится группа действий. |
Прервать операцию |
abort |
Прерывание выполнения всего алгоритма, в котором находится группа действий. |