23 июля, понедельник 01:29
Bankir.Ru

Объявление

Свернуть
Пока нет объявлений.

Переход на новую технологию сбора отчетности

Свернуть
X
  • Фильтр
  • Время
  • Показать
Очистить всё
новые сообщения

  • Kliko_MSG не работает на 64-р компе. Невозможно установить Sql Server Compact 3.5 SP1.
    Ну и зачем такая KLIKO?

    Комментарий


    • Скрипт для формирования транспортного конверта с использованием ScSignEx (замена MPSO_MSG)
      Обрабатывает все файлы, лежащие в папке WrkDir и, если файл похож на отчетность - формирует транспортный конверт. Для любителей АСТРЫ есть кусочек, который перебирает отправленные сегодня TPSOD , чтобы найти уникальный номер для расширения.
      Спасибо Antonioki за подробную инструкцию.

      Примечания:
      1. Сохранить в файл с расширением .VBS
      2. Прописать свои данные в константах Poluchatel, CodeBank, Filial, WrkDir
      3. Прописать своё имя лога в переменную Lognam и папку архива в переменную ArhDir
      4. Поправить процедуры SetKey и FreeKey для активации ключа и/или запроса установки дискеты для подписи/шифрования
      5. Если у вас не АСТРА - удалить помеченные строки
      6. Если захотите проверить, сохраняет ли ваша винда xml-файл без инструкции для процессора в UTF-8, закомментируйте строчку FSO.DeleteFile tkName и проверьте кодировку оставшегося в WrkDir файла с расширением .tk
      7. По идее должно работать в любой винде. Для вызова из bat-файла можно использовать cscript //Nologo ВашеИмяФайла.vbs

      PHP код:
      ' Формирование xml отправки
      Option explicit
      Dim WSH,FSO, LogNam, DD, MM, YY, ArhDir

      Set FSO = CreateObject("Scripting.FileSystemObject")
      Set WSH = CreateObject("WScript.Shell")
        dd= LZ(Day(Date),2)       ' 
      День в виде ДД
        mm
      LZ(Month(Date),2)     ' Месяц в виде ММ
        yy= LZ(Year(Date),4)      ' 
      Год в виде ГГГГ

        
      const Poluchatel="ТУ.45" ' получатель, изените на свой ТУ
        const CodeBank="1234" ' 
      Ваш код банка
        
      const Filial="0"  ' Ваш номер филиала
        Const WrkDir = "D:\CB_XML\OUT\" '
      папкакуда свалили исходящие xml
        LogNam 
      "D:\CB_XML\LOGS\"&YY&MM&DD&".log" 'Файл лога
        ArhDir="
      D:\CB_XML\ARHIV\" & YY & "\" & MM & "\" & DD 'папка, где сохраняем архивы обмена

        MainWrk ' Запуск собственно рабочей подпрограммы

      ' Рабочая. Перебирает все файлы в папке WrkDir, и если имя файла похоже на имя отчета - обрабатывает
      Sub MainWrk
        Dim iFile
        With CreateObject("
      WScript.Shell")
          .CurrentDirectory = WrkDir ' переключаемся в папку WrkDir (аналог ChDir)
        End With
        With FSO.GEtFolder(WrkDir)
          for each iFile in .Files
            if IsOTCHET(iFile.Name) Then SendXml iFile.Name
          Next
        End With
      end sub
      ' Анализ имени файла.
      ' Подходящие по маске *_KO-*T*.xml - похожи на файлы отчетности.
      ' Но TK_*.xml считаем уже обработанными транспортными и не рассматриваем
      Function IsOtchet(fName)
        if Ucase(Right(fName,4)) = "
      .XML" Then IsOtchet = True Else IsOtchet = False
        if Ucase(Left(fName,3)) = "
      TK_" Then IsOtchet = False
        if InStr(Ucase(fName),"
      _KO-") = 0 Then IsOtchet = False
        if InStr(Ucase(fName),"
      T") = 0 Then IsOtchet = False
      End Function

      'Создание Транспортного Конверта (ТК) для отправляемого файла (fName)
      sub SendXml(fname)
       Dim xml, TK, Att, CodeES, KAname, DTstr, SignText, TKfName, iTPSOD, SendedDir

      ' копируем исходный файл в архив
       fcopy fName, FSO.BuildPath(ArhDir,"
      SIGNED")
      ' Прочтем КодЭС из исходного файла. И только КодЭС.
      ' А можно и Отправителя, и получателя и КодОРГ считать оттуда же. На ваше усмотрение
       Set xml  = CreateObject("
      MSXML2.DOMDocument")
       xml.async = False
       xml.load (fName)
       CodeES = xml.ChildNodes.item(1).NodeName
      ' Теперь подписываем в отдельный файл, а потом шифруем исходный файл
       KAname = Replace(fName,"
      .xml",".ca") 'файл подписи будет с расширением .ca
       SetKey "
      D6" ' Готовим ключ для подписи и шифрования
       wsh.Run "
      C:\SCSignEx\scsignex.exe --f" & fName & " -k" & KAname & " -o" &LogNam,0,True
       wsh.Run "
      C:\SCSignEx\scsignex.exe --a0200 -f" & fName & " -o" &LogNam,0,True
       FreeKey
      ' Создаем и заполняем конечный XML
       Set xml  = CreateObject("
      MSXML2.DOMDocument")
       xml.appendChild(xml.createProcessingInstruction("
      xml", "version='1.0' encoding='windows-1251'"))
       Set TK = xml.appendChild(xml.createElement("
      ТК"))
       TK.SetAttribute "
      xmlns","urn:cbr-ru:tk:v1.3"
       TK.SetAttribute "
      ОтправительТК","КО." & CodeBank & "/" & Filial
       TK.SetAttribute "
      ПолучательТК",Poluchatel
       TK.SetAttribute "
      ИмяЗадачи","МПСО"
       DTstr = DT2Xml(now()) 'текущее дата-время. Его используем потом ещё в имени файла
       TK.SetAttribute "
      ДатаВремяТК", DTstr
       TK.SetAttribute "
      УникИдТК",GetGuid()
       With TK.AppendChild(xml.createElement("
      ЧастьПакета"))
         .SetAttribute "
      НомерЧасти","1"
         .SetAttribute "
      КоличЧастей","1"
         .SetAttribute "
      УникИдПакета",GetGUID()
       End with
       With TK.AppendChild(xml.createElement("
      ДанныеТК"))
         .SetAttribute "
      ИдДанныхТК","1"
         With .AppendChild(xml.createElement("
      ЭС"))
           .SetAttribute "
      Содержит","ЭС"
           .SetAttribute "
      ВидОрг","КО"
           .SetAttribute "
      КодОрг", CodeBank
           .SetAttribute "
      КодЭС",CodeES
           .SetAttribute "
      ФорматЭС","XML"
           .SetAttribute "
      ШифрованиеЭС","Верба"
           .SetAttribute "
      ИмяФайлаЭС", fName
           .SetAttribute "
      УникИдЭС", GetGUID()
           .Text = FileToBase64(fName) ' наш файл уже зашифрован к этому моменту
           FSO.DeleteFile(fName) ' он нам больше не нужен
         End With
         With .AppendChild(xml.createElement("
      КА"))
           .SetAttribute "
      УстановленКА","Верба"
           .text = FileToBase64(KAname) 'считаем файл подписи
           fMove KAname, FSO.BuildPath(ArhDir,"
      SIGNED") ' и перенесем его на хранение.
         End With
       End With
      'сохраним в файл нормализованную ноду ТК, подпишем в отдельный файл, и считаем подпись
       SignText = MakeSignForNode(TK, Replace(fName,"
      .xml",".tk"))
       With TK.AppendChild(xml.createElement("
      КА"))
         .SetAttribute "
      УстановленКА","Верба"
         .text = SignText ' занесем и эту подпись в выходной файл
       End With
      '
       TKfName = "
      TK_KO-" & CodeBank & "-" & Filial & "_" & Replace(DTstr,":","-") &".xml"
       xml.Save TKfName
       SendedDir = FSO.BuildPath(ArhDir,"
      SENDED")
       fCopy TKfName, SendedDir
      ' Следующие строчки интересны только любителям АСТРЫ, как я. Нормальные люди их должны удалить.
       DTStr = FSO.BuildPath(SendedDir,"
      TPSOD.")
       for iTPSOD=0 To 299 ' перебираем в архиве файлы TPSOD за сегодня, ищем свободное расширение
         if not FSO.FileExists(DTstr & LZ(iTPSOD,3)) Then
           with FSO.getFile(TKfName)
             .name = "
      TPSOD." & LZ(iTPSOD,3)
             fCopy "
      TPSOD." & LZ(iTPSOD,3), "Ваш_Путь_К_Астре\S\" 'кладем на отправку
             fMove "
      TPSOD." & LZ(iTPSOD,3), SendedDir ' и переносим в архив для последующих переборов
           end with
         end if
       Next
      ' Здесь кончается перебор для АСТРЫ
      End Sub
      ' Эта функция создаёт "
      волшебную" нормализованную копию ноды ТК,
      ' сохраняет результат в файл UTF-8, делает подпись его в отдельный файл,
      ' читает и переводит эту подпись в Base64, после чего зачищает следы
      Function MakeSignForNode(fTK, tkName)
        Dim tXml, tTK, ca2Name
        Set tXml  = CreateObject("
      MSXML2.DOMDocument")
        Set tTK = tXml.appendChild(tXml.createElement("
      ТК")) ' независимая копия ноды ТК
      'Копируем все дочерние ноды из исходной ноды ТК в копию, попутно нормализуя
        CopyAllNodesWithSortedAttributes tXml, tTK, fTK
        tXml.Save(tkName) ' сохраняем полученное в файл UTF-8
        RemoveCRLFAtEndOfFile(tkName) 'удаляем перевод каретки в конце файла
        ca2Name = Replace(tkName, "
      .tk",".ca2") 'эта подпись будет иметь расширение .ca2
        SetKey "
      D6" 'Готовим ключ подписи
        wsh.Run "
      C:\SCSignEx\scsignex.exe --f" & tkName & " -k" & ca2name & " -o" &LogNam,0,True
        FreeKey
        MakeSignForNode = FileToBase64(ca2Name) ' Вернем считанное из файла подписи, но уже в Base64
        FSO.DeleteFile tkName  'зачистим временный файл
        FSO.DeleteFile ca2name 'зачистим файл подписи
      End Function
      ' Рекурсивное копирование информации из текущей ноды и всех дочерних
      ' с параллельной сортировкой атрибутов по наименованиям
      Sub CopyAllNodesWithSortedAttributes( tXml, tNode, fNode)
        Dim fAtts, cfNode, ctNode
        Select Case fNode.NodeName
        Case "
      ЭС"
          tNode.text = fNode.text 'Копируем исходное ЭС
        Case "
      КА"
          tNode.text = fNode.text 'Копируем исходную подпись
        Case Else ' в остальных случаях
          tNode.Text = ""  'Пинудительно приводим ноду к виду <Node></Node>
        End Select
        Set fAtts = fNode.Attributes
      ' рекурсивно копируем атрибуты с именами больше заданного
        AddSortedAttributesAfterThisName tNode, fAtts, ""
      ' Копируем также дочерние ноды и их дочерние и правнучек, и прапра.. если будут
        For Each cfNode in fNode.Childnodes
          if Left(cfNode.NodeName,1) <> "
      #" Then
            
      Set ctNode tNode.AppendChild(tXml.CreateElement(cfNode.NodeName))
            
      CopyAllNodesWithSortedAttributes  tXmlctNodecfNode
          end 
      if
        
      Next
      End Sub

      ' Поиск атрибута с самым близким к заданному следующим именем,
      добавление его в атрибуты копии и рекурсивный вызов поиска следующего
      Sub AddSortedAttributesAfterThisName
      (tNodefAttsThisName)
        
      Dim AttNextNameNextValue
        NextName 
      "ЯЯЯЯЯ"
        
      For Each Att in fAtts
          
      if (Att.Name ThisName) AND (Att.Name NextNameThen
            NextName 
      Att.name
            NextValue 
      Att.Value
          end 
      if
        
      Next
        
      if NextName <> "ЯЯЯЯЯ" Then
          tNode
      .SetAttribute NextNameNextValue
          AddSortedAttributesAfterThisName tNode
      fAttsNextName
        end 
      if
      End Sub
      ' Перевод системной даты-времени в XML
      Function DT2XML(DT)
        With CreateObject("MSXML2.DOMDocument").CreateElement("t0")
          .DataType = "DateTime"
          .NodeTypedValue = DT
          DT2XML = Left(.Text,19)
        End With
      End Function
      Типа установка ключаЗдесь надо прописать либо запрос установки дискетылибо другие ваши действия по активации ключаесли надо
      Sub SetKey
      (locFolder)
        
      FreeKey
        Wsh
      .Run "subst B: E:\KEYS\" & locFolder,0,True
      End Sub
      ' сброс ключа
      Sub FreeKey
        If FSO.DriveExists("
      B:") Then
          Wsh.Run "
      subst B: /D",0,True
        End If
      End Sub

      ' копирование файла в папку с проверкой наличия пути
      Sub fCopy(fFile, DirTo)
        if CheckFolder(DirTo) Then
          if not FSO.FileExists(fFile) Then
            wscript.echo "
      Not exist"&fFile
          else
            if FSO.FileExists(FSO.BuildPath(DirTo, FSO.GetBaseName(fFile)& "
      ." & FSO.GetExtensionName(fFile))) Then
              FSO.DeleteFile FSO.BuildPath(DirTo, FSO.GetBaseName(fFile) & "
      ." & FSO.GetExtensionName(fFile))
            end if
            FSO.CopyFile fFile, FSO.BuildPath(DirTo, FSO.GetbaseName(fFile) & "
      ." & FSO.GetExtensionName(fFile))
          end if
        else
          wscript.echo "
      Нет папки " & DirTo
        end if
      end Sub

      ' перенос файла в папку с проверкой наличия пути
      Sub fMove(fFile, DirTo)
        if CheckFolder(DirTo) Then
          if not FSO.FileExists(fFile) Then
            wscript.echo "
      Not exist"&fFile
          else
            if FSO.FileExists(FSO.BuildPath(DirTo, FSO.GetBaseName(fFile)& "
      ." & FSO.GetExtensionName(fFile))) Then
              FSO.DeleteFile FSO.BuildPath(DirTo, FSO.GetBaseName(fFile) & "
      ." & FSO.GetExtensionName(fFile))
            end if
            FSO.MoveFile fFile, FSO.BuildPath(DirTo, FSO.GetbaseName(fFile) & "
      ." & FSO.GetExtensionName(fFile))
          end If
        else
          wscript.echo "
      Папка не найдена" & DirTo
        end if
      end Sub

      ' проверка наличия пути и создание недостающих папок. Но хоть что-то корневое должно быть
      Function CheckFolder(fPath)
       if Len(fPath) < 3 Then
         CheckFolder = False
       else
         if NOT FSO.FolderExists(fPath) then
           if CheckFolder(FSO.GetParentFolderName(fPath)) Then
             FSO.CreateFolder(fPath)
             CheckFolder = True
           else
             wscript.echo "
      Не могу создать папку " & fPath
             CheckFolder = False
           end if
         else
           CheckFolder = True
         end if
       end if
      end Function

      ' Чтение файла и перевод в строку Base64
      Function FileToBase64(fName)
          Dim i, b64, b2, ff
          Set ff = FSO.OpenTextFile(fName, 1, False, 0)
          With  CreateObject("
      MSXML2.DOMDocument")
            Set b64 = .createElement("
      t1")
            Set b2 = .createElement("
      t2")
            b64.dataType = "
      bin.base64"
            b2.dataType = "
      bin.hex"
            while not ff.AtEndOfStream
              b2.Text = b2.Text & LZ(Hex(Asc(ff.read(1))),2)
            wend
            b64.nodeTypedValue = b2.NodeTypedValue
            FileTobase64 = Replace(b64.text,CHR(10),"")
          End With
          ff.close
      End Function

      'Удаление перевода каретки из конца файла
      Sub RemoveCRLFAtEndOfFile(fName)
        Dim fStr
        with FSO.OpenTextFile(fName, 1, False, 0)
           fStr = .readAll
           .close
        end with
        if Right(fStr,2) = Chr(13) & Chr(10) Then
          FSO.DEleteFile(fname)
          with FSO.CreateTextFile(fName)
            .write Left(fStr,Len(fStr)-2)
            .close
          end with
        end if
      end Sub

      ' Стандартный GUID
      Function GetGuid()
        with CreateObject("
      Scriptlet.TypeLib")
          GetGuid=MID(.Guid,2,36)
        end with
      end Function 

      ' Функция преобразования числа в строку нужной длины с лидирующими нулями
      Function LZ(lNum, lLen)
        LZ=Right(String(lLen,"
      0")&Cstr(lNum),lLen)
      End Function 

      Комментарий


      • Для удобства прикладываю архив со скриптом, чтоб не мучиться с выделением и копированием.
        Если всё же будете копировать из моего предыдущего сообщения, не забудьте, что сохранять надо в файл с кодировкой Windows-1251
        Вложения

        Комментарий


        • Сообщение от Avantage Посмотреть сообщение
          if InStr(Ucase(fName),"T") = 0 Then IsOtchet = False
          Эту строчку из функции isOTCHET похоже надо убрать, поскольку 501 и 603 отчетность не имеет в XML-названии отметки даты-времени. И они пропускаются этим скриптом и не обрабатываются.
          Ещё, похоже, в каких-то случаях поглюкивают процедуры fCopy и fMove. Возможно пока их лучше заменить пустышками.
          PHP код:

          Sub fCopy
          (fFileDirTo)
          End Sub
          Sub fMove
          (fFileDirTo)
          End Sub 

          Комментарий


          • Огромное спасибо Antonioki и Avantage за Ваши труды!
            Очень помогло, в доработке своих прог!

            Комментарий


            • Упс.
              Тестирование внезапно закончилось.
              Письмо Т1-30-1-01/100141 от 27.09.2017.
              С 01.10.2017 куча отчетности передается ТОЛЬКО в XML. И в приложении список на 5 листах. По письму похоже, что пока только в Московском регионе, но местные ТУ могут свои письма разослать.

              Комментарий


              • Сообщение от Avantage Посмотреть сообщение
                Sub SetKey(locFolder) FreeKey Wsh.Run "subst B: E:\KEYS" & locFolder,0,True End Sub ' сброс ключа Sub FreeKey If FSO.DriveExists("B:") Then Wsh.Run "subst B: /D",0,True End If End Sub
                Подскажите, если ключи лежат на флэшкe Е:/ , что необходимо менять, а то выдает ошибку

                Комментарий


                • Сообщение от kin Посмотреть сообщение

                  Подскажите, если ключи лежат на флэшкe Е:/ , что необходимо менять, а то выдает ошибку
                  Зависит от того, на что настроена утилита ScSignEx. В вышеприведённом примере предполагается, что ключевая дискета c вашей подписью и открытым ключом ЦБ скопирована в папку на флешке E:\Keys\D6\, а ScSignEx настроен на то, чтобы искать все ключи (и подписи и шифрования) на дискете B:\. И процедура SetKey введена здесь единственно для того, чтобы сделать подстановку Subst B: E:\Keys\D6.
                  Если же к моменту запуска скрипта нужный ключ у вас уже загружен в буфер, либо каким-то другим, стандартным для вас образом всё подготовлено к работе с ScSignEx, либо вам это вообше не нужно, так как ключи уже лежат там, где их будет искать ScSignEx, то необходимо вообще удалить сами процедуры SetKey и FreeKey и поудалять по тексту скрипта их вызов - они будут только мешать.
                  Последний раз редактировалось Avantage; 28.09.2017, 15:13.

                  Комментарий


                  • Сообщение от Avantage Посмотреть сообщение
                    Сообщение от kin Посмотреть сообщение Подскажите, если ключи лежат на флэшкe Е:/ , что необходимо менять, а то выдает ошибку Зависит от того, на что настроена утилита ScSignEx. В вышеприведённом примере предполагается, что ключевая дискета c вашей подписью и открытым ключом ЦБ скопирована в папку на флешке E:\Keys\D6\, а ScSignEx настроен на то, чтобы искать все ключи (и подписи и шифрования) на дискете B:\. И процедура SetKey введена здесь единственно для того, чтобы сделать подстановку Subst B: E:\Keys\D6. Если же к моменту запуска скрипта нужный ключ у вас уже загружен в буфер, либо каким-то другим, стандартным для вас образом всё подготовлено к работе с ScSignEx, либо вам это вообше не нужно, так как ключи уже лежат там, где их будет искать ScSignEx, то необходимо вообще удалить сами процедуры SetKey и FreeKey и поудалять по тексту скрипта их вызов - они будут только мешать.
                    Спасибо. осталось теперь как то разработать скрипт на прием квитанций с расшифровкой и тд.) Может кто-то уже практикует?

                    Комментарий


                    • Сообщение от Avantage Посмотреть сообщение
                      С 01.10.2017 куча отчетности передается ТОЛЬКО в XML. И в приложении список на 5 листах. По письму похоже, что пока только в Московском регионе, но местные ТУ могут свои письма разослать.
                      Пришло письмо от ТУ с перечнем форм для параллельного сбора отчетности с 01.10.2017

                      Комментарий


                      • Сообщение от Avantage Посмотреть сообщение
                        Упс.
                        Тестирование внезапно закончилось.
                        Письмо Т1-30-1-01/100141 от 27.09.2017.
                        С 01.10.2017 куча отчетности передается ТОЛЬКО в XML. И в приложении список на 5 листах. По письму похоже, что пока только в Московском регионе, но местные ТУ могут свои письма разослать.
                        К нам пришло похожее письмо, но только штук 5 отчетности только в xml. (Петербург)
                        Ну и по параллельному сбору пришло. Но там всего на пару страниц список, причем неполных

                        Комментарий


                        • Сообщение от Kuban User1 Посмотреть сообщение
                          Пришло письмо от ТУ с перечнем форм для параллельного сбора отчетности с 01.10.2017
                          Значит у вас ещё продолжается тестирование и вышеупомянутое письмо о переходе на предоставление перечисленных в нём 28 форм отчетности только в xml касается лишь московского региона.

                          Сообщение от kin Посмотреть сообщение
                          Спасибо. осталось теперь как то разработать скрипт на прием квитанций с расшифровкой и тд.) Может кто-то уже практикует?
                          См. чуть выше скрипт по вытаскиванию ИЭС1 и ИЭС2 из TK_TU. Оно?

                          http://bankir.ru/dom/forum/департамент-технологий/автоматизация/4788382-переход-на-новую-технологию-сбора-отчетности?p=4810197#post4810197

                          Комментарий


                          • как? как они могут переходить полностью на xml, если у них формы с включенным и выключенным xml контролируются по-разному? в текстовом формате форма контроль проходит, а с включенным xml - ошибки.
                            у нас у сдающих отчётности как минимум по два человека: у одного отключен xml - он контролирует и отправляет в старом формате; у второго включен xml и не дай бох он проконтролирует ещё раз, он только выгружает в xml. бредовая ситуация..
                            скажите пару форм, которые вам сказали сдавать ТОЛЬКО в xml? только не сотые, там вроде такого бреда не наблюдалось. что-нибудь из кредитных или финансовых. может быть там всё-таки ситуация вырулилась?

                            Комментарий


                            • Завтра смогу дать список. Сейчас на память приходят лишь как раз только сотые: 101, 110, 123, 135...

                              Комментарий


                              • Сообщение от diesel Посмотреть сообщение
                                скажите пару форм, которые вам сказали сдавать ТОЛЬКО в xml? только не сотые, там вроде такого бреда не наблюдалось. что-нибудь из кредитных или финансовых. может быть там всё-таки ситуация вырулилась?
                                051, 052, UP1-5, UPN, 703, 257 и др.

                                Комментарий


                                • а контрольные суммы по отчету в xml не пишутся?

                                  Комментарий


                                  • Сообщение от KaMPiLeR Посмотреть сообщение
                                    а контрольные суммы по отчету в xml не пишутся?
                                    Я не нашёл.

                                    Комментарий


                                    • Сообщение от diesel Посмотреть сообщение
                                      скажите пару форм, которые вам сказали сдавать ТОЛЬКО в xml? только не сотые
                                      Посмотрел список, в принципе кроме сотых, остальные либо те, что на разовой основе, вроде 070, либо редкие.

                                      Комментарий


                                      • Avantage
                                        Спасибо тебе добрый человек!!!

                                        Комментарий


                                        • Очередная хохма:
                                          В этом письме п.2 звучит так: Сформированный файл формата XML должен быть обработан ППК "Программа обработки сообщений" KlikoMsg для формирования ТК установленного формата.

                                          Бухгалтерия, следуя букве письма, сейчас пишет приказ, что нам нельзя пользоваться моим скриптом, а обязательно надо использовать штатную KlikoMsg, потому что об этом написано в письме со словом "должен" .

                                          Все мои доводы разбиваются о железобетонное: ТАК НАС ОБЯЗЫВАЕТ ЦБ!

                                          Кто-нибудь, ущипните меня!

                                          Пытаюсь сформулировать официальный запрос

                                          Комментарий


                                          • Avantage, ничто не мешает скрипту добавлять нужные в записи в БД KlikoMsg . Я пошел именно по этому пути. В результате в клико видны все входящие и исходящие записи, хотя при этом клико ниразу не запускается.

                                            Комментарий


                                            • Сообщение от sasa1978 Посмотреть сообщение
                                              Avantage, ничто не мешает скрипту добавлять нужные в записи в БД KlikoMsg . Я пошел именно по этому пути. В результате в клико видны все входящие и исходящие записи, хотя при этом клико ниразу не запускается.
                                              Понятно, что это можно сделать. Вот только бухгалтерия реально права, поскольку этот пресловутый "ТК установленного формата" нигде официально ЦБ не опубликован. Соответственно, при любых тёрках по отправленной отчётности, у меня не будет возможности подтвердить документально, что я не верблюд, а верблюд -.не я. Всё упрётся в этот чёрный ящик под названием Kliko_Msg.
                                              По-хорошему бы перед этим переходом ЦБ надо выпустить письмо с описанием ТК и способов помещения в него отчетности. И сказать, что вот, формируйте так, а если надо - вот вам в помощь kliko_msg. Вопросов бы не возникло ни у бухгалтерии, ни у возможных проверяющих. А без такого опубликования мы обречены на принудительное использование kliko_msg.

                                              Комментарий


                                              • чот не понял - 101 и 123 за месяц отправляем только xml или по старому тоже?

                                                Комментарий


                                                • Сообщение от KaMPiLeR Посмотреть сообщение
                                                  чот не понял - 101 и 123 за месяц отправляем только xml или по старому тоже?
                                                  Я так понял, что только в XML.

                                                  Комментарий


                                                  • sasa1978
                                                    Сообщение от sasa1978 Посмотреть сообщение
                                                    Avantage, ничто не мешает скрипту добавлять нужные в записи в БД KlikoMsg . Я пошел именно по этому пути. В результате в клико видны все входящие и исходящие записи, хотя при этом клико ниразу не запускается.
                                                    Добрый день, а кодом не поделитесь?

                                                    Комментарий


                                                    • Сообщение от Avantage Посмотреть сообщение

                                                      Понятно, что это можно сделать. Вот только бухгалтерия реально права, поскольку этот пресловутый "ТК установленного формата" нигде официально ЦБ не опубликован. Соответственно, при любых тёрках по отправленной отчётности, у меня не будет возможности подтвердить документально, что я не верблюд, а верблюд -.не я. Всё упрётся в этот чёрный ящик под названием Kliko_Msg.
                                                      Не подскажете, где нибудь регламентировано что нужно хранить файлы обмена в Kliko_Msg?

                                                      Комментарий


                                                      • Сообщение от BoomsPro Посмотреть сообщение
                                                        Не подскажете, где нибудь регламентировано что нужно хранить файлы обмена в Kliko_Msg?
                                                        Нигде не регламентировано. Поэтому добавление записей в базу MPSO_MSG особо помочь не может. Дело в том, что структура файла ТК нигде официально не описана. Единственное упоминание "ТК установленного формата" имеется в п.2 в том самом письме, выдержку из которого я приводил выше. И получается, что единственный официально провозглашённый ЦБ способ формирования ТК - это обработка отчета формата XML программой KlikoMsg. Других вариантов нет. А наличие/отсутствие записи об этом в базе KlikoMsg - это уже не самое важное следствие данного факта.

                                                        Комментарий


                                                        • Для 440-П тоже есть KlikoMSG и для некоторых других задач. Но если делать всё вручную, то нужно целую контору открывать. Ваши бухи не понимают этого?

                                                          Комментарий


                                                          • Вы отправили, в ЦБ приняли. Ключи храните в соответствии с руководящими документами. Какая кому разница как.

                                                            Комментарий


                                                            • Сообщение от ValeryM Посмотреть сообщение
                                                              Для 440-П тоже есть KlikoMSG и для некоторых других задач.
                                                              Есть. Но есть и описание всех форматов. Хочешь - делай сам, хочешь - используй предлагаемые костыли.
                                                              Но если делать всё вручную, то нужно целую контору открывать. Ваши бухи не понимают этого?
                                                              Понимают, но как я уже писал выше: единственный регламентированный ЦБ способ формирования транспортного конверта - MPSO_MSG. Когда ошибка не ведёт к ответственности банка - да хоть упишись самописками. В случае же, когда придётся что-то доказывать ТУ, показывая ИЭС2 с непонятными дикими ошибками, которых быть не должно (и в ответах на обычные отчеты их нет и никогда не было, а вот в xml-отчетах - пока даже в сотых формах сплошь и рядом), то первый вопрос, который возникнет - как формировали отчтеность? Как потом формировали ТК? И придётся доказывать, что не верблюд. И пока не будет официально опубликован формат ТК и способы помещения в него отчета и подписей - всё без толку.

                                                              Комментарий

                                                              Пользователи, просматривающие эту тему

                                                              Свернуть

                                                              Присутствует 1. Участников: 0, гостей: 1.

                                                              Обработка...
                                                              X