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 После окончания выполнения задачи