rem +
rem Сформировать книгу покупок для счета 60
rem в s60.btr Kr_счета = 60

rem Перед заполнением книги покупок удалить из нее все записи, где
rem Дата_опл. непуста и Дата < содержимое tdata.btr (месяц и год)
        dtdata = open("tdata")
        getfirst(dtdata)
        TData = substr('Тек.дата'.dtdata,1,6) rem год и месяц

        flag_delete = 0
        d = open("kpok")
        for i = 1 to size(d)
                if i = 1 then getfirst(d)
                if i != 1 & flag_delete = 0 then getnext(d)
rem    if 'Дата_опл.'.d != "        " & substr('Дата_док.'.d,1,6) < TData then goto 10
rem         goto 20
rem 10                        delete(d)
rem                        flag_delete = 1
rem                          goto 30
rem 20                      flag_delete = 0
30        next
        
rem Формирование книги покупок
       d1 = open("60")
       ds1 = open("s60")
       ds2 = open("s19")
       ds3 = open("s19-1")
rem       ds4 = open("s19-2")
rem    Идем по файлу s60 и ищем записи, т.ч. Db_счета = 60
     putkey(ds1,3)
         Doc2 = " "
         Dat2 = "       "
         data_opl = "        "
         getfirst(ds1)
         Kredit2 = trim('Kr_расчеты'.ds1)

       for i = 1 to size(ds1)
          if i = 1 then getfirst(ds1)
          if i != 1 then getnext(ds1)
          if trim('Kr_счета'.ds1) != "60" then goto 100

rem       Найдена запись, т.ч. Kr_счета = 60
rem       WorkPlace = 'Раб.место'.ds1
     if trim('Db_счета'.ds1)="10" | trim('Db_счета'.ds1)="12" | trim('Db_счета'.ds1)="08" then goto 200
     if trim('Db_счета'.ds1)="44" | trim('Db_счета'.ds1)="41" then goto 200
     if trim('Db_счета'.ds1)="80" | trim('Db_счета'.ds1)="04" then goto 200
        goto 100
200       Document = 'Документ'.ds1
          Dat = 'Дата'.ds1
          Kredit = trim('Kr_расчеты'.ds1)
        if Document = Doc2 & Dat = Dat2 & Kredit = Kredit2 then goto 800
             goto 850
800         Sum = Sum + 'Сумма'.ds1
             goto 900
850         Sum = 'Сумма'.ds1

900       Debet = trim('Db_расчеты'.ds1)
          Kredit = trim('Kr_расчеты'.ds1)
          Deb = trim('Db_счета'.ds1)
          Kr = trim('Kr_счета'.ds1)
rem       Идем по 1 индексу файла 60 (Субсчет) и ищем записи,
rem       т.ч. Субсчет.60 = Kr_расчеты.s60
          if Find(d1,1,1,Kredit) != 0 then goto 100
          Code = 'Код'.d1
          Name = 'Название'.d1
    
          if 'DbS_конец'.d1 = 0 & 'KrS_конец'.d1 = 0 then goto 350
           goto 450
350           opl = 1
           goto 550
450           opl = 0
              print "Не найдена оплата по док. ",Document
550       NDS_10 = 0
          SUM_10 = 0

          if Find(ds2,4,4,Kr,Kredit,Dat,Document) != 0 then goto 300
          NDS_18 = 'Сумма'.ds2
          SUM_18 = Sum
          NDS_20 = 0
          SUM_20 = 0
          NDS_10 = 0
          SUM_10 = 0
          SUM_0 = 0
     print Code,NDS_18,SUM_18
          goto 400

300       NDS_18 = 0
          SUM_18 = 0
          NDS_20 = 0
          SUM_20 = 0

       if Find(ds3,4,4,Kr,Kredit,Dat,Document) != 0 then goto 301
          NDS_10 = 'Сумма'.ds3
          SUM_10 = Sum
          SUM_0 = 0
          NDS_18 = 0
          SUM_18 = 0
          NDS_20 = 0
          SUM_20 = 0
          goto 400
