Ошибка компиляции при Alter Interface
Добавлено: 25 ноя 2013, 13:41
Уважаемые форумчане,
Компиляция файла заканчивается сообщением "Ошибка: Компиляция прервана в результате ошибки процесса компиляции. (стр. 0, поз. 0)".
В логе об ошибках появляется вот такое описание:
Вот исходный текст интерфейса:
Компиляция файла заканчивается сообщением "Ошибка: Компиляция прервана в результате ошибки процесса компиляции. (стр. 0, поз. 0)".
В логе об ошибках появляется вот такое описание:
Код: Выделить всё
Необработанная исключительная ситуация
Код исключения: C0000005 (Общее нарушение защиты доступа к памяти)
Параметры исключения (2): 00000000 00000035
Адрес исключения: 00930ADC streams_.dll.1:0002FADC
Содержимое регистров процессора
EAX = 0000002D
EBX = 0B1A4848
ECX = 00000000
EDX = 00440720 ViperCompile.exe.1:0003F720
ESI = 0A785360
EDI = 00000000
EBP = 0385D324
ESP = 0385D304
EIP = 00930ADC streams_.dll.1:0002FADC
CS = 0023 База: 00000000 Размер: FFFFFFFF Флаги: CFB
DS = 002B База: 00000000 Размер: FFFFFFFF Флаги: CF3
SS = 002B База: 00000000 Размер: FFFFFFFF Флаги: CF3
ES = 002B База: 00000000 Размер: FFFFFFFF Флаги: CF3
FS = 0053 База: 7EFDA000 Размер: 00000FFF Флаги: 4F3
GS = 002B База: 00000000 Размер: FFFFFFFF Флаги: CF3
Содержимое стека
0385D314: 004407BC ViperCompile.exe.1:0003F7BC
0385D324: 00929624 streams_.dll.1:00028624
0385D328: 004431DD ViperCompile.exe.1:000421DD
0385D334: 0062C750 ViperCompile.exe.2:00001750
0385D33C: 0092AC13 streams_.dll.1:00029C13
0385D340: 003407EC atlantis.rtl.1:0005F7EC
0385D358: 00930B4F streams_.dll.1:0002FB4F
0385D35C: 00930908 streams_.dll.1:0002F908
0385D36C: 00930D44 streams_.dll.1:0002FD44
0385D378: 00930FAA streams_.dll.1:0002FFAA
0385D384: 0093100A streams_.dll.1:0003000A
0385D388: 00402EAC ViperCompile.exe.1:00001EAC
0385D38C: 00439840 ViperCompile.exe.1:00038840
0385D394: 0043F9B4 ViperCompile.exe.1:0003E9B4
0385D398: 0043AA1C ViperCompile.exe.1:00039A1C
0385D39C: 00402EAC ViperCompile.exe.1:00001EAC
0385D3A4: 0062C710 ViperCompile.exe.2:00001710
0385D3C0: 00323507 atlantis.rtl.1:00042507
0385D3D4: 002F841B atlantis.rtl.1:0001741B
0385D3DC: 002F8A2D atlantis.rtl.1:00017A2D
0385D3F4: 002F4E00 atlantis.rtl.1:00013E00
0385D3F8: 0034EF8C atlantis.rtl.2:00000F8C
Код: Выделить всё
#include GetKau.vih
#include ExtAttr.vih
#include ExtClass.vih
#include ValFunc.vih
#include BranchHelper.vih
#include aOfpCalc.vih
#include xlReport.Vih
!#include xlSetUp.Vih
!#include aAktOfp.vih
!#include KauConst.inc
const
#include fpConst.inc
end;
alter interface OfpByDr ('');
overload
end;
ExtendFormats scrDocReq01;
const
MAIN_MENU : string[16] = 'F_OFP::MNUDOCREQ';
TO_PAY : string[9 ] = 'к платежу';
cmDoGroupSelect : word = 60001;
cmPrintRegistr : word = 60002;
START_ROW : word = 7;
TEMPL_ID : string = 'F_OFP\IndentReestr';
COL_NPP : string = 'COL_NPP';
COL_NUM : string = 'COL_NUM';
COL_STEP : string = 'COL_STEP';
COL_STBD : string = 'COL_STBD';
COL_STSUM : string = 'COL_STSUM';
COL_ACCDT : string = 'COL_ACCDT';
COL_ACCNUM : string = 'COL_ACCNUM';
COL_CONTRACTOR : string = 'COL_CONTRACTOR';
COL_SUMNDE : string = 'COL_SUMNDE';
COL_SUMVAL : string = 'COL_SUMVAL';
COL_VAL : string = 'COL_VAL';
COL_NUMPLAT : string = 'COL_NUMPLAT';
COL_DTPLAT : string = 'COL_DTPLAT';
COL_PRIOR : string = 'COL_PRIOR';
COL_PAYER : string = 'COL_PAYER';
COL_PRIM : string = 'COL_PRIM';
VAR_USD : string = 'VAR_USD';
VAR_EUR : string = 'VAR_EUR';
VAR_CO : string = 'VAR_CO';
VAR_DATE : string = 'VAR_DATE';
VAR_POST1 : string = 'VAR_POST1';
VAR_FIO1 : string = 'VAR_FIO1';
end;
var
pXL : XLSRepBuilder;
sXLTFileName
,sXLSFileName : string;
hasValDocRec : boolean; // есть хотя бы одна валютная или валютно-рублевая заявка
firstCO : string; // первый попавшийся центр ответственности
fio1 : string;
post1 : string;
table struct TIndent
(
Npp : longint,
Number : string,
Step : string,
AccDate : string,
AccNum : string,
Contractor: string,
SumNDE : double,
SumVal : double,
Val : string,
Prior : string,
Payer : string,
cIndent : comp
)
with index
(
ind01 = Npp (unique, autoinc)
);
table struct TStBudj
(
cIndent : comp,
Name : string,
Summa : double
)
with index
(
ind01 = cIndent
);
table struct TInTotal
(
Summa : double,
Val : string
)
with index
(
ind01 = Val (unique)
);
var
gl_cAttrNam : comp;
orderColumn : longint;
sCurVal : string;
#include ExtAttr.var // piExtAttr
#include ExtClass.var // piExtClass
#include ValFunc.var
create view
var
vi_cOrder
,vi_cPrRegZakaz
,vw_cMnPlan : comp;
vi_dDatVal : date;
as select
piExtAttr.sGetAttrID(coDocReq, DocReq.Nrec, gl_cAttrNam)
(fieldname = OrderName)
,if (isValid(#PrRegBaseDoc), PrRegBaseDoc.NoDoc + ' от ' + DateToStr(PrRegBaseDoc.DDoc, 'DD/MM/YYYY'), '')
(fieldName = InfoOfBaseDoc)
,piExtClass.GetClassCode ( coDocReq, 'Этап оплаты' )
(fieldName = flStepClass)
from
MnPlan
,KlVal
,MnPlan PrRegZakaz
,KatNotes DRKatNotes
,StatLog StLog
,KatOrg PrRegKatOrg
,BaseDoc PrRegBaseDoc
,KlVal PrRegKlVal
,Dogovor PrRegDogovor
,CursVal PrRegCursVal
,MnPlan MnPlanName
,FpSpAttr PrRegFpSpAttr
,FpStBud PrRegFpStBud
,FpCO PrRegFpCO
,Persons PrRegPersons
,Appointments
,Catalogs
,TIndent
,TStBudj
,TInTotal
where
((
vi_cOrder == MnPlan.Nrec
and tREQ_RASHOD == DrKatNotes.VidDoc
and word(1) == DrKatNotes.Status
and TO_PAY == DrKatNotes.Name
// для печати реестра
and vi_cPrRegZakaz == PrRegZakaz.nRec
//and DocReq.Prior == PrRegPriority.Npp
and DocReq.cOrg == PrRegKatOrg.nRec
and DocReq.cDogovor == PrRegDogovor.nRec
and DocReq.cBaseDoc == PrRegBaseDoc.nRec
and DocReq.cVal == PrRegKlVal.nRec
and cgKat_DocReq == PrRegFpSpAttr.wCode
and DocReq.Nrec == PrRegFpSpAttr.cRec
and PrRegFpSpAttr.cMean == PrRegFpStBud.Nrec
and DocReq.cPodr == PrRegFpCO.Nrec
and PrRegFpCO.cPersons == PrRegPersons.Nrec
and PrRegPersons.AppointCur== Appointments.Nrec
and Appointments.Post == Catalogs.Nrec
and DocReq.cVal == PrRegCursVal.KodValut
and vi_dDatVal >>= PrRegCursVal.DatVal
and TIndent.cIndent == TStBudj.cIndent
and sCurVal == TInTotal.Val
// для получения имени заказа
and vw_cMnPlan == MnPlanName.Nrec
))
;
Function getMnPlanName(acMnPlan: comp) : String;
{
result := '';
vw_cMnPlan := acMnPlan;
if (GetFirst FastFirstRow MnPlanName = tsOk)
result := MnPlanName.Name;
}
Procedure SaveSelOrder();
{
SaveMyDsk(vi_cOrder, 'OfpByDr_vi_cOrder' )
}
Procedure LoadSelOrder();
{
if (not ReadMyDsk(vi_cOrder, 'OfpByDr_vi_cOrder', true ))
vi_cOrder := 0;
}
Procedure InsToStatLog(p_cDoc, p_cNote: comp; p_Status : word);
var
pv_OldSt : word;
pv_OldNt : comp;
{
pv_OldSt := 0;
pv_OldNt := 0h;
if (GetFirst StLog where (( tREQ_RASHOD == StLog.DocType
and p_cDoc == StLog.cDoc
))
= tsOk )
{
pv_OldSt := StLog.NewStatus;
pv_OldNt := StLog.cNewNote;
}
insert StLog
set
StLog.cDoc := p_cDoc
,StLog.DocType := tREQ_RASHOD
,StLog.DOper := Cur_Date
,StLog.cNewNote := p_cNote
,StLog.TimeOper := Cur_Time
,StLog.DesGr := sGetTune('USER.DESGR')
,StLog.Descr := sGetTune('USER.DESCR')
,StLog.NewStatus := p_Status
,StLog.OldStatus := pv_OldSt
,StLog.cOldNote := pv_OldNt
,StLog.Comment := 'Изменен автоматически при формировании фин. обязательства'
;
}
Procedure UpdateStatus();
{
// меняем статус, только если есть финобязательство
if (RecordExists AktOfp where ((DocReq.Nrec == AktOfp.cBudVar))
!= tsOk)
exit;
// только если предыдущий статус был исполняемым
if (DocReq.Status = 1)
{
if (GetFirst DRKatNotes = tsOk)
{
DocReq.cNote := DRKatNotes.nRec
InsToStatLog(DocReq.Nrec, DocReq.cNote, DRKatNotes.Status)
Update current DocReq;
}
}
}
Procedure ChangeStatus_ToPay;
{
if GetMarkerCount( markRecord ) = 0
{
UpdateStatus();
}
else
{
var lv_cReq : comp;
var i : integer;
i := 0;
lv_cReq := 0;
PushPos(#DocReq);
while GetMarker(markRecord, i++, lv_cReq)
{
if (GetFirst DocReq where ((lv_cReq == DocReq.nRec))
= tsOk
)
{
UpdateStatus();
}
}
PopPos(#DocReq);
}
RescanPanel(#DocReq)
}
function MarkAllRecords() : void;
{
_Loop DocReq
InsertMarker(markRecord, DocReq.nRec);
RereadRecord();
}
function addSumToTotal(p_Sum: double; p_Val : string): void;
{
if (p_Sum = 0)
Exit;
sCurVal := p_Val;
if (GetFirst FastFirstRow TInTotal = tsOk)
{
update current TInTotal set TInTotal.Summa := TInTotal.Summa + p_Sum;
}
else
{
insert TInTotal set TInTotal.Summa := p_Sum, TInTotal.Val := p_Val;
}
}
function prepareReportData(): boolean;
{
StartNewVisual(vtRotateVisual, vfTimer, 'Подготовка данных для отчета...', 0);
MtClear(#TIndent, mfNormal);
MtClear(#TStBudj, mfNormal);
MtClear(#TInTotal, mfNormal);
hasValDocRec := false;
firstCO := fio1 := post1 := '';
_Loop DocReq
{
if (FoundMarker(markRecord, DocReq.nRec))
{
ClearBuffer(#TIndent);
if (firstCO = '')
if (isValid(#PrRegFpCO))
{
firstCO := PrRegFpCO.Name;
if (GetFirst FastFirstRow PrRegPersons = tsOk)
{
fio1 := PrRegPersons.FIO;
if (GetFirst FastFirstRow Appointments = tsOk)
if (GetFirst FastFirstRow Catalogs = tsOk)
post1 := Catalogs.Name;
}
}
TIndent.cIndent := DocReq.Nrec;
TIndent.Number := DocReq.NoDoc;
TIndent.Step := piExtClass.getSegName(flStepClass, DocReq.Nrec);
TIndent.Payer := BranchHelper::GetBranchName(GetCurrentBranch());
TIndent.Prior := piOfpCalc.Priority_GetName(DocReq.Prior)
if (isValid(#PrRegKatOrg))
TIndent.Contractor := PrRegKatOrg.Name;
if (isValid(#PrRegBaseDoc))
{
TIndent.AccDate := DateToStr(PrRegBaseDoc.DDoc, 'DD.MM.YYYY');
TIndent.AccNum := PrRegBaseDoc.NoDoc;
}
case DocReq.TipMoney of
1 : {
TIndent.SumNDE := DocReq.Summa;
addSumToTotal(TIndent.SumNDE, 'RUR');
}
2 : {
hasValDocRec := true;
TIndent.SumNDE := oValFunc.CurrencyExchange(DocReq.cVal, DocReq.Summa, 0, Cur_Date());
TIndent.SumVal := DocReq.Summa;
addSumToTotal(TIndent.SumNDE, 'RUR');
if (isValid(#PrRegKlVal))
TIndent.Val := PrRegKlVal.SimvolV;
}
3 : {
hasValDocRec := true;
TIndent.SumVal := DocReq.Summa;
if (isValid(#PrRegKlVal))
{
TIndent.Val := PrRegKlVal.SimvolV;
addSumToTotal(TIndent.SumVal, TIndent.Val);
}
}
end;
Insert current TIndent;
// статьи бюджета
_Loop PrRegFpSpAttr
{
if (GetFirst FastFirstRow PrRegFpStBud = tsOk)
Insert TStBudj
Set
Name := PrRegFpStBud.LevelCode
,Summa := PrRegFpSpAttr.Summa
,cIndent:= TIndent.cIndent;
}
}
}
StopVisual('',0);
result := true;
}
function getValBySimvol(p_simv: string): comp;
{
result := 0;
if (GetFirst FastFirstRow KlVal where ((p_simv == KlVal.SimvolV)) = tsOk)
result := KlVal.Nrec;
}
function printInTotal(): void;
var
xLeft
, yTop
, xRight
, yBottom
, nRow : longint;
{
sCurVal := 'RUR';
if (GetFirst TInTotal = tsOk)
{
pXL.ClearTblBuffer();
pXL.SetTblStringFldValue(COL_CONTRACTOR, 'Итого:');
pXL.SetTblNumberFldValue(COL_SUMNDE, TInTotal.Summa);
pXL.InsTblRow();
}
ResetBounds(#TInTotal)
_Loop TInTotal
{
if (TInTotal.Val = 'RUR')
continue;
pXL.ClearTblBuffer();
pXL.SetTblStringFldValue(COL_CONTRACTOR, 'Итого:');
pXL.SetTblNumberFldValue(COL_SUMVAL, TInTotal.Summa);
pXL.SetTblStringFldValue(COL_VAL, TInTotal.Val);
pXL.InsTblRow();
}
SetBounds(#TInTotal)
}
function RunPrintRegistr(p_createTemplateOnly: boolean = false) : void;
var
rowCount : longint;
{
if (GetMarkerCount(markRecord) = 0)
{
if (message('Не помечено ни одной записи. Пометить все?', YesNo) = cmYes)
MarkAllRecords();
else
{
abort;
exit;
}
}
if (not prepareReportData())
Exit;
ResetBounds(#TStBudj);
rowCount := RecordsInTable(#TIndent) + RecordsInTable(#TStBudj);
SetBounds(#TStBudj);
sXLTFileName := TranslatePath('%ClientStartPath%') + 'XLS\' + TEMPL_ID + '.xlt';
StartNewVisual(vtNumericVisual, vfTimer, 'Печать отчета...', 0);
if (p_createTemplateOnly)
sXLSFileName := pXl.CreateXLT(sXLTFileName, true);
else
sXLSFileName := pXl.CreateReport(sXLTFileName, true);
pXL.CreateTbls(sXLSFileName);
pXL.CreateTbl('Reestr');
pXL.CreateTblFld(COL_NPP );
pXL.CreateTblFld(COL_NUM );
pXL.CreateTblFld(COL_STEP );
pXL.CreateTblFld(COL_STBD );
pXL.CreateTblFld(COL_STSUM );
pXL.CreateTblFld(COL_ACCDT );
pXL.CreateTblFld(COL_ACCNUM );
pXL.CreateTblFld(COL_CONTRACTOR);
pXL.CreateTblFld(COL_SUMNDE );
pXL.CreateTblFld(COL_SUMVAL );
pXL.CreateTblFld(COL_VAL );
pXL.CreateTblFld(COL_NUMPLAT );
pXL.CreateTblFld(COL_DTPLAT );
pXL.CreateTblFld(COL_PRIOR );
pXL.CreateTblFld(COL_PAYER );
pXL.CreateTblFld(COL_PRIM );
if (not p_createTemplateOnly)
{
_Loop TIndent
{
NextVisual;
pXL.ClearTblBuffer;
pXL.SetTblStringFldValue(COL_NPP , TIndent.Npp);
pXL.SetTblStringFldValue(COL_NUM , TIndent.Number);
pXL.SetTblStringFldValue(COL_STEP , TIndent.Step);
pXL.SetTblStringFldValue(COL_ACCDT , TIndent.AccDate);
pXL.SetTblStringFldValue(COL_ACCNUM , TIndent.AccNum);
pXL.SetTblStringFldValue(COL_CONTRACTOR, TIndent.Contractor);
pXL.SetTblNumberFldValue(COL_SUMNDE , TIndent.SumNDE);
pXL.SetTblNumberFldValue(COL_SUMVAL , TIndent.SumVal);
pXL.SetTblStringFldValue(COL_VAL , TIndent.Val);
pXL.SetTblStringFldValue(COL_PRIOR , TIndent.Prior);
pXL.SetTblStringFldValue(COL_PAYER , TIndent.Payer);
var bool : boolean;
bool := true
_Loop TStBudj
{
if (not bool)
pXL.ClearTblBuffer;
pXL.SetTblStringFldValue(COL_STBD , TStBudj.Name);
pXL.SetTblNumberFldValue(COL_STSUM, TStBudj.Summa);
pXL.InsTblRow();
bool := false;
}
if (bool)
pXL.InsTblRow();
}
}
printInTotal();
pXL.PublishTbl('Reestr');
pXL.CreateVar(sXLSFileName);
pXL.SetStringVar(VAR_CO , firstCo);
pXL.SetNumberVar(VAR_USD , if (hasValDocRec, oValFunc.Rate(getValBySimvol('USD'),Cur_Date()),''));
pXL.SetNumberVar(VAR_EUR , if (hasValDocRec, oValFunc.Rate(getValBySimvol('EUR'),Cur_Date()),''));
pXL.SetStringVar(VAR_DATE, DateToStr(Cur_Date, 'DD.MM.YYYY'));
pXL.SetStringVar(VAR_FIO1, fio1);
pXL.SetStringVar(VAR_POST1, post1);
pXL.PublishVar;
pXL.LoadReport(sXLSFileName);
Message(' Запускается формирование отчета из файла ' + sXLSFileName + Chr(13) +
' Шаблон берётся здесь:' + sXLTFileName);
pXL.DisConnectExcel();
StopVisual('',0);
}
Window winDocReq_Edit 'Заявки' EscClose;
Show at (,,90,35);
Panel panDocReq;
Show at (,,,26);
Table DocReq;
// расходование средств
/*Screen scrDocReq01 (,hcOfpIReqRashodEdit,sci178Esc);
Fields
OrderName (,,sci13Esc) : noProtect, PickButton;
[ContentBillComment] piExtAttr.sGetAttr(coDocReq, DocReq.Nrec, CONTENT_BILL_ATTR_NAME) : noProtect;
<<
`Заказ` .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
`Содержание счета` .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
>>
end; // Screen*/
handleEvent
cmPick:
{
if (inherited::handleevent(cmPick) != heok)
{
abort;
exit;
}
Case CurField of
#OrderName:
{
var cTmp : comp; //nrec заказа из внешнего атрибута
cTmp := piExtAttr.coGetAttrID(coDocReq, DocReq.Nrec, gl_cAttrNam);
iGetKau.GetCodeKau(cgiNo, cgKau_Zakaz, cTmp);
piExtAttr.coSetAttrID(coDocReq, DocReq.Nrec, gl_cAttrNam, cTmp, getMnPlanName(cTmp));
set OrderName;
}
end;
}
cmExprFieldChanged:
{
/*if (inherited::handleevent(cmExprFieldChanged) = heok) {}
Case CurField of
#ContentBillComment:
{
if piDocReq.DocReq_CanEdit(TDocReq(DocReq.buffer), true, true)
if (OldFieldValue != ExprFieldValue)
piExtAttr.sSetAttr(coDocReq, DocReq.Nrec, CONTENT_BILL_ATTR_NAME, ExprFieldValue);
}
end; */
}
end; //handleEvent
end; //panel
end; //window winDocReq_Edit
Window wSelOrder 'Выбор заказа (вн. атр. "Заказ")', doAccept, EscClose, Dialog;
show at (,,57, 5)
Screen scSelOrder;
fields
[SelOrder] if (vi_cOrder = 0, NOTHING_SELECTED, MnPlan.Name) : pickButton, protect,
{font = {italic = (vi_cOrder = 0); backcolor = if (vi_cOrder = 0, COLORNEED, 0)}};
[NSelOrder] if (vi_cOrder = 0, '', MnPlan.Number) : pickButton, protect,
{font = {italic = (vi_cOrder = 0); backcolor = if (vi_cOrder = 0, COLORNEED, 0)}};
buttons
cmOk , default,, ;
cmCancel ,,, ;
<<
`Выделить по:`.@@@@@@@@@@@@@@@@@@@@@@@@@@.@@@@@@@@@@
<. Далее .> <. Отмена .>
>>
end;
HandleEvent
cmInit :
{
LoadSelOrder();
}
cmPick :
{
case CurField of
#SelOrder, #NSelOrder:
{
iGetKau.GetCodeKau(cgiNo, cgKau_Zakaz, vi_cOrder);
Set vi_cOrder := vi_cOrder;
}
end;
}
cmOk :
{
if (vi_cOrder = 0)
{
Message('Выберите сначала заказ, по которому хотите выделить заявки', Information);
Exit;
}
SaveSelOrder();
StartNewVisual(vtNumericVisual, vfTimer, 'Выделяю...', 1)
ClearMarker(markRecord);
PushPos(#DocReq)
_Loop DocReq
{
var tmpOrder : comp;
NextVisual;
tmpOrder := piExtAttr.coGetAttrID(coDocReq, DocReq.Nrec, gl_cAttrNam);
if (tmpOrder = vi_cOrder)
{
InsertMarker(markRecord, DocReq.Nrec);
}
}
PopPos(#DocReq)
StopVisual('', 0)
CloseWindow(wSelOrder);
RereadRecord();
}
end;
end;
HandleEvent
cmInit :
{
gl_cAttrNam := piExtAttr.CreateAttrComp(coDocReq, ORDER_ATTR_NAME, cgAttrType_Comp, cgKatKau_Table, cgKau_Zakaz);
// добавляю колонку Заказ после колонки Номер заявки
cfsSetCurrentContainer('F_OFP::OFPBYDR.BRDOCREQ')
if (cfsCreateObject ('Column', 'BRDOCREQ', 'OrderName', false, orderColumn)
= cfOk)
{
cfsSetProp(orderColumn, cfpTitle, 'Заказ');
cfsSetProp(orderColumn, cfpIndex, integer(3));
cfsSetProp(orderColumn, cfpDefWidth, integer(10));
}
// колонка "Счёт"
if (cfsCreateObject ('Column', 'BRDOCREQ', 'InfoOfBaseDoc', false, orderColumn)
= cfOk)
{
cfsSetProp(orderColumn, cfpTitle, 'Счёт');
cfsSetProp(orderColumn, cfpIndex, integer(4));
cfsSetProp(orderColumn, cfpDefWidth, integer(10));
cfsSetProp(orderColumn, cfpProtect, true);
}
if (Inherited :: HandleEvent (cmInit) ) = heOk
{
if (not MenuHelper::DynamicMenuIsExists(MAIN_MENU))
if (Message('Для того, чтоб был доступен дополнительный функционал '#13'' +
'необходимо изменить стандартное меню.'#13'' +
'Сделать это сейчас?', Confirmation + YesNo
)
= cmYes
)
{
MenuHelper::GetDynMenuBuilder(MAIN_MENU)
.addSeparator()
.addItem('Групповое выделение по заказу (ЭП-Аудит)', cmDoGroupSelect)
.addItem('Печать реестра (ЭП-Аудит)', cmPrintRegistr)
.storeAndDispose();
}
}
}
cmDone:
{
Inherited :: HandleEvent (cmDone);
cfsDestroyObject(orderColumn);
}
cmDoGroupSelect:
{
RunWindowModal(wSelOrder)
}
cmPrintRegistr :
{
RunPrintRegistr();
}
cmNal :
{
if (Inherited :: HandleEvent(cmNal) = heOk)
{
if (piAktOfp.AktOfp_GetTypeOfReason(parDocType) = rsREQUEST_PRD)
Exit;
ChangeStatus_ToPay();
}
}
end;
end.