Страница 1 из 1

Перенос стандартного пункта меню

Добавлено: 10 дек 2019, 19:42
Buddy
Добрый день, коллеги!
Клиент просит вернуть пункт меню "Формирование реестров на открытие банковских счетов" из "Управления персоналом" в "Зарплату" (до недавних обновлений он там и был).
Как это можно сделать? При этом из "Управления персоналом" пункт меню надо убрать.

Re: Перенос стандартного пункта меню

Добавлено: 11 дек 2019, 14:15
Den
viewtopic.php?f=2&t=13015&hilit=addmenuitemex2

Ну и в документации есть набор методов по работе в меню.
Просто загружается нужное меню, добавляется туда пункт, сохраняется как динамическое.
Где ну нужно - прикроете просто protect-ом пункт меню.

Re: Перенос стандартного пункта меню

Добавлено: 21 дек 2019, 13:36
edward_K
Самое простое - запихать в отчеты пользователя.
В управлении персоналом зарезать протектом(для кадровиков).
Динамические - у вас наверняка есть образцы.
Но есть одна тонкость. При каждом обновлении надо будет динамические меню создавать снова.
+ Ресурс с добавляемым подменю(если вы его будете добавлять, а не пункты меню) должен быть один, и быть доступным всем, иначе возможна ситуация, что в сапорте будет одно, а в галактике другое.
Ну и при большем кол-ве меню возможны глюки - вроде все есть, а меню нет.

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

_try
{    MenuID:=LoadMenuEx('C_COMMON::Nastr_Admin',false,true);
    AddMenuItemEx2(MenuID,'Регистрация дополнительных пунктов меню',
                          'Регистрация дополнительных пунктов меню','',cmRunInterface,0,'C_Common::ADD_MenuDynamic');

    //=====================================
    if (not StoreMenuHowDynamics(MenuID,'C_COMMON::Nastr_Admin'))
      _raise ExStoreMenuHowDynamics;
  }
  _except
    on ExStoreMenuHowDynamics:
      message('Ошибка выполнения StoreMenuHowDynamics',error);
    on ExVip:
      message(ExploreException,error);
  _finally {
    if (MenuID<>0) DisposeLoadMenu(MenuID);
  }



Перед добавлением лучше меню удалить, перезайти в галактику и потом снова добавить.

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

DeleteMenuHowDynamics('C_Common::Nastr_Admin');
Все это сидит в x$resource.