16 октября, вторник 07:01
Bankir.Ru

Объявление

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

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

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

  • Сообщение от КрасКрипт Посмотреть сообщение
    Если кратко, то - Статья 274 УК РФ.
    Да, ладно, там же "....повлекшее уничтожение, блокирование, модификацию либо копирование компьютерной информации, причинившее крупный ущерб, ......". Вы хоть смайлик ставьте...
    Тут либо методом перебора, либо еще как. Документации же, вроде таки и нет?

    Комментарий


    • Да уж! Не сгущайте. И так всё не очень!

      Комментарий


      • Последний раз для ленивых читать ветку.

        Нормализация и канонизация, проверка КА конверта http://bankir.ru/dom/forum/департаме...72#post4789772
        Формирование конверта http://bankir.ru/dom/forum/департаме...30#post4789130
        Проверка КА Квитанций http://bankir.ru/dom/forum/департаме...84#post4803184
        Проверка КА ТКвит http://bankir.ru/dom/forum/департаме...33#post4803333
        Квитование http://bankir.ru/dom/forum/департаме...00#post4798100

        Комментарий


        • Коллеги, никто не в курсе, можно ли в АС ПСД отключить контроль схемы документа при создании посылки в xml-формате? Все равно контроль формы оператор выполняет на предыдущих этапах, а монитор посылок крутится постоянно на выделенной машине, куда не хочется пускать оператора.

          Комментарий


          • Сообщение от query101 Посмотреть сообщение
            Коллеги, никто не в курсе, можно ли в АС ПСД отключить контроль схемы документа при создании посылки в xml-формате? Все равно контроль формы оператор выполняет на предыдущих этапах, а монитор посылок крутится постоянно на выделенной машине, куда не хочется пускать оператора.
            Поясните, а что такое контроль схемы документа?
            "Единственный способ научиться играть лучше - играть с более сильным соперником!"

            Комментарий


            • Сообщение от Юнец Посмотреть сообщение
              Поясните, а что такое контроль схемы документа?
              Есть в АС ПСД такая штука, называется "Контроль". Заполнили форму, нажали соответствующую кнопку, получили протокол проверки формы на правильность заполнения. Далее сформировали телеграмму, запустили монитор, он подготовил посылку. Это по-старому.
              Если же выгружаем телеграмму в формате xml, то при контроль осуществляется при запуске монитора сканирования.

              Выдержка из мануала:

              "В процессе обработки будет проведен контроль схемы документа (в случае отрицательного результата будет сформировано соответствующее сообщение, файл не будет принят в обработку), произведена установка КА, шифрование ОЭС, формирование технологического конверта, установка КА на технологический конверт."
              Соответственно, при возникновении ошибки приходится останавливать монитор и вообще, постоянно следить за всем этим делом -)

              Комментарий


              • query101
                К сожалению, логический контроль, который делает оператор и контроль по xsd-схеме, который делает монитор сканирования, не взаимозаменяемые, а дополняют друг друга. Если какие-то проблемы можно отловить контролем по xsd-схеме, то этих контролей может и не быть в логических контролях. Почему сделано так - мне неизвестно.
                Отключить контроль по xsd-схеме нельзя, он зашит в метаданных. И тем более точно такой же контроль будет проведен на уровне ТУ. Т.е. либо вы получите ошибку у себя, либо получите ИЭС1 с ошибкой от ТУ.
                "Единственный способ научиться играть лучше - играть с более сильным соперником!"

                Комментарий


                • Юнец
                  С т.з. организации работы нам лучше было бы получать ИЭС1 с ошибкой, а не перезапускать монитор. Но это уже не важно -) Спасибо за ответ!

                  Комментарий


                  • Сообщение от query101 Посмотреть сообщение
                    Юнец
                    С т.з. организации работы нам лучше было бы получать ИЭС1 с ошибкой, а не перезапускать монитор. Но это уже не важно -) Спасибо за ответ!
                    Чтобы не перезапускать монитор, нажимайте "Стоп лист"-"Очистить".
                    "Единственный способ научиться играть лучше - играть с более сильным соперником!"

                    Комментарий


                    • query101
                      два варианта - один приличный, второй хамский:
                      1. проверяйте отчет по xsd схеме перед тем как в монитор пихать, и в случае ошибки валидации отдавайте обратно операм переделывать
                      2. можно кастрировать схемы в ПТК ПСД чтобы проверка стала формальностью. к примеру оставить в схеме 350 формы cbr_rep0409350_v2.0.4.5.xsd что-то типа
                      Код:
                      <?xml version="1.0" encoding="windows-1251"?>
                      <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="urn:cbr-ru:rep0409350:v2.0.4.5" xmlns="urn:cbr-ru:rep0409350:v2.0.4.5">
                      <xs:element name="Ф0409350" xmlns:xs="http://www.w3.org/2001/XMLSchema"/>
                      </xs:schema>
                      чтобы дальше проверки имени корневого элемента ничего не проверялось

                      Комментарий


                      • Насколько понимаю, это достаточно опасная операция:
                        Сообщение от КрасКрипт Посмотреть сообщение
                        query101
                        можно кастрировать схемы в ПТК ПСД
                        Потому что после нее вместо ПТК ПСД (программно-технический комплекс подготовки и сбора данных) может остаться только АС ПСД (автоматизированная система подготовки и сбора данных).
                        "Единственный способ научиться играть лучше - играть с более сильным соперником!"

                        Комментарий


                        • Потому и сказал что способ "хамский", собственно о чем и говорилось:
                          Сообщение от query101 Посмотреть сообщение
                          нам лучше было бы получать ИЭС1 с ошибкой, а не перезапускать монитор.

                          Комментарий


                          • А я не стал шибко париться. Загрузил KlikoMsg в рефлектор и декампильнул.
                            В результате получил исходники из которых выдрал пару десятков методов для работы MPSO с командной строки

                            Комментарий


                            • Сообщение от sasa1978 Посмотреть сообщение
                              А я не стал шибко париться. Загрузил KlikoMsg в рефлектор и декампильнул.
                              В результате получил исходники из которых выдрал пару десятков методов для работы MPSO с командной строки
                              Эх молодежь!

                              Комментарий


                              • Сообщение от sasa1978 Посмотреть сообщение
                                А я не стал шибко париться. Загрузил KlikoMsg в рефлектор и декампильнул.
                                В результате получил исходники из которых выдрал пару десятков методов для работы MPSO с командной строки
                                И как это выглядит в результате? Для работы из командной строки?
                                Alex_EAA

                                Комментарий


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

                                  И как это выглядит в результате? Для работы из командной строки?
                                  А как это может выглядеть, наверное как командная строка )))

                                  Комментарий


                                  • Сообщение от Avantage Посмотреть сообщение
                                    Для хохмы альтернативный способ быстрой автоматизации работы с MPSO_MSG. Скрипт на VBS, который запускает программу и передает в неё определенные сочетания клавиш, разделяя их таймаутами.


                                    вообще пока вижу в этом решении временный выход.. но у меня почему-то на этапе подписи вылетает ошибка... хотя руками все действия проходят нормально...
                                    не в курсе, что может быть?
                                    Нажмите на изображение для увеличения.·  Название:	001.jpg· Просмотров:	1· Размер:	30.4 Кб· ID:	4809669

                                    Комментарий


                                    • Сообщение от older21 Посмотреть сообщение
                                      Если задаться целью найти позитив в изменении, то переход на формат XML - это плюс. Если отправленный файл и полученную квитанцию можно будет связать по какому-нибудь идентификатору, то это будет еще один плюс. Парсить XML намного приятнее.
                                      ПО KlikoMsg.exe - это, конечно, тихий ужас. Если правила обработки файлов не будут часто меняться, будем писать свой обработчик.
                                      .
                                      Ой мама... Парсир нашелся...
                                      Вы когда нибудь парсили XML от 1 гигаБайта ???
                                      Потренируйтесь недельку другую, потом говорите...
                                      .

                                      Комментарий


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

                                        Создаем транспортный конверт пока без данных и подписи, например:
                                        Код:
                                        <?xml version="1.0" encoding="windows-1251"?>
                                        <ТК xmlns="urn:cbr-ru:tk:v1.3" ОтправительТК="КО.3475/0" ПолучательТК="ТУ.45" ИмяЗадачи="МПСО" ДатаВремяТК="2017-04-05T20:46:40" УникИдТК="52de3828-9228-44d9-b42a-d326b5d5b36e">
                                        <ЧастьПакета НомерЧасти="1" КоличЧастей="1" УникИдПакета="62799e8d-2b30-4507-8941-c1a68270cbed" />
                                        <ДанныеТК ИдДанныхТК="1">
                                        <ЭС Содержит="ОЭС" ВидОрг="КО" КодОрг="3475" КодЭС="Ф0409101" ФорматЭС="XML" ШифрованиеЭС="Верба" ИмяФайлаЭС="F0409101_KO-3475_2017-04-05T19-51-00.xml" УникИдЭС="46dd697c-cfd4-46e4-b907-c6b96fb6b07f"></ЭС>
                                        </ДанныеТК>
                                        </ТК>
                                        Значения (форматы) параметров тэгов говорят сами за себя, УникИд должны быть уникальными, формат по образу и подобию в примере. Код ЭС зависит о кода отчетной формы, коды организаций и ТУ используете ваши, формат по образу и подобию.

                                        используя утилиту scsignex получаем подпись исходного XML файла в отдельном файле.

                                        исходный файл XML шифруем на ТУ.

                                        Зашифрованный файл XML преобразуем в base64 и результат вставляем в тело тэга <ЭС>данные в base64<ЭС>

                                        результат подписи из файла выше преобразуем в base64 и добавляем в тэге КА после тэга ЭС, например
                                        Код:
                                        <?xml version="1.0" encoding="windows-1251"?>
                                        <ТК xmlns="urn:cbr-ru:tk:v1.3" ОтправительТК="КО.3475/0" ПолучательТК="ТУ.45" ИмяЗадачи="МПСО" ДатаВремяТК="2017-04-05T20:46:40" УникИдТК="52de3828-9228-44d9-b42a-d326b5d5b36e">
                                        <ЧастьПакета НомерЧасти="1" КоличЧастей="1" УникИдПакета="62799e8d-2b30-4507-8941-c1a68270cbed" />
                                        <ДанныеТК ИдДанныхТК="1">
                                        <ЭС Содержит="ОЭС" ВидОрг="КО" КодОрг="3475" КодЭС="Ф0409101" ФорматЭС="XML" ШифрованиеЭС="Верба" ИмяФайлаЭС="F0409101_KO-3475_2017-04-05T19-51-00.xml" УникИдЭС="46dd697c-cfd4-46e4-b907-c6b96fb6b07f">YTk0MTA0Nb0YAACBLeVYu2NJRd6NDAAudG1wAAKzoomXoTGUMFYLHNO9w7SBAQAwMjAwpVD3Gp+i+jXa6E9BDcONWpaOorHv6s09fjYZ6YI+LvvZA6OsLgiL5DhdDpc0NzE2B9B02neC/+E3/w5OCGgq7BRMgI0u8iMJe+aIHzWYohxK/AVkuhB2P//X4Uel5oJ8c1R4rAAlIlzwLskCvbXMd7AVkXIcUCa/5MhbfOLExAzfbwsuTmTz1YO+xIsG0eZZ9fICr+fju4XZIE9CBz8lkdIxwcUwr7ek0/rVgQoAeha8ZQM4ly7Su1kcJXLwLCaH8YIDqMqMPMJuYImVIC2ufcrjk3Cn82T8m5eUd1WCeZTIlSjvqDfiUNFE/V//YcTX444TCx/JXoR0+ORI4kDdzrQ8sSn4SR7FJeYEd6A4ZH9374xd+zNT58Vw+2C4mFX7PQaYFQNeyzYp2msNMJzXP8PbsScNhZjhfrt26SdfU8CGCpTW84z2Iz5ywcDZtXYlhyH4/Y64g6KlgILXpTyZZZdqAqGbrBMWV2wT+UeoynyeXS0qYj47xnRm7pVAk9KeEZiuwiePNjFo7dVvwXjfpeKGumMYlkYJretuWl9U0sWuXVNfQzYAadv9U/NmEnWZ3qNdeSHmws49rcthIVyL16ZikpesVcBrN1H8ukfNa+Jl44C0TPz5PxMUmZwBArNqdFScZeedtTSsioxFQnFrW1yIY01UC5Ykj5nB6nzGOZ0Qa8cPvmcbt9nEfGcDAGXrsb7UlqtI7uPVF6zJ6WS3d/DDp9Nlj85/6bgbg+d/T3MXgTeS4BNlC9WH45hApHS9pB4WhM262EGAgSXFBdL4qEs1sCZGHQ36W6KHJHFaqPaxo/vAy8d/y9K+g1+H87NveDX8JQBxZvTzKFCKxi1E2ezpOBqQDgyA6cwAxEoJh5Epu53F8nK6xYnpwvL4KABPdeYQ1VPPqb4Oysp06LKJ/2x9VxWy+6+vfd2X6edUunGYIOGQ9/ok+0NYUZ8gyDLkAOuXCVfv1r/lyG8EAkND87LRX00BiKPZxwmlYKcc7h6iuFixr83/FbRkKqiL6MWOvw6EbJgWPGrBhgL10zvP5Xa3o4oTAemSTSzudtB/HXLjshQHoexPGv/wpqJ5e4sx6kv6Gw0jueA0Bs0ZPE/Lb4dWZ/zUR0Xe6Lozyd6C6hZlJiSD2Lo7Sr9oAh4tuL70cbyfmZ7vfTy6goaXPJO8jxiSUWTHFlHnGBiawWqpyy1T6xFFXFmpP37X9TqHX1eoHRV/d+nwG1F+5ieay8QXkFrnCGgNS9i4s2PZypfB+kyUOdmUAUQ3IcTtJjKzQK5Cgx2wk1Y69Prf67Fbp2XkFyvLzZRXTCk94ZtLS/uESGG3mdYOriJa7+jOT/2gRN8n/FLPSPr6gb2EsR7NsYwBFrYCORic9zHOacT/D6YPKNj3Wg46YmpqOgOPHv7mpVP5/inZv/BrxQIGmLZewFmDGlTIE87vvmLrWTxdoHxWyQTSSvYe/8kMroYXMdPYbaDDvifVxq/3U97gHGjAxPZ9Bd3V/btmm02nRfCDt2azUM8zOhR6nzZvRNKfDdCG49yOceqRTn2q0NxHe6qpBhwl/HB6tay8qQLZ50co9zpTEEHKYwT3vGKPgCshqZhYvT7rd8A5Rg909qGV/L1pzNfXs41v1PUORDoXJ/ATXbwwWPCENsYknLs6qrY2b+sF/+k9LNXGWJyx+7EEBd1Ui29nwUe0Dd4D3NhCf+OolEWZIir+nuWNQ9r9avE3q+aOER+I1+WD+fbitPCwXwImrRPndZeT6ytjPO7dQHpxXRCUZXy74QX9wlP/pg5SHGDdE22am90x0lhFFPiefSoAFQ3y35IjxzuteBs1yN6kzA4wPRtkVBNG4N3/Q6hDxK9q30WkaQT3AvELqDvql66T1STWbSrQqXnuLyKUU4Vm/WTUmyjhp3DShasL3jtBZVU41BS0sJW/Xj4D4ubS7uOL84AYoBnw0YMpMiDDIsYniKofZxJNbWP7MOYm4zFSiDrBSLhq5shi1F3j1oSTk2apXDgZRDH4uDb3grvqf1WqqHb3U4+FDiS4G3ccFY6w0Vown5dSWKbON3/0QauggWyNKvQoqipp39VC1nPgk5ZjstUbalwL+N2CkQtnGU8sg8r7zRSI1W6rxMc9nJaDtKaHEWONSQNBEdws94WK6IrGVQY7pdl7lm32MAw0IVIP1najhKn0D7WfcKLY8GEeVg4V/GOIBD1ytjdluAtIU8OyZj4pyg4/pwtsZcl4trUrD7TJPQanTFUrcciEU3uh3MIutomt1QopZG0oIEZQotECUIyC+vsSR5DgpAOI4ahjC1I6wnSLjTr/W3UYW8y8tqMB6n+y7orlDGqhHmexXwEJTADzKjF78chmcLgS/4hfy9iSPkZFe2SCo7FXKDOU8QpnJJ0SVzKpyCK12CiUTNM91mqf4DUdGIa3VksQCyWJIpK1PIHx3LrmQz1UHuiAi0why7dj1a+v+B5FuuM1syV71L6+gDzIhiNZrxj/97hU1O7lL5JEXc09Nc8uzZfv1Bep0mYqXMzMv9mXFwLSc7q+7wzVZOboAABBjaLECQXhYXuH7cA/bLW2uuJ1p6diV0rexoeJyHK7pZLUb6w7mxQpSnsDsuSVAMbR9Q67i3lZWERpvqXukWpdGCIN7VmgC3/HmhBdhgnmB8kmg9cCk2RkHjv0MLUxbrBLvgzNFdGfl+Aj7paGyWsEDz3je7+HQqL22rLXkFAKZs4sTqMyvOZPdUkP4Y9qEe/7MVhlX91Ld5qI4TOOtg+kWpHtd9r1qGTtZef39k2aMrrDs3DTEEHA+wTMworLElJLTUqfrnT4z9S1O1oLD5JYcAP7mbDloFc1q1MLvA5isFOTMidZxVXdxqM/s0BamUt0TOgsmoq4qov+zEe3gLH8EQoWzCPIoOS2JYk3dBx5P9Nj6XpkHeKQImmusQ1qSM9icdFSpdCTkjt+CUMOCzKjF1KwIZsJrihOUbkD86ICtFu0Zhe60qaOdIzw0eubpL5pIHjxfr4eoooqJjPmTxenY3Yghv9feG/Fa68QKWvW/SfBMkZsmdbiYb7HDSy7gecXvUtWxtpIMnwCUVFejB3LgJBD3bdR8QqmdfO5SD8BvtAclyND4Wr/N9N27ICokPjyozC7V/39I3KmZn+cdjqFZrpupOEI70R9xYqR07q3Ch+ZAel698si/PLYqWQw+oCQ1PTv1YM1yH0c65UYNHVcFGKHvWQHeL0N9W9MzLt/wHCFZdMU7gcHeuG6YJNCa85OwEKQBeyQXRZV5QHW1sf+M0vpa8BEWLL1a7mnLkrfNNSVfqB4Opmldw5fi6H0A2on7DGW5iP76r79UQDaY5mEVdFiVriGtikJG26gbhK1MMjTcQbWIyyKDLRJsPvIhY4QTNIzOamHTXJDzfWnIeLHhG9rOrNCiC18Gxe4mq7NTb18OiXnUxJTHYqk0A9Cq2ZN0JY/xA+JMO/3vWtRUv3VtVfrZ0vBhRnp2f2yDBuo52LJavJx+YkaxgrQCnzLteAlWvnxCnYrpbsqW1cEfqx1ELnWH6UCCQdTI2QKdGFQd+f9eGtAZbXAKWfZas3RtWCrxRoEAgv10vULC8EnlK/pnur6y6D9+1eGBi2Nh3galTryMg5skZScj0w/nL62rCbzFMOEtKpuW/TCeJjnqJffTLvldLMh5g7JMJdncQ2f9vbQGRZfYX/B+sGQ3fS7/94kgiIJe9Dt4MWCGO41jPL2x/mVcu3WXZ77reEv4j7zcXqY8C5GlP7x5Et4a8AALafDPj/U2rX/M47xSm9VGiB3e3Oima82MSiT3mAh3E6Kx0qqyn4JExD2wj4Lcrf7TlMIXuWs1R2MqTgVs2pRGBeyAbjtJh3WIDASLGfNhMvrrp0x1Lnt//jMjRGZjp7yBTKiE/8fy6qv0BetrAYfCGr3QgcfCRseNjPUzak8TWynvYBL0IiESpWXA/txMbGI9EChYrQXN/B8giEwujozprE+fSkaL5cDs2KFqgCuCxn52f5uMAFdQbUhettAtZGjKp4MXonNsAfXX9sdJFOYstrTwF9n8DldifpVI7JXHmIGQZs8tpaal4jpFlgw3gXalYD05p06QelroABdTCvC+6hzZm5KCxaFl7UAywkR+98Ey6IAHdBBPtDcXh0v4le7eS8UFaDbNJ5uNTc8lYxK0otQbclfd0wNI8FfGNOpM3eLAmRwxgIK2NKCnWO3TBqVcjSZc3bZysfbKlzOnsdrUl7+unBg/U1h5baFXbOkqd7cvu5qIZwwaVqhWPLZHczKIF/jvmzg/So7Xz1V7xr8sX0ElO2ZHFuL8vDwDwynfG9RbsNH722I5hkybLuSi4LjvPW7H/wjQPwcVHk9kj0STqQsRc8FSnHjIgtO1qra4CD9XdYFBIQ7x3fJ6/q0NepxI/+hkuM6Cq20EYGLwKzO+ZwIdd8fL6URhxXECqfkv80E//fS6NGk9J7tuBQRvB+aezrFmb/C/WC0hBbVJuPjG6wZ2HfVlnUy9+jrniF7P5bmVf70aSn+54i7TZB7IrcwhpR/DhHGLr+8T4zsjrPc8SU6t/LBcaLHCucFe2B2oe46rvlSsTGTPt0rMTyJwnrqzR9t3qw3CH3rSiMje3tHITDi3MhFWUyuU9ZQuzgkn6239s5jp8uRFFnPDvVUtVBzfXHIRFmKxFZXt9S8W8LksbUkqQU96m/Iw+0qvQzConcUOERMAJo03cxFMdPhesx45ggefj78Sj3NXsyyrHIsuwOHup4ocL1OdpGSOC/fJzAIuFIKPfwLT2kc4n/2n87B40hMUebK6dTXevGjQGjYR7Z247mSOCwq7gf1Wwh1p048I6CabGTs+A147m5dGXEnOVjggDmCCfpV54JxfFg3pVqqJIeJMfDuXw9NcKUAXFJFksJG3dFElXV/Pq9ZoiK8STMbXNJN29PHTTEqKNggcZ9BlCMCRPGA5V4Ru5Ood3dgVGQP0egD8hGmHModZrQCuwKyPNdhKx+fag+5zmyhMDMPLngXyteutnBx6g127QK4vrFJnFtOUqc4o8BAIezMVs8GBhZ0i1VR2Cu83nYP7k9KYkCrnwPBdN8F8t8g+TF5t05iDfOPTg4Y1cvMXeC5kbo3b3nxonD3BDBc0I1ieWG0ELCQFL6MGBwAaiwMQlpQSXpPqVrrl64V+jqY910mN3h/cY+HyXZjJLLpmNz/O7UKr7uylpo1HqO1/vDEoe/pH3nVyzUESy5wmXpyaazzv53f6QYoxENSmlacz8F9+lSUo+sBRCRzdb4hfbR8Q6/4rdzFXBcD8aVQ3uplVkVbchZjARgX0VIvY5WjdpoLeMzksxpiyNo2z27r+ifqErL0RTRheNnpxoZu46Mkjw891YJlfK/Iq3elC/kXmOaJAMyPEh0K4noLq+WntJGs4x/LIWk+wHeOqlurq9/PLrE3R8sLzWzXk3Wm1ChM5rs67GAUd6nnO2cqeCd/QH4w6ZoIjVdG3iTlp8R4HJqlvyXaBWIHKROeDWp9PGzMNzp8A9CP9IQ7kzNrqHWaBXdwH3UyQnFCpVVniY8xOwF6vG0UjyL95pxgDCANU8uG9J8ISLfrt012F02E4I+nCdNajioQUxS+K1wHK0WvbjaCQTQdhqz6IR29XS1HbNn3jWr5hpy1HrmTc7jkcTJ+6glKc8/Bx189wfr2t6/qN4vXUEC25wLkIVxi/hBs3rksikF9F1NUeJ8pQQkHkIi6EqNRI2AcATMMHpItoUzlwkkGVfVozEdlkgebsyieTVpwMFbH0Fk4im9K/F2+2Din4vQGSbq+Nbjf/ieH9sgb58n74ZZCGBkjlyNrjuVr28j1tDkYC/zXC32oUnFSMsQFUzKo9fpZ5DN0IeWw1Ai+GH5E8LBYdeZwejQ5bI6e2JIFGGp8k2ySh1Xb6xMttz8inYhYLUEXcGGDaGypi5GVgz0PDq1W+sbDl8DCT7zlsNh1JMakPiPDVAvsyhmw6QdZM3o96fq3oD6+q4W4BM8sX8xBCuxcBbFls/gUlTIaNF/hBAOaKU40ABx1QYOdQC+0cIL4G3JaO3/z5sDhcoYsNLZnoWNRN/kltSk7rn2a3IScpZWMvBSOIPjIBW/398D7+y/uRp50zAXvrIONTA3s7M52gVwtClg8n3175GqQulY105t7le8/6IH34Ork4ThTA2VeUUmpFqfDUbRYkIvPBSd2jC5d9uuJ1Y0+i5ISW8YWF/BA2Zd+Sj6XFgkkTmpg+ShlOnDqScJImzHNZxld2rU8pJ8XPuYlPQXTXky9eTYdC96QUnz2Zdj7fuyjy0hALp+vxUztuW/sFBhbDzmT3SklleI2iABMZ4VvAudTW3jGd0Q/4zrRrgRU/s5Nph+oiRSt55WUfO4jdGBdCa7gvBDNyEhQk9W/aTk5Da9HqMR/TH5FYWBLO6yexylH5AMgSEwUGQkrhS1rjTebStZkvqVs92R2NLU1VBFYcaX0DoHljF9rDbS+PWVZJQ/vU/zX/++ZRSIevFhgcWcdOSAWJT9Z2CVD6ZiLSQTzxrVC933gXmdbgSeRvR2XCfvhM8z4vKyOCNjiW6HTRAuB2oTTCdA8ICkff5EJNC1bMAjuOUyWn9NEhSucl1oqRuC6QoThZEv6w6smCdEiuZaCwt87TNg2nmZiKaHyhY3S+PEppcR4f5bKkS3XGIFUrk9ARk8Q5ta1KEUo8oK5MGKnKA6lCMYLaKbq48Sv4Uhha5GQhOvdeIm91BKQg8dVr41Xk4QFkXEdAXYD2RfbsGlL9nQdPkmfAmoXBAAEU6YalLxWBmuvvTqgSA0HX79ZygvSKqTmFjfUVhKiwrfxjHiezpfma4kl773dMhbDfDmbCWH2qre4q/mXlSBpblGo32LBC3+Ww/3+IwucxbNksCwV8qUC8fTov9vLo4TA3rFS24ubc5JQ4EZXQe2Q4erS2jL4WrI0oXJpTF87YiRtph+uZaLy24vBK2tcidHUnBLdwEgc83PvhiCfV4GnJ5OjNVf21a/ohaWrV94PNWU7C6L/WYaWDBrkeOzCmTADm4nPSarOetkxX7Rj95qVJMieHs72JPREO3o30yJKAnlqJA+xLtSo4TX4xHNsrh9JJa3uhGyrauoKX6mb1CF3pqVgKdN5cRD3xsNZbaTDWlghHcUB5uP/QFPDsktkk39lcsUwzVyOEPXJvDtGNSEpJT145NV61kxHqBqpLdkD3Yd6NMIP16Ps1o1iIYhjzSV3teR6xzI/PEOABqaZSPovm5nl28OQxOZMd4NYsSMc02zGaMbmK+jxicCZFPem/lwrO3YRTdGAueDaxb7i/p0uCxvr5IxcLz9R4HhXP0cdbdbW3au/hm8hAncjV/PjeP9l47RTRwUSdMo0mW8WteJHMNcGmLc5t3PEE1U6Ft/DsT8qJpYXGRh6W3js3sUwt0/OCVC+nnVwigbQp/LDfM7ivuOeOP5PfwQSfIFJLEcEJfYxZS88/Cng2FlF3T9oYmFGONxZp8QxKeumN5BT2630Ohpvw4/YQrFpAyQ8F9KqA91x2p3sEtKm0gB6DrHiSbj/HRjv3+dH8a0ik1NZJ5LELADIgBa8h1Lpv1hlIGXoVx7Dhj5ib47mSe9hxyWU9I+FeekfjKqxWPT1zl5kzY2kWtnMDF0J3Cw4zPBBS3ipDuQkSBPqjt+EQxX7n9SUgIcHAa1GdIS4OzSnynMd2eKyQlFrElPlGfEZsohLwsvn9jZ7GkOozOPCv2Vg8VshKmeHk4e8Q4XSoqyyBxrXoslbnCm13TUNo5/6lHqrUM4jSGe+90x61WJWY3FxjhdToxL+PpQLmitZKIZrii6JXGZH05pTtAHU1K6acoAKeJA9w1n4pt6LD0x4mDCU1mi5i0fPkx3qFaGuZht5FAxcFovMHs96irq3cE2ywWgJQ1uhXmcZuCJs2LjVEVl5Yym1oD2mCSHCDPtYZPhZe+XORJEosuQZGjSXbJF+/Ic2fzLzFXN5TS1OBq/2m6sHWz3Q6HPXG4wYSR6HsLTjVuvVTm4PvKSYnYQJtSHIL9cf1yjb/iEiZxYaUzazs/czTyxSwDAtz63S+dpK04ZaxgohAwI5sewppTbxl+Z46RXTDh+7mJhY84+yMnNx7MoK4cZMUxQOiLsEh72dFWKAfipZqmU4dplvveVug7imndlZtXhrVM983ySlINrcz+fKWre5ZgShJ4fOUPdARAUQbNOzYn90SAPr83OxWlCM8zfI2yvYq4QIaFmKwe1bsTMt/7xFwiAfh9e75II2YauiWVWrdkAlyAQ3pxl0dyg2OFdsRoF0d861uYBCtUJMrbCzkjTGZdTtALR9x54yc9xqMU8Uv2j13fjxlvMkEUlnxy3AaqreXFUAe+/PBMX9edFQn1kVnFAVpl8kK0MYOv166EQTOTDXQPtQ3PsONQTfmXOx4i8Orn5QoWsMSDqc5gE4k6njgbiw9aEiAbyxoenVjanhmhnVzPfq9ck7FnH8HYND0v6dd7ga/e2xcC3uxVmqLULd0s1jUzpKZWTr0VaeBwlp</ЭС>
                                        <КА УстановленКА="Верба">bzAwMDAwMFNGpcHnVqM73lcyxlSUYSzCZLM3/irBR6rVVimQQbn67n+JnoPLJL9b8mcKQtx5F3H4VxJuUr0PKhiN4WhKSJY0NzE2OTQxMDQ1MDGBLeVYnZaPeG1sAZfXAAA=</КА>
                                        </ДанныеТК>
                                        </ТК>
                                        Выполняем 3 шага по нормализации и канонизации конверта и магическое действие - шаг 4 (см выше http://bankir.ru/dom/forum/департаме...61#post4789061), записываем результат в новый файл
                                        утилитой scsignex получаем подпись на этот новый файл в отдельном файле (после этого канонизированный файл нам уже не нужен), кодируем подпись в base64.

                                        base64 подпись конверта вставляем в теле тэка КА после закрытия тэга </ДанныеТК>

                                        Код:
                                        <?xml version="1.0" encoding="windows-1251"?>
                                        <ТК xmlns="urn:cbr-ru:tk:v1.3" ОтправительТК="КО.3475/0" ПолучательТК="ТУ.45" ИмяЗадачи="МПСО" ДатаВремяТК="2017-04-05T20:46:40" УникИдТК="52de3828-9228-44d9-b42a-d326b5d5b36e">
                                        <ЧастьПакета НомерЧасти="1" КоличЧастей="1" УникИдПакета="62799e8d-2b30-4507-8941-c1a68270cbed" />
                                        <ДанныеТК ИдДанныхТК="1">
                                        <ЭС Содержит="ОЭС" ВидОрг="КО" КодОрг="3475" КодЭС="Ф0409101" ФорматЭС="XML" ШифрованиеЭС="Верба" ИмяФайлаЭС="F0409101_KO-3475_2017-04-05T19-51-00.xml" УникИдЭС="46dd697c-cfd4-46e4-b907-c6b96fb6b07f">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</ЭС>
                                        <КА УстановленКА="Верба">bzAwMDAwMFNGpcHnVqM73lcyxlSUYSzCZLM3/irBR6rVVimQQbn67n+JnoPLJL9b8mcKQtx5F3H4VxJuUr0PKhiN4WhKSJY0NzE2OTQxMDQ1MDGBLeVYnZaPeG1sAZfXAAA=</КА>
                                        </ДанныеТК>
                                        <КА УстановленКА="Верба">bzAwMDAwMJFjL8E55WvguTIg4HUJqZ2PzevI49VNjx83b9LYlI06Xo4m7MF4OUG2x5RXmMYXViffqnX8ESVSYLdlViDpHyk0NzE2OTQxMDQ1MDGBLeVYnZaPeG1sATAlAAA=</КА>
                                        </ТК>
                                        все.
                                        .
                                        Прошу Вас уточнить следующее.
                                        К большому сожалению, значения (форматы) параметров тэгов (не все) НЕ говорят сами за себя ничего, см. вопрос ниже.
                                        .
                                        1. Создаем транспортный конверт пока без данных и подписи, например: <- Создаем чем ? Сами или с помощью какой либо программы ЦБ ?
                                        2. Если создаем сами, то как сформировать значения следующих полей или откуда их взять
                                        УникИдТК="52de3828-9228-44d9-b42a-d326b5d5b36e" ?
                                        УникИдПакета="62799e8d-2b30-4507-8941-c1a68270cbed" ?
                                        УникИдЭС="46dd697c-cfd4-46e4-b907-c6b96fb6b07f" ?
                                        .

                                        Комментарий


                                        • Сообщение от sasa1978 Посмотреть сообщение
                                          А я не стал шибко париться. Загрузил KlikoMsg в рефлектор и декампильнул.
                                          В результате получил исходники из которых выдрал пару десятков методов для работы MPSO с командной строки
                                          .
                                          Какой инструмент использовали для декомпиляции .NET Reflector ?
                                          .
                                          Если есть интерфейс (header, unit) к методам, поделитесь плиз ???!!!
                                          .
                                          Последний раз редактировалось Jenyok; 31.08.2017, 10:55.

                                          Комментарий


                                          • Сообщение от Jenyok Посмотреть сообщение
                                            1. Создаем транспортный конверт пока без данных и подписи, например: <- Создаем чем ? Сами или с помощью какой либо программы ЦБ ?
                                            2. Если создаем сами, то как сформировать значения следующих полей или откуда их взять
                                            УникИдТК="52de3828-9228-44d9-b42a-d326b5d5b36e" ?
                                            УникИдПакета="62799e8d-2b30-4507-8941-c1a68270cbed" ?
                                            УникИдЭС="46dd697c-cfd4-46e4-b907-c6b96fb6b07f" ?
                                            1. Предполагаю, что стандартным парсером XML DOM
                                            2. Это стандартный GUID без обрамляющих фигурных скобок.

                                            На VBS, например, ответ на оба вопроса может выглядеть так:
                                            PHP код:

                                            Option explicit
                                            Dim xml
                                            TK
                                             Set xml  
                                            CreateObject("MSXML2.DOMDocument")
                                             
                                            Set TK xml.createElement("TK")
                                             
                                            TK.SetAttribute "xmlns","urn:cbr-ru:tk:v1.3"
                                             
                                            TK.SetAttribute "ОтправительТК","КО.0000/0"
                                             
                                            TK.SetAttribute "ПолучательТК","ТУ.45"
                                             
                                            TK.SetAttribute "ИмяЗадачи","МПСО"
                                             
                                            TK.SetAttribute "ДатаВремяТК","2017-08-31T09:39:06"
                                             
                                            TK.SetAttribute "УникИдТК",GetGuid()
                                             
                                            TK.Text=""

                                             
                                            wscript.echo TK.xml

                                            Function GetGuid()
                                              
                                            Dim sTL
                                              Set sTL 
                                            CreateObject("Scriptlet.TypeLib")
                                              
                                            GetGuid=MID(sTL.Guid,2,36)
                                            end Function 

                                            Комментарий


                                            • Сообщение от Jenyok Посмотреть сообщение
                                              Какой инструмент использовали для декомпиляции .....
                                              Насколько я понимаю, речь шла о NET Reflector.

                                              Комментарий


                                              • Сообщение от Jenyok Посмотреть сообщение
                                                1. Создаем транспортный конверт пока без данных и подписи, например: <- Создаем чем ? Сами или с помощью какой либо программы ЦБ ? 2. Если создаем сами, то как сформировать значения следующих полей или откуда их взять УникИдТК="52de3828-9228-44d9-b42a-d326b5d5b36e" ? УникИдПакета="62799e8d-2b30-4507-8941-c1a68270cbed" ? УникИдЭС="46dd697c-cfd4-46e4-b907-c6b96fb6b07f" ?
                                                1. На счет ЦБ это Вы конечно размечтались. Они аж тапки растеряли, как бежали вам что-то дать. сами. всё сами.
                                                2. Стесняюсь предположить, но к программированию Вы похоже не очень чтобы очень. https://msdn.microsoft.com/ru-ru/lib...v=vs.110).aspx

                                                А вообще эта тема наводит на грустные размышления.
                                                Люди клепают на коленках софт не имея никакой документации, на основе декомпилированного софта, да еще попутно встраивая СКЗИ зачастую без лицензии ФСБ. Куда катится этот мир...

                                                Комментарий


                                                • Сообщение от КрасКрипт Посмотреть сообщение
                                                  ......А вообще эта тема наводит на грустные размышления................. Куда катится этот мир...
                                                  Полагаю, это Вы про разработчиков ЦБ-шного софта?
                                                  А еще, анек про двух спорящих психологов вспомнился - ".....Слушай, ну мы же с тобой профессионалы! Давай просто достанем и померяемся!"
                                                  Последний раз редактировалось saches; 01.09.2017, 12:58.

                                                  Комментарий


                                                  • Сообщение от saches Посмотреть сообщение
                                                    Насколько я понимаю, речь шла о NET Reflector.
                                                    NET.Reflector 9.0 и ILSpy 2.4, часть методов отлично декомпилирует одна программа, часть вторая

                                                    Комментарий


                                                    • Скрипт для вытаскивание ИЭС1 и ИЭС2 из файлов TK_KO, проверки подписи с помощью ScSignEx и раскладки полученных файлов.
                                                      Примечания:
                                                      1. Выделить и сохранить в файл с расширением .vbs
                                                      2. Поменять рабочие папки на свои
                                                      3. Настроить свое подключение/отключение ключей для проверки подписи ЦБ
                                                      4. Запускать в любой винде - по идее должно работать.
                                                      PHP код:

                                                      ' Скрипт позволяет извлечь ИЭС из транспортных конвертов TK_KO, проверить подпись
                                                      '  
                                                      и разложить полученные ИЭС по папкам отчетности

                                                      Option explicit
                                                      Dim WSH
                                                      ,FSOLogNamDDMMYYArhDir

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

                                                        Const WrkDir = "F:\CB_XML\IN\" '
                                                      папкакуда свалили входящие TK_KO и Tkvit
                                                        
                                                      Const Ot4Dir "F:\CB_XML\OTCH\"   ' Папка, куда будем раскладывать разобранные отчеты
                                                        LogNam = "
                                                      F:\CB_XML\LOGS\"&YY&MM&DD&".log" 'Файл лога
                                                        ArhDir="
                                                      F:\CB_XML\ARHIV\IN\" & YY & "\" & MM & "\" & DD 'папка, где сохраняем архивы обмена

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

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

                                                      ' Процедура разбора собственно файла TK_KO*.xml
                                                      sub TK_KO(fName)
                                                       dim xml, oNam, cNam, signStr, cNode, TK, TKs, Att
                                                       Set xml = CreateObject("
                                                      MSXML2.DOMDocument")

                                                       xml.load(fname)

                                                       Set TKs = xml.getElementsByTagName("
                                                      ДанныеТК")
                                                       if NOT IsNull(TKs) Then
                                                         WriteLog FSO.GetBaseName(fName) & " 
                                                      транспортный конверт"
                                                       end If
                                                       for each TK in TKs
                                                         oNam = ""
                                                         cNam = ""
                                                         signStr = ""
                                                         for each cNode in TK.ChildNodes
                                                           if cNode.NodeName = "
                                                      ЭС" Then
                                                             oNam = cNode.GetAttribute("
                                                      ИмяФайлаЭС")
                                                             oNam = FSO.BuildPath(FSO.GetParentFolderName(fName), oNam) 'файл ИЭС будем извлекать в ту же папку, где лежит TK_KO
                                                             cNam = Replace(oNam,"
                                                      .xml",".ca") ' файл подписи будет иметь то же имя, но расширение .ca
                                                             With FSO.CreateTextFile(oNam) ' Создаем файл ИЭС
                                                               .write Base64ToStr(cNode.Text) ' и записываем в него декодированный текст
                                                               .Close
                                                             End With
                                                           elseif cNode.NodeName = "
                                                      КА" Then
                                                             SignStr = cNode.text ' Пока сохраняем подпись в переменной
                                                           end if
                                                         Next
                                                         With FSO.CreateTextFile(cNam)
                                                           .write Base64ToStr(SignStr) ' Сохраняем подпись в файл
                                                           .Close
                                                         End With
                                                         ' если дальнейшая обработка файлов будет в другом скрипте, то следующие строки до NexT можно убрать
                                                         WriteLog FSO.GetBaseName(oNam) & " 
                                                      извлечен из конверта" ' пишем в лог
                                                         fMove fname, ArhDir & "
                                                      \INPUT\" ' Переносим TK_KO  в архив
                                                         SetKey "
                                                      D6" ' Устанавливаем ключ подписи для проверки подписи и проверяем
                                                         wsh.Run "
                                                      C:\SCSignEx\scsignex.exe --f" & oNam & " -k" & cNam & " -o" &LogNam,0,True
                                                         FreeKey ' Отключаем подпись
                                                         fCopy oNam, ArhDir & "
                                                      \SIGNED\" ' Кладем сам файл ..
                                                         fMove cNam, ArhDir & "
                                                      \SIGNED\" ' и подпись на хранение
                                                         CheckWhatIs oNam ' Разбираем на какую форму пришло это ИЭС и перекладываем в папку отчетности
                                                         fmove oNam, ArhDir & "
                                                      \INPUT\" 'окончательно переносим файл ИЭС из папки входящих
                                                       NexT
                                                      end sub

                                                      ' парсинг собственно файла ответа и раскладка
                                                      ' Если обраьотка будет в другом скрипте, то можно убрать
                                                      Sub CheckWhatIs(fName)
                                                        Dim xml, FormCode, FormPeriod, FormDate, FormPath, LogStr, IesStr
                                                        Set xml = CreateObject("
                                                      MSXML2.DOMDocument")

                                                        xml.load(fName)
                                                        with xml.ChildNodes.Item(1)
                                                          IesStr = .NodeName
                                                          with .ChildNodes.item(0)
                                                            If .NodeName = "
                                                      РеквОЭС" Then
                                                              FormCode   = .getAttribute("
                                                      КодФормы")
                                                              FormDate   = .getAttribute("
                                                      ОтчДата")
                                                              FormPeriod = .getAttribute("
                                                      Периодичность")
                                                              LogStr = FSO.GetBaseName(fName) & " 
                                                      " & IesStr & " Форма:" &FormCode & " Период:" & FormPeriod & " Дата:" & FormDate
                                                              FormPath = ""
                                                              Select case formPeriod
                                                              Case "
                                                      нерегулярная" ' ежедневка
                                                                if Left(FormCode,4) = "
                                                      0409" Then
                                                                  FormPath = Ot4Dir & Left(FormDate,4) & "
                                                      \" & Mid(FormDate,6,2) & "\" & Right(FormDate,2) &  "\F" & Trim(Mid(FormCode,5))& "\"
                                                                end If
                                                              Case "
                                                      декадная" ' типа 350
                                                                  FormPath = Ot4Dir & Left(FormDate,4) & "
                                                      \" & Mid(FormDate,6,2) & "\F" & trim(Mid(FormCode,5)) & "\" & Right(FormDate,2) & "\"
                                                              End Select

                                                              if Len(FormPath) > 1 Then ' Если удалось понять, куда класть этот ИЭС ..
                                                                fCopy fName,FormPath ' .. то кладем его
                                                                LogStr = LogStr & " 
                                                      -- перенесена в " & FormPath ' и пишем об этом в лог
                                                              else
                                                                LogStr = " 
                                                      ??? " & LogStr & " -- обработчик не найден!" ' если не доделан обработчик ИЭС для данной формы
                                                              end if
                                                              WriteLog LogStr ' пишем в лог что-бы там ни было
                                                            End if
                                                          end with
                                                        end with
                                                      End Sub

                                                      ' Процедура дозаписи в лог.
                                                      sub WriteLog(lTxt)
                                                        If FSO.FileExists(LogNam) Then
                                                          With FSO.GetFile(LogNam)
                                                            with .OpenAsTextStream(8)
                                                       .WriteLine(lTxt)
                                                       .Close
                                                            end with
                                                          End With
                                                        Else
                                                          With FSO.CreateTextFile(LogNam)
                                                       .WriteLine(lTxt)
                                                       .Close
                                                          End With
                                                        End If
                                                      end sub

                                                      ' Основная процедура. Перебирает все файлы в папке входящих и обрабатывает что попало
                                                      sub mainWrk
                                                        Dim iFile
                                                        With FSO.GEtFolder(WrkDir)
                                                          for each iFile in .Files
                                                            Select Case Left(iFile.Name,5)
                                                            Case "
                                                      TK_KO"
                                                              TK_KO FSO.BuildPath(WrkDir,iFile.Name)
                                                            Case "
                                                      Tkvit"
                                                              fMove FSO.BuildPath(WrkDir,iFile.Name), Arhdir & "
                                                      \INPUT\"
                                                            End Select
                                                          Next
                                                        End With
                                                      end sub

                                                      ' Типа установка ключа. Здесь надо прописать либо запрос установки дискеты, либо другие ваши действия по активации ключа, если надо
                                                      Sub SetKey(locFolder)
                                                        FreeKey
                                                        Wsh.Run "
                                                      subst BE:\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
                                                            wscript.echo fFile & " 
                                                      -> " & DirTo
                                                            FSO.CopyFile fFile, DirTo
                                                          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, DirTo
                                                          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 в String
                                                      Function base64ToStr(data)
                                                        Dim b64s, b2s, i, tmp
                                                          tmp = ""
                                                          With  CreateObject("
                                                      MSXML2.DOMDocument")
                                                            Set b64s = .createElement("
                                                      t1")
                                                            Set b2s = .createElement("
                                                      t2")
                                                            b64s.dataType = "
                                                      bin.base64"
                                                            b2s.dataType = "
                                                      bin.hex"
                                                            b64s.Text = data

                                                            b2s.NodeTypedValue = b64s.NodeTypedvalue
                                                            For i = 1 To Len(b2s.Text) Step 2
                                                              tmp = tmp & Chr("
                                                      &H" & Mid(b2s.Text, i, 2))
                                                            Next

                                                          End With
                                                          base64ToStr = tmp
                                                      End Function 
                                                      P.S. Спасибо Antonioki за описание технологии.
                                                      Последний раз редактировалось Avantage; 04.09.2017, 13:57.

                                                      Комментарий


                                                      • Сообщение от Avantage Посмотреть сообщение
                                                        Скрипт для вытаскивание ИЭС1 и ИЭС2 из файлов TK_KO, проверки подписи с помощью ScSignEx и раскладки полученных файлов.

                                                        Комментарий


                                                        • Сообщение от Jenyok Посмотреть сообщение
                                                          .
                                                          Ой мама... Парсир нашелся...
                                                          Вы когда нибудь парсили XML от 1 гигаБайта ???
                                                          Потренируйтесь недельку другую, потом говорите...
                                                          .
                                                          Не в первый раз вижу от Вас страшные посты про xml размером с гигабайт.
                                                          Скажите когда Вы в последний раз получали или отправляли в Банк России xml весом в гиг?
                                                          "Единственный способ научиться играть лучше - играть с более сильным соперником!"

                                                          Комментарий


                                                          • Юнец

                                                            Вы про XBRL что-нибудь слышали? Там объёмы информации, которые нужно будет рапортовать в ЦБ легко могут исчисляться действительно гигабайтами.

                                                            Комментарий


                                                            • Сообщение от rvroman Посмотреть сообщение
                                                              Юнец

                                                              Вы про XBRL что-нибудь слышали? Там объёмы информации, которые нужно будет рапортовать в ЦБ легко могут исчисляться действительно гигабайтами.
                                                              Что-то слышал. Но вопрос был не в том что "может", а когда "был" в последний раз обмен фалом такого объема.
                                                              "Единственный способ научиться играть лучше - играть с более сильным соперником!"

                                                              Комментарий

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

                                                              Свернуть

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

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