301          SUM_0 = Sum
400          if Document = Doc2 & Dat = Dat2 & Kredit = Kredit2  then goto 650
                goto 750
650              'Сумма_20'.d = SUM_20
                  'Сумма_0'.d = SUM_0
                  'Всего'.d = Sum + NDS_20
                  update(d)
                  goto 150

          rem Добавляем запись в книгу покупок
750           clearbuf(d)
rem       'Раб.место'.d = WorkPlace
          'Номер_док.'.d = Document
          'Дата'.d = Dat
          'Всего'.d = Sum + NDS_18
          'ИННП'.d = Code
          'Название'.d = Name
          'Страна'.d = "РОССИЯ    "
          'Дата_опл.'.d = data_opl
rem         'Дата_пост.'.d = Dat
rem          'Код_ОКОНХП'.d = ""
rem          'Код_ОКПОП'.d = ""
          'НДС_18'.d = NDS_18
          'Сумма_18'.d = SUM_18
          'НДС_10'.d = NDS_10
          'Сумма_10'.d = SUM_10
          'Сумма_0'.d = SUM_0
          'Экспорт'.d = 0
          rem 'НДС_16,67'.d = 0
rem          'Сумма_5'.d = 0
          insert(d)
150       Doc2 = Document
          Kredit2 = Kredit
          Dat2 = Dat
100   next
      close(d1)         rem закрыли 60.btr
      close(ds1)        rem закрыли s60.btr

       d1 = open("71")
       ds1 = open("s71")
rem    Идем по файлу s71 и ищем записи, т.ч. Db_счета = 71
         Doc2 = " "
         Dat2 = "       "
         data_opl = "        "
         getfirst(ds1)
         Kredit2 = trim('Kr_расчеты'.ds1)

       for i = 1 to size(ds1)
          if i = 1 then getfirst(ds1)
          if i != 1 then getnext(ds1)
          if trim('Kr_счета'.ds1) != "71" then goto 110

rem       Найдена запись, т.ч. Kr_счета = 71
rem       WorkPlace = 'Раб.место'.ds1
     if trim('Db_счета'.ds1)="10" | trim('Db_счета'.ds1)="12" | trim('Db_счета'.ds1)="44" then goto 210
rem     if trim('Db_счета'.ds1)="41" | trim('Db_счета'.ds1)="08" | trim('Db_счета'.ds1)="01" then goto 210
rem     if trim('Db_счета'.ds1)="08" | trim('Db_счета'.ds1)="04" then goto 200
        goto 110
210       Document = 'Документ'.ds1
          Dat = 'Дата'.ds1
          Kredit = trim('Kr_расчеты'.ds1)
        if Document = Doc2 & Dat = Dat2 & Kredit = Kredit2 then goto 810
             goto 860
810         Sum = Sum + 'Сумма'.ds1
             goto 910
860         Sum = 'Сумма'.ds1
910       Debet = trim('Db_расчеты'.ds1)
          Kredit = trim('Kr_расчеты'.ds1)
          Deb = trim('Db_счета'.ds1)
          Kr = trim('Kr_счета'.ds1)
rem       Идем по 1 индексу файла 71 (Субсчет) и ищем записи,
rem       т.ч. Субсчет.71 = Kr_расчеты.s71
          if Find(d1,1,1,Kredit) != 0 then goto 110
          Code = 'Код'.d1
          Name = 'Название'.d1
          if 'DbS_конец'.d1 = 0 & 'KrS_конец'.d1 = 0 then goto 360
           goto 460
360           opl = 1
           goto 560
460           opl = 0
              print "Не найдена оплата по док. ",Document
560       if Find(ds2,4,4,Kr,Kredit,Dat,Document) != 0 then goto 310
          NDS_20 = 'Сумма'.ds2
          SUM_20 = Sum
          SUM_0 = 0
          goto 410
310       NDS_20 = 0
          SUM_20 = 0
          SUM_0 = Sum
410          if Document = Doc2 & Dat = Dat2 & Kredit = Kredit2 then goto 660
               goto 760
