Block( Use('dcluses.ppu'), AppDCL('DCL'), DCL.SetStatus('Подготовка к печати'), DLL('D'), D.LoadLibrary('DES16.DLL', DCL.GetDES32Path()), Design('CTS'), D.Client(CTS), {Наименование таблиц - источников данных} Const('PRIM', Integer, Global, 1), {только для печати сведений из паспорта} Const('CONOSAMENT', Integer, Global, 2), {Служебные переменные} Var('BufString', String, Global), Var('BufString1', String, Global), Var('Pages', Integer, Global), Const('Page', Integer, Global, 2), Const('SertifRequest', Integer, Global, If(DCL.GetRegString('HKCU', AppRegKey('MAIN\PRINT_BUFFER'), 'КУТС в форме заявки на сертификацию', '0'), 1, 0)), Const('PassportInfo', Integer, Global, If(DCL.GetRegString('HKCU', AppRegKey('MAIN\PRINT_BUFFER'), 'КУТС в форме сведений ПТС', '0'), 1, 0)), Const('PPDName', String, Global, DCL.GetPPDName()), Const('OldCTS', Integer, Global, Pos('CTS.PPD', UpCase(PPDName))), Const('PTS', String, Global, UCase(DCL.GetFieldVal(PRIM, 'TmSign'))), { If((SertifRequest + PassportInfo + OldCTS) = 0, If(PTS='Ш',Let(@PPDName, Copy(PPDName, 1, Length(PPDName)-7) + '_sh.ppd')) ), } {Количество листов} Let(@Pages, DCL.GetRecordCount(PRIM)), Const('PPDPage', String, Global,DCL.GetTmpPPD(32767)), Const('PPDDef', String, Global,DCL.GetTmpPPD(32766)), CTS.Load(PPDName), CTS.HSDP(0), CTS.SavePage(PPDPage), CTS.SDP('Default'), CTS.SavePage(PPDDef), Const('IsFirstPage', Integer, Global, 1), CTS.Clear(), Let(@Page, 1), While(Page <= Pages, Block( Let(@IsFirstPage, GenerateDocPage(CTS, Page, IsFirstPage, DCL.GetTmpPPD(Page), 'ctspage.ppu')), DCL.MoveNext(PRIM), Let(@Page, Page + 1) ) ), DCL.SetStatus('Печать'), CTS.SDP('Default'), CTS.LoadPage(PPDDef), CTS.HSDP(0), PrintDoc(CTS, 1, PPDName), {постраничное сохранение в расчете на дальнейшее извлечение ф-ией "Из архива"} Let(@Page, 1), While(Page <= Pages, Block( CTS.SDP('Страница ' + Page), CTS.SavePage(DCL.GetTmpPPD(Page)), Let(@Page, Page + 1) ) ), D.DropClient(CTS), DropDesign(CTS), D.FreeLibrary(), DropDLL(D), DropAppDCL(DCL) )