Додаткові виклики для заголовків/рядків документів

Додаткові виклики для заголовків/рядків документів

Сообщение vvrom » Ср июн 03, 2009 11:32 am

Є необхідність для певних типів документів чи довідників налаштовувати виклики додаткових команд для заголовку документу (в табличній частині) та рядків документу (в таблиці з рядками на формі редагування документу).

Викликами можуть бути різні скрипти із командами.
Наприклад:
1. В заголовках документів метод "Імпортувати документ із прихідної накладної".
2. В рядках документу (в таблиці з рядками на формі редагування документу) метод "Проставити відпускну ціну для усіх рядків даного документу".
3. Із довідника номенклатури перейти на рядки усіх приходів по цій номенклатурі.

Необхідно мати можливість вказувати для яких саме типів документів чи довідників та при яких додаткових умовах будуть доступні ці методи.

Чи є можливість виконати такого роду налаштування в системі на користувацькому рівні, без коригування системних файлів, щоб при проведені оновлення не зникли ці доробки?
Аватара пользователя
vvrom
Активист
Активист
 
Сообщения: 20
Зарегистрирован: Пн янв 19, 2009 7:53 pm

Сообщение Татьяна » Ср июн 03, 2009 2:37 pm

Это можно сделать добавив пункты контекстное меню

Для добавления контекстного меню, для какого-нибудь списка, нужно создать папку popupmenu в Вашем модуле или в папке userData. Это описано в статье "Расположение файлов бизнес логики Debet Plus v12" http://www.debet.kiev.ua/articles/bizneslogika/

В папке popupmenu заводится папка по имени задачи, куда мы хотим добавить контекстное меню.
Например, l_docekz, для списков документов,
l_clnmktree, для справочника номенклатуры.

В этих папках создаем файл javascript, который содержит две функции:
-userMenuLoad - в которую нужно добавить пункты контекстного меню
-userMenuRun - обработчик этих пунктов меню.

Например,
Код: Выделить всё
function userMenuLoad()
{
   if (list.m_Doclabel.toUpperCase() == "CP")
   {
      grid.AddMenuItem("MYMENUID", "Мое меню");
   }   
}

Cоздаcт пункт контекстного меню "Мое меню" в списке документов "Приходный кассовый ордер"(СР).

Обработчик
Код: Выделить всё
function userMenuRun(ID)
{
   if(ID != "MYMENUID") return;
   
   alert("Номер документа " + list.tbl.getValue("FDOC_NUM"));
}


выведет сообщение с текущим номером документа
Аватара пользователя
Татьяна
Консультант
 
Сообщения: 808
Зарегистрирован: Пн дек 01, 2008 5:04 pm


Вернуться в Вопросы по разработке в системе

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3

cron