660               'Сумма_20'.d = SUM_20
                  'Сумма_0'.d = SUM_0
                  'Всего'.d = Sum + NDS_20
                  update(d)
                  goto 160

          rem Добавляем запись в книгу покупок
760        clearbuf(d)
rem       'Раб.место'.d = WorkPlace
          'Номер_док.'.d = Document
          'Дата'.d = Dat
          'Всего'.d = Sum + NDS_20
          'ИННП'.d = Code
          'Название'.d = Name
          'Страна'.d = "РОССИЯ    "
          'Дата_опл.'.d = data_opl
          'НДС_20'.d = NDS_20
          'Сумма_20'.d = SUM_20
          'Сумма_10'.d = 0
          'НДС_10'.d = 0
          'Сумма_0'.d = SUM_0
          'Экспорт'.d = 0
          insert(d)
160       Doc2 = Document
          Kredit2 = Kredit
          Dat2 = Dat
110   next
      close(d1)         rem закрыли 71.btr
      close(ds1)        rem закрыли s71.btr

       d1 = open("76")
       ds1 = open("s76")
rem    Идем по файлу s76 и ищем записи, т.ч. Db_счета = 76
         Doc2 = " "
         Dat2 = "       "
         data_opl = "        "
         getfirst(ds1)
         Kredit2 = trim('Kr_расчеты'.ds1)

       for i = 1 to size(ds1)
          if i = 1 then getfirst(ds1)
          if i != 1 then getnext(ds1)
          if trim('Kr_счета'.ds1) != "76" then goto 120

rem       Найдена запись, т.ч. Kr_счета = 76
rem       WorkPlace = 'Раб.место'.ds1
     if trim('Db_счета'.ds1)="10" | trim('Db_счета'.ds1)="12" | trim('Db_счета'.ds1)="44" then goto 220
     if trim('Db_счета'.ds1)="08" then goto 220
rem     if trim('Db_счета'.ds1)="08" | trim('Db_счета'.ds1)="04" then goto 220
        goto 120
220       Document = 'Документ'.ds1
          Dat = 'Дата'.ds1
          Kredit = trim('Kr_расчеты'.ds1)
        if Document = Doc2 & Dat = Dat2 & Kredit = Kredit2 then goto 820
             goto 870
820         Sum = Sum + 'Сумма'.ds1
             goto 920
870         Sum = 'Сумма'.ds1
920       Debet = trim('Db_расчеты'.ds1)
          Kredit = trim('Kr_расчеты'.ds1)
          Deb = trim('Db_счета'.ds1)
          Kr = trim('Kr_счета'.ds1)
rem       Идем по 1 индексу файла 79-9 (Субсчет) и ищем записи,
rem       т.ч. Субсчет.79-9 = Kr_расчеты.s79-9
          if Find(d1,1,1,Kredit) != 0 then goto 120
          Code = 'Код'.d1
          Name = 'Название'.d1
          if 'DbS_конец'.d1 = 0 & 'KrS_конец'.d1 = 0 then goto 370
           goto 470
370           opl = 1
           goto 570
470           opl = 0
              print "Не найдена оплата по док. ",Document

570          if Find(ds2,4,4,Kr,Kredit,Dat,Document) != 0 then goto 320
          NDS_20 = 'Сумма'.ds2
          SUM_20 = Sum
          SUM_0 = 0
          goto 420
320       NDS_20 = 0
          SUM_20 = 0
          SUM_0 = Sum
420          if Document = Doc2 & Dat = Dat2 & Kredit = Kredit2 then goto 670
                goto 770
670               'Сумма_20'.d = SUM_20
                  'Сумма_0'.d = SUM_0
                  'Всего'.d = Sum + NDS_20
                  update(d)
                  goto 170
          rem Добавляем запись в книгу покупок
