Re: Доп. пункт в меню
Добавлено: 06 ноя 2015, 20:13
edward_K , а можно аналогично по меню интерфейса 'L_BASEDOC::VSCHETB' подсказать... как формируется выпадающее меню? Заранее спасибо.
Обсуждение различных вопросов, связанных с сопровождением, администрированием и программированием
https://ns1.tyumbit.ru/
Код: Выделить всё
cmHotKeys:
case CurTable of
//--------------
#BaseDoc:
{
ChangeEnabledCommands(true);
var bSopr108: boolean;
bSopr108 := RecordExists KatSopr where (( StepDoc.NRec == KatSopr.cStepDoc
AND word(108) == KatSopr.VidSopr )) = tsOk;
var sDynMenuName: string;
sDynMenuName := if (bSopr108, 'L_BaseDoc::mnuVschetb108', 'L_BaseDoc::mnuVschetb');
sDynMenuName += ';SEPARATOR;L_BaseDoc::mnuVschetbCont';
// динамически добавляется меню
// связь с книгой финансовых операций (Sanny)
sDynMenuName := MakeMenuWithViewFpOborot(sDynMenuName);
// высвобождение платежа (Garik)
sDynMenuName += ';SEPARATOR;L_BaseDoc::mnuVSchetBDORet';
// просмотр налоговых накладных
if (wGetTune('Country') = ccUkr)
sDynMenuName += ';SEPARATOR;L_BaseDoc::mnuNalNaklDoc';
PutHotCommand(RunDynMenu(sDynMenuName + ';SEPARATOR;C_Common::AttrClass_HotKeys'));
}
//--------------
else
{
if IsValid(#KatStroy)
SetEnableCommand(cmDocBas, FALSE);
if NOT UKS_Used
SetEnableCommand(cmMulSelDO, FALSE);
else
SetEnableCommand(cmValue41, FALSE);
ChangeEnabledCommands(SpStep.PrMc <> 1 AND KatUsl.TypeUsl = 1);
SetEnableCommand(cmNal, SpStep.PrMc = 1);
var sDynMenuName: string;
if ( (CurField = #NamTovar) or (CurField = #Nomenkl) )
{
sDynMenuName := 'L_BaseDoc::mnuVschetb1';
CASE wGetTune('OPER.BUY.CTRLF3') OF
0 : sDynMenuName += ';SEPARATOR;L_BaseDoc::mnuVschetb1_2';
1 : sDynMenuName += ';SEPARATOR;L_BaseDoc::mnuVschetb1_1';
END ;
PutHotCommand(RunDynMenu(sDynMenuName + ';SEPARATOR;L_BaseDoc::mnuVschetb1_3'));
}
else
PutHotCommand(RunMenu('mnuVschetb3'));
ChangeEnabledCommands(TRUE);
SetEnableCommand(cmDocBas, TRUE);
SetEnableCommand(cmNal , TRUE);
}
//--------------
end; // case