Страница 2 из 4
Re: Добавление документа в модуль
Добавлено: 20 июн 2010, 14:08
edward_K
В общем раз сие не следует запускать каждый раз то лучше код
m0p3e добавить в добавление настроек в обработчик
Код: Выделить всё
Handler with replace ???????????????_CreateTune on extensionPoint
epCreateTuneComponent (TR: ObjCreateTuneEx) [221]
Подменю можно определить так
Код: Выделить всё
#component "Z_STAFFMENU"
MYSTAFFMENU MENU
{
= 'Плате~ж~ные требования','Ввод и редактирование платежных требований',hcBankM1PlTreb,scMenuCtx;
{
- 'С~о~бственные', cmRunInterface('F_PLPOR::PLPOR(32, 0)')
,'Ввод и редактирование собственных платежных требований',hcBankM1PlTreb;
- 'С~т~оронние', cmRunInterface('F_PLPOR::PLPOR(1032, 0)')
,'Ввод и редактирование сторонних платежных требований',hcBankM1PlTreb;
}
}
Re: Добавление документа в модуль
Добавлено: 22 июн 2010, 18:22
BlazeBio
m0p3e писал:
Добавление в главное меню:
Код: Выделить всё
#ifdef ComponentVersion
#component "Z_STAFFMENU"
#end
Interface ChangeStaffMenu;
View select * from x$resources;
HandleEvent
cmInit :
{
If Message ( 'Изменить меню модуля кадры?', YesNo ) = cmYes
{
var iMenu, SubMenu : LongInt;
DeleteMenuHowDynamics ( 'Z_STAFFMENU::STAFFDATABASEMENU' );
iMenu := LoadMenuEx ( 'Z_STAFFMENU::STAFFDATABASEMENU',true,false);
SubMenu := LoadMenu ( 'Z_STAFFMENU::MYSTAFFMENU' );
//AddSubMenu ( iMenu, SubMenu, 'Мое новое подменю','','' );
ConCatMenu ( iMenu, SubMenu );
StoreMenuHowDynamics ( iMenu,'Z_STAFFMENU::STAFFDATABASEMENU' );
DisposeLoadMenu ( iMenu );
ReinitHeaderMenu;
};
Abort;
}; //cmInit
End;
END.
MyStaffMenu Menu
{
- 'Приказы (прием на работу)', cmRunInterface ( 'Z_STAFF::Prikaz' );
}
В протекте новый пункт видно.
Извините, что так долго не отвечал. Были на то личные причины. Скажите добавление меню происходит в модуль управления персоналом. Если туда, то где оно должно появится ? Я скомпилил исходник, а ничего не поменялось ? И что значит #ifdef ComponentVersion ?
Re: Добавление документа в модуль
Добавлено: 22 июн 2010, 18:33
galover
OFF Я кстати тоже не врубаюсь, для чего везде люди втыкают
Я так понимаю это вводилось для Галактики 8.1, где появилась компонентная принадлежность. Для кода самой Галактики оно ясно и понятно. Но зачем нагромождать свой код этими макросами мне непонятно. Народ действительно делает поддержку для нескольких версий Галактики? Что, у кого-то фунциклирует несколько Галактик? Тогда почему вот такой код оставляют
Код: Выделить всё
LoadMenu('Z_STAFFMENU::MYSTAFFMENU'); // для Галактики ниже 8.1 это выстрелит исключением
// По правильному тогда
LoadMenu(
#ifdef ComponentVersion
'Z_STAFFMENU::MYSTAFFMENU'
#else
'MYSTAFFMENU'
#end
);
Или может я чего не понимаю :hz:
Re: Добавление документа в модуль
Добавлено: 22 июн 2010, 18:36
m0p3e
Извините, что так долго не отвечал. Были на то личные причины. Скажите добавление меню происходит в модуль управления персоналом. Если туда, то где оно должно появится ? Я скомпилил исходник, а ничего не поменялось ?
Сервис/Утилиты/Запуск внешнего интерфейса там выбрать интерфейс ShangeStaffMenu.
Результат смотреть в модуле "Управление персоналом". УП выбрано в качестве теста. Свой обратботчик встраиваете в модуль по задаче.
И что значит #ifdef ComponentVersion ?
Макропеременная. Пользуемся поиском.
Re: Добавление документа в модуль
Добавлено: 22 июн 2010, 18:40
m0p3e
Я так понимаю это вводилось для Галактики 8.1, где появилась компонентная принадлежность. Для кода самой Галактики оно ясно и понятно. Но зачем нагромождать свой код этими макросами мне непонятно. Народ действительно делает поддержку для нескольких версий Галактики? Что, у кого-то фунциклирует несколько Галактик? Тогда почему вот такой код оставляют
У меня в болванке интерфейса так настроено. По идее конструкция необязательная, но существуют регламенты разработки и следование им является "хорошим тоном".
Re: Добавление документа в модуль
Добавлено: 22 июн 2010, 18:56
BlazeBio
m0p3e,ChangeStaffMenu во внешних интерфейсах нет. И там же я не нахожу группы интерфейсов с компонентом Z_STAFFMENU ? В чём может быть причина ?
Re: Добавление документа в модуль
Добавлено: 22 июн 2010, 19:01
galover
пропало имя юзера при вставке цитаты (т.е. кого цитируем), какие-то бесполезные огромные кавычки вместо этого. Не айс, раньше лучше было
Re: Добавление документа в модуль
Добавлено: 22 июн 2010, 19:38
edward_K
BlazeBio писал(а):m0p3e,ChangeStaffMenu во внешних интерфейсах нет. И там же я не нахожу группы интерфейсов с компонентом Z_STAFFMENU ? В чём может быть причина ?
Vip.VisibleAllInterface=On в cfg и будет вам счастье, в противном случае фейсы без визуальной части не показываются - а здесь ее нет.
Re: Добавление документа в модуль
Добавлено: 22 июн 2010, 19:53
BlazeBio
edward_K, интерфейс виден, только при запуске вылетает ошибка "ExLoadMenuError(ExVip), что интерфейс Z_STAFFMENU::MYSTAFFMENU не найден в ресурсе ". Из-за чего это может быть ?
Re: Добавление документа в модуль
Добавлено: 22 июн 2010, 20:10
edward_K
#define ComponentVersion
в проекте или в 1 строке
Re: Добавление документа в модуль
Добавлено: 22 июн 2010, 20:24
galover
OFF прогнал, есть оказывается имя пользователя в цитате
Re: Добавление документа в модуль
Добавлено: 23 июн 2010, 16:01
BlazeBio
edward_K писал(а):#define ComponentVersion
в проекте или в 1 строке
Если добавить эту строку, то интерфейс исчезает из списка вызываемых в утилиты/запуск внешнего интерфейса?!
Re: Добавление документа в модуль
Добавлено: 23 июн 2010, 16:21
m0p3e
Если добавить эту строку, то интерфейс исчезает из списка вызываемых в утилиты/запуск внешнего интерфейса?!
Потому как появляется под именем
Z_STAFFMENU::ChangeStaffMenu
Re: Добавление документа в модуль
Добавлено: 23 июн 2010, 17:37
BlazeBio
Да, появилось Z_STAFFMENU::ChangeStaffMenu. А как удалить созданное меню? Я нашёл, что есть команда DeleteMenuItem. Там есть 4 параметра. Как я понимаю для моего случая menuID:=LoadMenu('Z_STAFFMENU::STAFFDATABASEMENU') и name='Приказы (прием на работу)'. А command и commandParams что за они?
edward_K писал(а):В общем раз сие не следует запускать каждый раз то лучше код
m0p3e добавить в добавление настроек в обработчик
Код: Выделить всё
Handler with replace ???????????????_CreateTune on extensionPoint
epCreateTuneComponent (TR: ObjCreateTuneEx) [221]
Подменю можно определить так
Код: Выделить всё
#component "Z_STAFFMENU"
MYSTAFFMENU MENU
{
= 'Плате~ж~ные требования','Ввод и редактирование платежных требований',hcBankM1PlTreb,scMenuCtx;
{
- 'С~о~бственные', cmRunInterface('F_PLPOR::PLPOR(32, 0)')
,'Ввод и редактирование собственных платежных требований',hcBankM1PlTreb;
- 'С~т~оронние', cmRunInterface('F_PLPOR::PLPOR(1032, 0)')
,'Ввод и редактирование сторонних платежных требований',hcBankM1PlTreb;
}
}
Где можно узнать что-нибудь о hcBankM1PlTreb и scMenuCtx? И что за параметры в скобках в 'F_PLPOR::PLPOR(1032, 0)?
Re: Добавление документа в модуль
Добавлено: 23 июн 2010, 17:43
m0p3e
BlazeBio писал(а):Да, появилось Z_STAFFMENU::ChangeStaffMenu. А как удалить созданное меню? Я нашёл, что есть команда DeleteMenuItem. Там есть 4 параметра. Как я понимаю для моего случая menuID:=LoadMenu('Z_STAFFMENU::STAFFDATABASEMENU') и name='Приказы (прием на работу)'. А command и commandParams что за они?
DeleteMenuHowDynamics ( 'Z_STAFFMENU::STAFFDATABASEMENU' ); - удаляет измененное меню из x$resources (сбрасывает по дефолту).
Вообще рекомендую не бояться читать доки и хелпы. Наблюдаются явные пробелы в знаниях.