Страница 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 Я кстати тоже не врубаюсь, для чего везде люди втыкают

Код: Выделить всё

#ifdef ComponentVersion
Я так понимаю это вводилось для Галактики 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, где появилась компонентная принадлежность. Для кода самой Галактики оно ясно и понятно. Но зачем нагромождать свой код этими макросами мне непонятно. Народ действительно делает поддержку для нескольких версий Галактики? Что, у кого-то фунциклирует несколько Галактик? Тогда почему вот такой код оставляют
У меня в болванке интерфейса так настроено. По идее конструкция необязательная, но существуют регламенты разработки и следование им является "хорошим тоном". :smile:

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 (сбрасывает по дефолту).
Вообще рекомендую не бояться читать доки и хелпы. Наблюдаются явные пробелы в знаниях.