Block( Use('dcluses.ppu'), AppDCL('DCL'), DCL.SetStatus('Подготовка к печати'), DLL('D'), D.LoadLibrary('DES16.DLL', DCL.GetDES32Path()), Design('GTD'), D.Client(GTD), {Наименование таблиц - источников данных} Const('PRIM', Integer, Global, 1), Const('DOP', Integer, Global, 2), Const('ADDDOP', Integer, Global, 3), Const('VALUTA', Integer, Global, 4), Const('ADD2', Integer, Global, 5), Const('ADD', Integer, Global, 6), {Служебные переменные} Var('BufString', String, Global), Var('BufString1', String, Global), Var('BufString2', String, Global), Var('BufMemo', Memo, Global), Var('BufInt', Integer, Global), Var('BufInt1', Integer, Global), Var('BufFloat', Float, Global), Var('BufFloat1', Float, Global), Var('FlagG33', Integer, Global), Var('wp', String, Global), Var('INIResult', String, Global), Var('INIResult2', String, Global), Var('Flag', Integer, Global), Var('i', Integer, Global), Var('j', Integer, Global), {Путь к ppu-файлам} Const('PathToRpt', String, Global, DCL.GetPathToRpt()), Use('dclcomm.ppu'), Use('dclcd_prepare.ppu'), Const('PPDName', String, Global, DCL.GetPPDName()), Const('Page', Integer, Global, 2), Var('Pages', Integer, Global), Var('PageG32Limit', Integer, Global), Const('IsFirstPage', Integer, Global, 1), Const('PPDPage', String, Global, DCL.GetTmpPPD(32767)), Const('PPDDef', String, Global, DCL.GetTmpPPD(32766)), GTD.Load(PPDName), GTD.HSDP(0), GTD.SavePage(PPDPage), GTD.SDP('Default'), GTD.SavePage(PPDDef), Let(@G05,DCL.GetRecordCount(DOP)), {Количество листов} Let(@Pages, Convert(DCL.GetFieldVal(PRIM, 'G032'), Integer)), If(Pages = 0, Block( Let(@Pages, Convert((G05 - 1)/3, Integer)), If(Remainder((G05 - 1), 3) > 0, Let(@Pages, Pages + 2), Let(@Pages, Pages + 1) ) ) ), Var('SelPagesStr', String, Global), Let(@SelPagesStr, DCL.GetPages(Pages - 1)), Const('IsFirstPage', Integer, Global, 1), If(Length(SelPagesStr) > 0, Block( Let(@Page, 2), GTD.Clear(), While(Page <= Pages, Block( If(DCL.IsPageSelected((Page - 1), SelPagesStr), Let(@IsFirstPage, GenerateDocPage(GTD, (Page - 1), IsFirstPage, DCL.GetTmpPPD(Page), 'tddpage.ppu')) ), Let(@Page, Page + 1), If(G32 > G05, Let(@Page, Pages + 1)) {Обеспечение выхода из цикла, если исчерпан список печатаемых товаров (случай с корректировкой ГТД)} ) ), DCL.SetStatus('Печать'), GTD.SDP('Default'), GTD.LoadPage(PPDDef), GTD.HSDP(0), PrintDoc(GTD, 1, PPDName) ) ), D.DropClient(GTD), DropDesign(GTD), D.FreeLibrary(), DropDLL(D), DropAppDCL(DCL) )