770           clearbuf(d)
rem       'Раб.место'.d = WorkPlace
          'Номер_док.'.d = Document
          'Дата'.d = Dat
          'Всего'.d = Sum + NDS_20
          'ИННП'.d = Code
          'Название'.d = Name
          'Дата_опл.'.d = data_opl
          'НДС_20'.d = NDS_20
          'Сумма_20'.d = SUM_20
          'Сумма_10'.d = 0
          'Страна'.d = "РОССИЯ    "
          'НДС_10'.d = 0
          'Сумма_0'.d = SUM_0
          'Экспорт'.d = 0
          insert(d)
170       Doc2 = Document
          Kredit2 = Kredit
          Dat2 = Dat
120   next
      close(d1)         rem закрыли 79-9.btr
      close(ds1)        rem закрыли s79-9.btr
rem       d1 = open("31")
       ds1 = open("s97")
rem    Идем по файлу s76 и ищем записи, т.ч. Db_счета = 76
         Doc2 = " "
         Dat2 = "       "
         data_opl = "        "
         getfirst(ds1)
         Kredit2 = trim('Kr_расчеты'.ds1)

       for i = 1 to size(ds1)
          if i = 1 then getfirst(ds1)
          if i != 1 then getnext(ds1)
          if trim('Kr_счета'.ds1) != "31" then goto 125

rem       Найдена запись, т.ч. Kr_счета = 76
rem       WorkPlace = 'Раб.место'.ds1
     if trim('Db_счета'.ds1)="44" then goto 225
     if trim('Db_счета'.ds1)="08" | trim('Db_счета'.ds1)="04" then goto 225
        goto 125
225       Document = 'Документ'.ds1
          Dat = 'Дата'.ds1
          Kredit = trim('Kr_расчеты'.ds1)
          Name = 'Примечание'.ds1 
        if Document = Doc2 & Dat = Dat2 & Kredit = Kredit2 then goto 825
             goto 875
825         Sum = Sum + 'Сумма'.ds1
             goto 925
875         Sum = 'Сумма'.ds1
925       Debet = trim('Db_расчеты'.ds1)
          Kredit = trim('Kr_расчеты'.ds1)
          Deb = trim('Db_счета'.ds1)
          Kr = trim('Kr_счета'.ds1)
rem       Идем по 1 индексу файла 79-9 (Субсчет) и ищем записи,
rem       т.ч. Субсчет.79-9 = Kr_расчеты.s79-9
rem          if Find(d1,1,1,Kredit) != 0 then goto 120
rem          Code = 'Код'.d1
rem              print "Не найдена оплата по док. ",Document

575          if Find(ds2,4,4,Kr,Kredit,Dat,Document) != 0 then goto 325
          NDS_20 = 'Сумма'.ds2
          SUM_20 = Sum
          SUM_0 = 0
          goto 420
325       NDS_20 = 0
          SUM_20 = 0
          SUM_0 = Sum
425          if Document = Doc2 & Dat = Dat2 & Kredit = Kredit2 then goto 675
                goto 775
675               'Сумма_20'.d = SUM_20
                  'Сумма_0'.d = SUM_0
                  'Всего'.d = Sum + NDS_20
                  update(d)
                  goto 175
          rem Добавляем запись в книгу покупок
775           clearbuf(d)
rem       'Раб.место'.d = WorkPlace
          'Номер_док.'.d = Document
          'Дата'.d = Dat
          'Всего'.d = Sum + NDS_20
          'ИННП'.d = Code
          'Название'.d = Name
          'Страна'.d="РОССИЯ    "
          'Дата_опл.'.d = data_opl
          'НДС_20'.d = NDS_20
          'Сумма_20'.d = SUM_20
          'Сумма_10'.d = 0
          'НДС_10'.d = 0
          'Сумма_0'.d = SUM_0
          'Экспорт'.d = 0
          insert(d)
175       Doc2 = Document
          Kredit2 = Kredit
          Dat2 = Dat
125   next
rem      close(d1)         rem закрыли 79-9.btr
      close(ds1)        rem закрыли s79-9.btr

      close(d)         rem закрыли kpok.btr
      close(ds2)        rem закрыли s19.btr
      end
