Главная

Руководство: Обработчики действий

Обработчики действий

URI обработчиков действий создаются по маске stmobile://action/target/event

где:

  • target - объект системы, например документ "Заказ"
  • event  - событие

Запуск МТ

uri = stmobile://action/startapp/appinit        При старте МТ

#####

uri = stmobile://globalmenu/items              При старте МТ
Скрипт модуля кастомизации меню

Основное назначение: дать возможность устанавливать из расширения, какие пункты меню будут доступны в приложении, а также добавлять собственные.

Предопределенные функции и переменные
  • doAction()

    Исполняется при обращении к данному скрипту принимает в качестве аргумента ключ items - QVarianList (по факту json array of objects) со структурами, описывающими каждый элемент меню, заменяет или добавляет пользовательскими значениями элементы, затем отдает результат обратно. Для модулей по умолчанию, имя которых совпало с пользовательским модулем, метод заменяет существующие поля и дополняет поля, которые не существуют по умолчанию. Для пользовательских модулей, имена которых не присутствуют в списке модулей по умолчанию, будет создан новый пункт меню в конце списка. Внимание: в итоге проверка по совпадению имени модуля является CaseInsensitive.

Локализация

Функция qsTr(string, comment) может использоваться для локализации поля title каждого пункта меню. Если локализация не требуется, вместо него можно указывать саму строку.

Пример использования

Пример js-реализации расширения действий для кастомизации меню

function doAction() {
    var defaultItems = api.context.items;
     var userDefinedItems = [
           { "name": "Summary", "icon": "globalmenu/dashboard", "title":"Summary", "uri":"stmobile://dashboard"},
           { "name": "route", "icon": "globalmenu/route", "title":"Supervisor Routes", "uri":"stmobile://route", "subtitle": "Ленинградский р-н"}
            ];

    for(var i = 0; i < userDefinedItems.length; i++) {
        var isFound = false;
        for(var j = 0; j < defaultItems.length; j++) {
            var userObject = userDefinedItems[i];
            var defaultObject = defaultItems[j];
            if(defaultObject.hasOwnProperty["name"] && defaultObject["name"].toLowerCase() === userObject["name"].toLowerCase()) {
                defaultObject["title"] = userObject["title"];
                defaultObject["icon"] = userObject["icon"];
                defaultObject["uri"] = userObject["uri"];
                defaultObject["subtitle"] = userObject["subtitle"];
                isFound = true;
            }
        }
        if(!isFound)
            defaultItems.push(userObject);
    }
    api.result.setParams("newItems", defaultItems);
    api.result.type = "ok";
}

Маршрут и торговые точки

Визиты
stmobile://action/visit/preopen                 Перед началом визита
stmobile://action/visit/postopen                После начала визита
stmobile://action/visit/presave                 Перед окончанием визита
stmobile://action/visit/postsave                После окончания визита

Документы

