       d = open("60")
       ds = open("s60")
       dp = open("spsub")
       putkey(ds,2)
       if FindGe(ds,4,3,"60","","","") != 0 then goto 1100 rem ДЕБЕТ
       kodrm = 60

       dpok = open("kpok")
       for i = 1 to size(dpok)
          getlast(dpok)
          if 'Раб.место'.dpok = kodrm then delete(dpok)
       next

       for i = 1 to size(ds)
rem          if i = 1 then getfirst(ds)
rem          if i != 1 then getnext(ds)
rem          kodrm = 'Раб.место'.ds
          nprov = 'N_проводки'.ds
          if trim('Db_счета'.ds) > "60" then goto 1100

rem          if trim('Db_счета'.ds) != "60" then goto 100
          kredit = trim('Kr_счета'.ds)
          dat = 'Дата'.ds
          doc = 'Документ'.ds
          sum = 'Сумма'.ds
          rem Дебет 60 счета, проверим сальдо
          sub = 'Db_расчеты'.ds
          if Find(d,1,1,sub) != 0 then goto 100
          if 'KrS_конец'.d = 0.0 then goto 200

          rem Кредитовое сальдо субсчета больше 0.0 - делаем запись в книгу
rem         print "Кедитовое сальдо не = 0"
          proc_nds = 'Проц.НДС'.d
          data_doc = 'Дата_док.'.d
          data_post = 'Дата_пост.'.d
          data_opr = 'Дата_опр.'.d
          nazv = 'Название'.d
          docum = 'Документ'.d
          inn = ""
          kod_okonh = ""
          kod_okpo = ""
          kod = 'Код'.d
          if Find(dp,1,1,kod) != 0 then goto 300 rem не нашли в списке предп 
          nazv = 'Название'.dp
          inn = 'ИННП'.dp
          kod_okonh = 'Код_ОКОНХП'.dp
          kod_okpo = 'Код_ОКПОП'.dp
300       clearbuf(dpok)
          'Раб.место'.dpok = kodrm
          'Дата'.dpok = data_doc          
          'Номер_док.'.dpok = docum          
          'Дата_пост.'.dpok = data_post          
          if kredit != "61" then 'Дата_опл.'.dpok = dat          
          'Дата_опр.'.dpok = data_opr         
          'Название'.dpok = nazv          
          'ИННП'.dpok = inn          
          'Код_ОКОНХП'.dpok = kod_okonh          
          'Код_ОКПОП'.dpok = kod_okpo          
          'Всего'.dpok = sum 
          if proc_nds != 20.0 then goto 400         
          'НДС_20'.dpok = (sum / 120) * 20          
          'Сумма_20'.dpok = sum - 'НДС_20'.dpok
          goto 600
400       if proc_nds = 0.0 then goto 500
          'НДС_10'.dpok = (sum / (100+proc_nds)) * proc_nds           
          'Сумма_10'.dpok = sum - 'НДС_10'.dpok
          goto 600 
500       'Сумма'.dpok = sum           
600       insert(dpok)
          goto 100 rem проводку обработали и уходим на конец цикла
                   rem это была проводка частичного закрытия кредитового сальдо
200       rem Кредитовое сальдо субсчета = 0.0 (закрылось)
          if FindGe(ds,4,4,"60",sub,"","") != 0 then goto 1200 rem нет кредита и сальдо закрылось
          if trim('Kr_счета'.ds) != "60" | trim(sub) != trim('Kr_расчеты'.ds) then goto 1200
          rem Кредитовую проводку нашли, проверим на 61 счет
          if trim('Db_счета'.ds) = "61" then goto 1000 rem ??????
          rem Закрыто не 61 счетом - запись в книгу
1200      proc_nds = 'Проц.НДС'.d
          docum = 'Документ'.d
          data_doc = 'Дата_док.'.d
          data_post = 'Дата_пост.'.d
          data_opr = 'Дата_опр.'.d
          nazv = 'Название'.d
          inn = ""
          kod_okonh = ""
          kod_okpo = ""
          kod = 'Код'.d
          if Find(dp,1,1,kod) != 0 then goto 700 rem не нашли в списке предп 
          nazv = 'Название'.dp
          inn = 'ИННП'.dp
          kod_okonh = 'Код_ОКОНХП'.dp
          kod_okpo = 'Код_ОКПОП'.dp
700       clearbuf(dpok)
          'Раб.место'.dpok = kodrm
          'Дата'.dpok = data_doc          
          rem if kredit != "61" then 'Номер_док.'.dpok = doc
          'Номер_док.'.dpok = docum          
          'Дата_пост.'.dpok = data_post          
          if kredit != "61" then 'Дата_опл.'.dpok = dat          
          'Дата_опр.'.dpok = data_opr         
          'Название'.dpok = nazv          
          'ИННП'.dpok = inn          
          'Код_ОКОНХП'.dpok = kod_okonh          
          'Код_ОКПОП'.dpok = kod_okpo          
          'Всего'.dpok = sum 
          if proc_nds != 20.0 then goto 800         
          'НДС_20'.dpok = (sum / 120) * 20          
          'Сумма_20'.dpok = sum - 'НДС_20'.dpok
          goto 910
800       if proc_nds = 0.0 then goto 900
          'НДС_10'.dpok = (sum / (100+proc_nds)) * proc_nds           
          'Сумма_10'.dpok = sum - 'НДС_10'.dpok
          goto 910 
900       'Сумма'.dpok = sum           
910       insert(dpok)
rem          print "1111111"
1000      
rem           putkey(ds,2)
rem          print nazv
          if FindGe(ds,4,3,"60",sub,dat,doc) = 0 then goto 100 

rem          for j = 1 to i
rem             if j = 1 then getfirst(ds)
rem             if j != 1 then getnext(ds)
rem          next

100    getnext(ds)
       next
1100  close(dpok)
      close(d)
      close(ds)
      close(dp)
      end