Документ Отгрузка
stmobile://action/sales/preopen                 Перед созданием документа Отгрузка
stmobile://action/sales/postopen                После создания документа Отгрузка
stmobile://action/sales/presave                 Перед записью документа Отгрузка
stmobile://action/sales/postsave                После записи документа Отгрузка
stmobile://action/sales/iteminit                Инициализация строки элемента документа Отгрузка
stmobile://action/sales/itempresave             Перед записью элемента документа Отгрузка
stmobile://action/sales/itempostsave            После записи элемента документа Отгрузка
stmobile://action/sales/predelete               Перед удалением документа Отгрузка
stmobile://action/sales/postdelete              После удаления документа Отгрузка
Документ Сбор заказа
stmobile://action/preorder/preopen              Перед созданием документа Сбор заказа
stmobile://action/preorder/postopen             После создания документа Сбор заказа
stmobile://action/preorder/presave              Перед записью документа Сбор заказа
stmobile://action/preorder/postsave             После записи документа Сбор заказа
stmobile://action/preorder/iteminit             Инициализация строки элемента документа Сбор заказа
stmobile://action/preorder/itempresave          Перед записью элемента документа Сбор заказа
stmobile://action/preorder/itempostsave         После записи элемента документа Сбор заказа
stmobile://action/preorder/predelete            Перед удалением документа Сбор заказа
stmobile://action/preorder/postdelete           После удаления документа Сбор заказа
Документ Заявка на дозагрузку
stmobile://action/goodsrequest/preopen          Перед созданием документа Заявка на дозагрузку
stmobile://action/goodsrequest/postopen         После создания документа Заявка на дозагрузку
stmobile://action/goodsrequest/presave          Перед записью документа Заявка на дозагрузку
stmobile://action/goodsrequest/postsave         После записи документа Заявка на дозагрузку
stmobile://action/goodsrequest/iteminit         Инициализация строки элемента документа Заявка на дозагрузку
stmobile://action/goodsrequest/itempresave      Перед записью элемента документа Заявка на дозагрузку
stmobile://action/goodsrequest/itempostsave     После записи элемента документа Заявка на дозагрузку
stmobile://action/goodsrequest/predelete        Перед удалением документа Заявка на дозагрузку
stmobile://action/goodsrequest/postdelete       После удаления документа Заявка на дозагрузку
Документ Мерчандайзинг
stmobile://action/merchandise/preopen           Перед созданием документа Мерчандайзинг
stmobile://action/merchandise/postopen          После создания документа Мерчандайзинг
stmobile://action/merchandise/presave           Перед записью документа Мерчандайзинг
stmobile://action/merchandise/postsave          После записи документа Мерчандайзинг
stmobile://action/merchandise/iteminit          Инициализация строки элемента документа Мерчандайзинг
stmobile://action/merchandise/itempresave       Перед записью элемента документа Мерчандайзинг
stmobile://action/merchandise/itempostsave      После записи элемента документа Мерчандайзинг
stmobile://action/merchandise/predelete         Перед удалением документа Мерчандайзинг
stmobile://action/merchandise/postdelete        После удаления документа Мерчандайзинг
Документ Перемещение товара
stmobile://action/goodsmovement/preopen         Перед созданием документа Перемещение товара
stmobile://action/goodsmovement/postopen        После создания документа Перемещение товара
stmobile://action/goodsmovement/presave         Перед записью документа Перемещение товара
stmobile://action/goodsmovement/postsave        После записи документа Перемещение товара
stmobile://action/goodsmovement/iteminit        Инициализация строки элемента документа Перемещение товара
stmobile://action/goodsmovement/itempresave     Перед записью элемента документа Перемещение товара
stmobile://action/goodsmovement/itempostsave    После записи элемента документа Перемещение товара
stmobile://action/goodsmovement/predelete       Перед удалением документа Перемещение товара
stmobile://action/goodsmovement/postdelete      После удаления документа Перемещение товара
Документ Возврат товара
stmobile://action/goodsreturn/preopen           Перед созданием документа Возврат товара
stmobile://action/goodsreturn/postopen          После создания документа Возврат товара
stmobile://action/goodsreturn/presave           Перед записью документа Возврат товара
stmobile://action/goodsreturn/postsave          После записи документа Возврат товара
stmobile://action/goodsreturn/iteminit          Инициализация строки элемента документа Возврат товара
stmobile://action/goodsreturn/itempresave       Перед записью элемента документа Возврат товара
stmobile://action/goodsreturn/itempostsave      После записи элемента документа Возврат товара
stmobile://action/goodsreturn/predelete         Перед удалением документа Возврат товара
stmobile://action/goodsreturn/postdelete        После удаления документа Возврат товара
Документ Приходный кассовый ордер
stmobile://action/receiptcashorder/preopen      Перед созданием документа Приходный кассовый ордер
stmobile://action/receiptcashorder/postopen     После создания документа Приходный кассовый ордер
stmobile://action/receiptcashorder/presave      Перед записью документа Приходный кассовый ордер
stmobile://action/receiptcashorder/postsave     После записи документа Приходный кассовый ордер
stmobile://action/receiptcashorder/predelete    Перед удалением документа Приходный кассовый ордер
stmobile://action/receiptcashorder/postdelete   После удаления документа Приходный кассовый ордер
Документ Фотоотчет
stmobile://action/photoreport/preopen           Перед созданием документа Фотоотчет
stmobile://action/photoreport/postopen          После создания документа Фотоотчет
stmobile://action/photoreport/presave           Перед записью документа Фотоотчет
stmobile://action/photoreport/postsave          После записи документа Фотоотчет
stmobile://action/photoreport/predelete         Перед удалением документа Фотоотчет
stmobile://action/photoreport/postdelete        После удаления документа Фотоотчет
Документ Опросный лист
stmobile://action/survey/preopen                Перед созданием документа Опросный лист
stmobile://action/survey/postopen               После создания документа Опросный лист
stmobile://action/survey/presave                Перед записью документа Опросный лист
stmobile://action/survey/postsave               После записи документа Опросный лист
stmobile://action/survey/predelete              Перед удалением документа Опросный лист
stmobile://action/survey/postdelete             После удаления документа Опросный лист
Документ Учет оборудования
stmobile://action/posm/preopen                  Перед созданием документа Учет оборудования
stmobile://action/posm/postopen                 После создания документа Учет оборудования
stmobile://action/posm/presave                  Перед записью документа Учет оборудования
stmobile://action/posm/postsave                 После записи документа Учет оборудования
stmobile://action/posm/predelete                Перед удалением документа Учет оборудования
stmobile://action/posm/postdelete               После удаления документа Учет оборудования

Задачи

Начало рабочего периода
stmobile://action/workday/preopen               Перед началом рабочего периода
stmobile://action/workday/postopen              После начала рабочего периода
stmobile://action/workday/presave               Перед окончанием рабочего периода
stmobile://action/workday/postsave              После окончания рабочего периода
Задачи агентов
stmobile://action/task/preopen                  Перед началом выполнения задачи
stmobile://action/task/postopen                 После начала выполнения задачи
stmobile://action/task/presave                  Перед окончанием выполнения задачи
stmobile://action/task/postsave                 После окончания выполнения задачи