new_year

До бесплатного семинара в Москве осталось

  • 2
  • 6
дней

До бесплатного семинара в Краснодаре осталось

  • 3
дня

До бесплатного семинара в Самаре осталось

  • 2
  • 4
дня

Форум

ГлавнаяВзаимодействие с ГИС ЖКХ: XLSX vs. SOAP

Взаимодействие с ГИС ЖКХ: XLSX vs. SOAP

RSS
Взаимодействие с ГИС ЖКХ: XLSX vs. SOAP
 
Цитата
AlcorVol пишет:
для себя я могу эту проблему решить за час
Тест, Тест. Почти решил (надо еще поменять указатели на тему, а то публикует в теме "эмоции пост", откуда пересадил форму). Честно сказать удивился немного - на форму быстрого ответа нужно 44,5 Кб кода из 128 Кб страницы.
 
Разрабы могли бы обмены и по FTP организовать. Дали бы явки и пароли от FTP каждому пользователю, вперед и с песнями...
 
ЛЮДИ ДОБРЫЕ! Намекните, пожалуйста. Накопал кучу XSD - файлов и мне не по себе стало. По сути - это те же XML (XML Schema?, насколько я помню). Но для чего их вывалили в таком количестве и что с ними делать - точно не знаю. Есть только догадки, что с помощью этих файлов надо что-то проверять. Спасибо!
 
А вот объясните, пожалуйста мне, неграмотному. Правильно ли я понимаю, что XML - файлами (если использовать интеграцию) можно заменить Ёкселевские шаблоны. Если да, и, если у кого-то есть пример любого XML, загрузившегося в ГИС, то опубликуйте его, пожалуйста.

Отправлено спустя 1 минуту 32 секунды:
И еще. Крайне не хотелось бы использовать Java и .NET.
 
Цитата
Programmer пишет:
ЛЮДИ ДОБРЫЕ! Намекните, пожалуйста. Накопал кучу XSD - файлов и мне не по себе стало. По сути - это те же XML (XML Schema?, насколько я помню). Но для чего их вывалили в таком количестве и что с ними делать - точно не знаю. Есть только догадки, что с помощью этих файлов надо что-то проверять. Спасибо!

XSD - простым языком - описание структуры XML -файла. Имея XSD, можно создать корректный XML-файл (или формально проверить корректность существующего). Их много, потому, что в ГИС (я правильно понимаю, что речь про нее идет) используется много видов XML-файлов.

Отправлено спустя 5 минуты 8 секунды:
Цитата
Programmer пишет:
А вот объясните, пожалуйста мне, неграмотному. Правильно ли я понимаю, что XML - файлами (если использовать интеграцию) можно заменить Ёкселевские шаблоны. Если да, и, если у кого-то есть пример любого XML, загрузившегося в ГИС, то опубликуйте его, пожалуйста.

Отправлено спустя 1 минуту 32 секунды:
И еще. Крайне не хотелось бы использовать Java и .NET.

Пожалуйста (без блока с ЭЦП)
soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:base="http://dom.gosuslugi.ru/schema/integration/base/"
xmlns:pay="http://dom.gosuslugi.ru/schema/integration/payment/"
xmlns:xd="http://www.w3.org/2000/09/xmldsig#"
xmlns:pay1="http://dom.gosuslugi.ru/schema/integration/payments-base/"
xmlns:org="http://dom.gosuslugi.ru/schema/integration/organizations-base/"
xmlns:ind="http://dom.gosuslugi.ru/schema/integration/individual-registry-base/"
xmlns:bil="http://dom.gosuslugi.ru/schema/integration/bills-base/"
xmlns:acc="http://dom.gosuslugi.ru/schema/integration/account-base/">
<soapenv:Header>
<base:RequestHeader>
<base:Date>${=javax.xml.datatype.DatatypeFactory.newInstance().newXMLGregorianCalendar(GregorianCalendar.getInstance())}</base:Date>
<base:MessageGUID>${=java.util.UUID.randomUUID()}</base:MessageGUID>
<!--You have a CHOICE of the next 2 items at this level-->
<base:orgPPAGUID>35175e73-3a11-4b04-8c34-6916be471286</base:orgPPAGUID>
</base:RequestHeader>
</soapenv:Header>
<soapenv:Body>
<pay:importNotificationsOfOrderExecutionRequest base:version="10.0.1.1">
<pay:NotificationOfOrderExecutionType>

<pay1:RecipientInfo>
<org:INN>3436018361</org:INN>
<pay1:Legal>
<org:KPP>343601001</org:KPP>
<pay1:Name>ОАО "КамышинТеплоЭнерго"</pay1:Name>
</pay1:Legal>
</pay1:RecipientInfo>
<pay1:OrderInfo>
<pay1:OrderID>20014434523972549256316041264596</pay1:OrderID>
<pay1:OrderDate>2016-10-27</pay1:OrderDate>
<!--Optional:-->
<pay1:Amount>3000</pay1:Amount>

<bil:PaymentDocumentNumber>100503703</bil:PaymentDocumentNumber>
</pay1:OrderInfo>
<base:TransportGUID>${=java.util.UUID.randomUUID()}</base:TransportGUID>
</pay:NotificationOfOrderExecutionType>
</pay:importNotificationsOfOrderExecutionRequest>
</soapenv:Body>
</soapenv:Envelope>
 
Но ведь иена тэгов в XML и XSD в общем-то не могут совпадать...
 
Цитата
Programmer пишет:
Но ведь иена тэгов в XML и XSD в общем-то не могут совпадать...

Что где не совпадает?
 
Цитата
portal-gkh пишет:
Цитата
Programmer пишет:
Но ведь иена тэгов в XML и XSD в общем-то не могут совпадать...

Что где не совпадает?

Вопрос снимаю.
 
Цитата
portal-gkh пишет:
XSD - простым языком - описание структуры XML -файла. Имея XSD, можно создать корректный XML-файл (или формально проверить корректность существующего). Их много, потому, что в ГИС (я правильно понимаю, что речь про нее идет) используется много видов XML-файлов.
Спасибо. Теперь бы еще найти "как", в смысле не задействуя Java и .Net :)
Цитата
portal-gkh пишет:
Пожалуйста (без блока с ЭЦП)
Спасибо, если обрамить как код будет еще замечательнее. И это как я понимаю не результирующий XML, а с кодом на Java, вставляющим дату и guid. На хабре (https://habrahabr.ru/post/300856/) есть обобщенный вид блока подписи, действия как получить значения для него тоже подробно расписаны. Правда смущает, что для старой версии ГИС. Может ли кто пояснить изменился ли вид блока подписи с тех пор? Вроде бы стандарт XAdES-BES международный, но вдруг? После беглого обзора осталось неясно, как (куда) вот это прилеплять к запросу. Предполагаю, сразу после закрытия конверта SOAP </soapenv:Envelope>?[code:1vrtpupk]<ds:Signature Id="xmldsig-{signature_id}" xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:SignedInfo>
<ds:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
<ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr34102001-gostr3411"/>
<ds:Reference Id="xmldsig-{signature_id}-ref0" URI="#{signed_id}">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
<ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
</ds:Transforms>
<ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr3411"/>
<ds:DigestValue>{digest1}</ds:DigestValue>
</ds:Reference>
<ds:Reference Type="http://uri.etsi.org/01903#SignedProperties" URI="#xmldsig-{signature_id}-signedprops">
<ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr3411"/>
<ds:DigestValue>{digest3}</ds:DigestValue>
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue Id="xmldsig-{signature_id}-sigvalue">
{signature_value}
</ds:SignatureValue>
<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:X509Data>
<ds:X509Certificate>
{x590_cert}
</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
<ds:Object><xades:QualifyingProperties Target="#xmldsig-{signature_id}" xmlns:xades="http://uri.etsi.org/01903/v1.3.2#" xmlns:xades141="http://uri.etsi.org/01903/v1.4.1#"><xades:SignedProperties Id="xmldsig-{signature_id}-signedprops"><xades:SignedSignatureProperties><xades:SigningTime>{signing_time}</xades:SigningTime><xades:SigningCertificate><xades:Cert><xades:CertDigest><ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr3411"/><ds:DigestValue>{digest2}</ds:DigestValue></xades:CertDigest><xades:IssuerSerial><ds:X509IssuerName>{x509_issuer_name}</ds:X509IssuerName><ds:X509SerialNumber>{x509_sn}</ds:X509SerialNumber></xades:IssuerSerial></xades:Cert></xades:SigningCertificate></xades:SignedSignatureProperties></xades:SignedProperties></xades:QualifyingProperties></ds:Object>
</ds:Signature>[/code:1vrtpupk]В фигурных скобках подстановки, переводы строк важны, пробелов в конце строк нет, ds:Object без переводов строк - разрывает движок форума.
Насчет других языков нашел SignedXml Class от Майкрософт, но пока не разбирался подойдет ли к ГОСТу. Там С, С++, С#, VB. Если подойдет к ГОСТ и VBScript, то будет забавно написать "резидентный монитор" на VBScript - соединение там легко реализуется, работа с XML тоже должна быть.
 
В понедельника прошлой недели не можем через xml выгрузить информацию об объектах жилищного фонда (дома, подъезды, помещения), такое ощущение что накрутили проверку данных с Росреестром и теперь если дом уже есть и по нему установлена связь с данными росреестра, то выходит ошибка "Общая площадь здания не совпадает с данными из ГКН", по некоторым домам ругается "Тип дома выбранного объекта из Росреестра не совпадает с типом дома объекта жилищного фонда". Никто не сталкивался с подобной проблемой?
 
"Тип дома выбранного объекта из Росреестра не совпадает с типом дома объекта жилищного фонда"

Возможные ошибки.
1. Дом по факту "многоквартирный", а в ГИС прописан как "жилой" (или наоборот).
2. У дома есть фактический кадастровый номер, а Вы пытаетесь написать "нет".

Отправлено спустя 25 минуты 50 секунды:
Изучаю сообщения этой темы и мозги по стене размазываются. Успокаивает то, что еще есть чему размазываться.
В данный момент изучаю формирование XML - файлов из под Delphi. Почти разобрался с пространствами имен. ЛЮДИ ДОБРЫЕ! Может быть кто-нибудь выложит готовый к загрузке XML, чтобы я его мог посмотреть в XML - редакторе (естественно, без ЭЦП) и сделать по образу и подобию? Спасибо!
 
Цитата
Igorbrn пишет:
... выходит ошибка "Общая площадь здания не совпадает с данными из ГКН", по некоторым домам ругается "Тип дома выбранного объекта из Росреестра не совпадает с типом дома объекта жилищного фонда". Никто не сталкивался с подобной проблемой?
Широко обсуждается в других ГИС-разделах форума. Здесь - не об этом.
 
Цитата
AlcorVol пишет:
Цитата
Igorbrn пишет:
... выходит ошибка "Общая площадь здания не совпадает с данными из ГКН", по некоторым домам ругается "Тип дома выбранного объекта из Росреестра не совпадает с типом дома объекта жилищного фонда". Никто не сталкивался с подобной проблемой?
Широко обсуждается в других ГИС-разделах форума. Здесь - не об этом.
Да уже увидел, что проблема не только в xml, но и через шаблоны не грузится.
 
Добрый день. Ребят подскажите в какую сторону копать с этим ГИС ЖКХ. Что проще СОАП или шаблонами xls?
 
Цитата
serg_p пишет:
в какую сторону копать с этим ГИС ЖКХ
Если научитесь прямо из программы XSLX-шаблоны заполнять - то в 100 раз проще будет.
 
Цитата
AlcorVol пишет:
Цитата
serg_p пишет:
в какую сторону копать с этим ГИС ЖКХ
Если научитесь прямо из программы XSLX-шаблоны заполнять - то в 100 раз проще будет.

Прямо в шаблон вставлять строки? В их шаблон? Или можно файл сформировать свой?
 
Цитата
serg_p пишет:
Прямо в шаблон вставлять строки? В их шаблон? Или можно файл сформировать свой?
Лучше бы в их шаблон. Но это программным образом совсем не просто сделать. Формат XLSX довольно сложен: это ZIP-упакованный каталог с кучей подкаталогов и файлов. Нужно использовать какие-то специализированные средства для работы с XLSX-файлами. Общедоступных для любой среды программирования я не знаю. Кое-что для среды Visual FoxPro обсуждается в этой теме:
viewtopic.php?f=147&t=5561
 
https://habrahabr.ru/post/236107/ вот нашёл на просторах, как человек пишет и сохраняет в XLSX. Файлы тоже нашёл, тяжело в них с ходу разобраться.
 
Цитата
serg_p пишет:
https://habrahabr.ru/post/236107/ вот нашёл на просторах, как человек пишет и сохраняет в XLSX. Файлы тоже нашёл, тяжело в них с ходу разобраться.
Спасибо! Продублируйте, пожалуйста, в теме
viewtopic.php?f=147&t=5561 (Средства работы с XLSX-файлами).
 
В копилочку - искал сегодня коды ГОСТ алгоритмов для WinCryptApi и нашел обсуждение как работать с WinCryptApi из VFP. Правда, там для СМЭВ, но наверно кому пригодится как основа.
[url:79s8v3de]http://forum.foxclub.ru/read.php?29,562068[/url:79s8v3de]
А вот тут между делом выяснилось, что Windows до кучи умеет и в base 64 конвертировать вычисленный хэш. Правда, возможно придется его перевернуть (Little Endian<->Big Endian) до перекодировки в base64. Внимание! Большая часть кода пользователя Гвость там - пример как не надо работать с WinApi, но есть и полезные моменты.
Также наконец сегодня встретилось упоминание, что порядок Endian при вычислении хэша или подписи регламентирован в XMLDSIG стандарте и не совпадает с возвращаемым WinCryptApi. Пока еще не смотрел стандарт, но это наконец может поставить точку в этом вопросе. По крайней мере, при подписи XML.

P. S. Сегодня зашел на демо-приложение КриптоПро для проверки работы плагина Cades. КриптоПро тоже радует: на демо-приложении теперь есть и подписание XML. К сожалению, подписывается весь конверт SOAP целиком, а не только нужная часть (сделано явно для простоты - так не нужно делить текст XML). Так как в Reference URI указывается часть документа которая подписана (пустая строка для документа целиком), то подписать часть, а потом вставить часть в целый документ тоже не выйдет - увы, Reference не совпадет. Но в остальном это полноценная подпись и уже о-о-очень близко к тому, что нужно. Явно пригодится для тестирования либо для передачи данных в какую-нибудь собственную ИС. Кроме того, там еще прибавилось вариантов работы плагина.
 
https://geektimes.ru/post/283596/
 
Цитата
AlcorVol пишет:
https://geektimes.ru/post/283596/
"Роскомнадзор заблокировал 127.0.0.1" :lol: Давно я так не смеялся. Через провайдера трафик локалхост конечно не проходит, но вообще все пакеты для компьютера (широковещательные и с точным указанием других адресов компьютера, за исключением адресов "точка-точка") по таблице маршрутизации сваливаются в локалхост. Если бы блокировка срабатывала на уровне операционной системы каждого компьютера, то Рунет бы определенно обрушился)))
 
Добрался до почты. Вот что прислали на прошлой неделе в новостной рассылке IT-Region: Разработана платформа для загрузки данных в ГИС ЖКХ. Думал может министерство какое раскочегарилось, пошел читать. Ан, нет, компания... Крайне похоже на очередную рекламу "сдавальщиков", но продвижение очень грамотное: через новостной сайт Cnews, прямых контактов нет и так красиво все написано, что захотелось поделится самыми интересными "перлами".
Цитата
<...> разработала прикладную интеграционную платформу, связывающую ГИС ЖКХ, а также другие информационные исистемы в единое информационное поле.
Ничего себе, а мы все про библитеку говорили, про Эксель и личный кабинет. А тут "интеграционная платформа" и "единое информационное поле". :?
Цитата
<...>платформа принимает информацию в простых и удобных форматах, не требует связи систем с интернетом, а также ручного переноса данных на внешних накопителях.
Как? Ну вот как? Телепатией засасывает данные из "близлежащих" ИС что ли? Ах да, единое информационное поле же.. эфир, так сказать. 8-)
Если подумать эфир должен писаться как ether и как раз наводит мысль про Ethernet (локальная сеть). Вот оно какое - единое информационное поле.
Или это про Эксель так написали? Типа простой и удобный?
Цитата
указывает на ошибки в загружаемых данных и позволяет их исправить.
Просто "сказка". Есть чему поучиться - можем добавить проверку на ошибки и подсказки к ошибкам в своей ИС и написать в информации о ИС 3-4 дополнительных абзаца про "индикацию", "указание на ошибки", и принятие решения об отправке информации пользователем "после того, как платформа подтвердит ее корректность и полноту". :lol:
То есть сначала надо убедить платформу, что не верблюд. А потом платформа попробует убедить ГИС что с данными все "ОК".
Что удивило - про сертификаты и электронную подпись ни слова. Уже как-то привычно слышать про "усиленную квалифицированную" ЭП даже в тех случаях, когда она никакая не усиленная.
 
Цитата
two_oceans пишет:
Что удивило - про сертификаты и электронную подпись ни слова. Уже как-то привычно слышать про "усиленную квалифицированную" ЭП даже в тех случаях, когда она никакая не усиленная.
Ну так общение посредника с УК - это исключительно их внутреннее дело. Могут "усиленную квалифицированную" по ГОСТ использовать, могут самоподписанными сертификатами RSA обойтись, а могут голубиную почту и сургуч использовать. А с ГИС ЖКХ посредник наверняка будет общаться с помощью "усиленной квалифицированной".
 
Всем привет ! хочу присоединиться к вашему обществу ) Вопросы которые тут обсуждают оооочень мне знакомы и выхода тоже пока не нашёл, но совместными усилиями возможно всё получится. Работаю в РЦ в провинции (маленький городок 35к квитанций+15к район) Не владею (но очень хочу освоить) SOAP и веб программирование. Фортануло что перенесли ответственность на поздний срок, а значит есть ещё время. Наша прога на VisualFoxPro и в принципе всё устраивает, но .... проблемы с ГИС ЖКХ не дают спокойно пить пиво вечерами ). В декабре 2016 закончил перенос данных на PostgreSQL (и переписал прогу конечно). Я не молод и мне уже трудно учить что-то новое ) сорь + нет рядом спецов к которым мог бы обратиться - недостаток провинции ))) разъезжаются все ...
По теме: написал "конверторы" XLS для ТСЖ,УК и т.д. , но этого недостаточно ( РЦ могут работать только через WEB (
У вас на каком этапе ? с чего начать ? Например просто законектиться для начала через зашифрованный канал. После построения как проверить правильность коннекта ?

Отправлено спустя 7 минуты 1 секунду:
с XLS шаблонами работаю так:
на FTP лежат шаблоны, при выборе шаблона, он копируется в локальный каталог и заполняется.
при размещении данных в XLS на мой взгляд легче использовать ActiveX
что-то вроде :
loExcel=CREATEOBJECT("Excel.Application")
loBook=loExcel.Workbooks.Open(lcXLSName)
 
Привет! Рад пополнению в наших рядах. С праздниками и годовыми отчетами я на весь январь "выпал" из темы, тоже буду постепенно втягиваться. На ГИС ЖКХ должен быть опубликован порядок подключения. Еще есть чат разработчиков, кто пытается интегрировать свои ИС с ГИС [url:j1ov8t8e]https://gitter.im/springjazzy/GIS_JKH_Integration[/url:j1ov8t8e]

Если вкратце - сначала нужно получить сертификат (почему-то для тестов обычно получают в тестовом центре крипто-про, но и существующие "боевые" для теста не запрещены), затем сделать заявку ИС на тестовый сервер (к ней прикладывается сертификат, который будет использоваться). Пока рассматривают можно настраивать крипто-туннель (обычно stunnel на основе openssl - есть свободная версия и есть версия от крипто про) при этом скорее всего понадобится преобразовать сертификат и ключевой контейнер в другой формат (версию от крипто про можно "научить" подхватывать из самой крипто про), еще один сертификат (который использует ГИС) прилагается к форматам взаимодействия. Когда ИС подтвердят, отправить заявку на доступ к данным организациям с данными которых ИС будет работать (для теста чаще самим себе), и только когда подтвердят доступ к данным можно будет тестировать отправкой SOAP.
Тестирование потом предполагается после каждого изменения в ИС, после смены версии самой ГИС. Далее процедура повторяется для "боевого" сервера - заявка, поправка настроек туннеля, еще организации, работа.
На WSDL можно зайти и без шифрования, например [url:j1ov8t8e]http://217.107.108.156:10082/ext-bus-org-registry-common-service/services/OrgRegistryCommonAsync?wsdl[/url:j1ov8t8e] если спросит логин lanit пароль tv,n8!Ya. Вообще 10082 порт без шифрования, 10081 с шифрованием.

Про SOAP все оказалось не так просто - сам по себе xml с данными сформировать довольно просто, но дальше их нужно в несколько этапов приводить к каноническому виду и считать хеши (для ГИС ЖКХ хэш считается 3 раза), а в конце все что вышло снова привести к каноническому виду и подписать ЭП. Результат поместить в тег подписи. Затем нужно склеить приведенный к каноническому виду xml с данными (по стандарту в этом месте можно не приводить, но лучше использовать в точности тот текст, что использовался для вычисления первого хэша), готовый сформированный тег подписи и общие заголовки SOAP.
Как ни странно вычислить хэш и подпись оказалось относительно не так сложно - если установлен крипто-про все можно вытащить через встроенный криптопровайдер майкрософт (где-то тут я приводил ссылку для VFP), если не установлен - то через openssl (либо выполнять через консоль либо осваивать библиотеки libssl32 и libeay32).
А вот приведение к каноническому виду - поистине адская процедура, если неправильно привести ЭП потом не сойдется и запрос отклонят. При этом нормальный общепризнанный каноникализатор есть только в dotNet и Java, версия в старых xml библиотеках не соответствует стандарту. Конечно, если сможете формировать xml (и все промежуточные шаги) сразу в каноническом виде все значительно упроститься, но требует исключительного внимания чтобы успевать обновлять все шаблоны ГИС и не ошибаться в их каноническом виде. Я вот решил сделать собственную библиотеку для канонического вида и подписи, но почитал стандарт и круто "застрял".

Отправлено спустя 9 минуты 7 секунды:
Про Эксель - конечно можно работать так. Однако у Экселя есть неприятная особенность что все внешние вызовы объекта длятся намногоооо дольше чем те же вызовы напрямую из Экселевского файла. На одной записи это не заметно, но есть попытаться записать тысячу - разница ощутимая. Если все равно разбираетесь с API Экселя имеет смысл написать макросы в нем и вытащить все что нужно из базы данных средствами Экселя.
 
Цитата
two_oceans пишет:
Однако у Экселя есть неприятная особенность что все внешние вызовы объекта длятся намногоооо дольше чем те же вызовы напрямую из Экселевского файла. На одной записи это не заметно, но есть попытаться записать тысячу - разница ощутимая.
Да, если писать по одной ячейке - это долго. А вот если одной командой залить массив Array(x,y) - это быстро. ;)
 
Цитата
Basil пишет:
А вот если одной командой залить массив Array(x,y)
Серьезно? Логично, что дело как раз в количестве команд и одна сработает быстрее, но как-то я такую команду проглядел. Конечно между листами конечно копировал массивы ячеек. Тоже не так уж быстро. Когда на листе 50 тыс строк и более 150 столбцов, порой быстрее сохранить копию книги и удалить из копии прочие листы чем копировать один такой лист в новую книгу. И не так уж просто уследить куда Эксель вставит, скажем, вырезанный ряд, заменит значения что там были или сдвинет в сторону.
А вот что копирование массива значений в ячейки сработает из внешней программы, где массивы могут быть совершенно другие по представлению в памяти - для меня открытие месяца. Спасибо за наводку.
Конечно, отдельный вопрос про язык которым это делать, например, я на VB не умею "кучно" задавать значения массива одной командой, так что мне все равно придется массив формировать по 1 значению. Соответственно, будет проще сделать это в самом Экселе, записывая по 1 ячейке без использования массива. На Паскале или JavaScript или PHP умею задавать несколько значений, а на VB ни разу не видел такого. Из школьной программы конечно вспоминается задание значений массива через DATA и READ на QBasic, но сейчас это вроде уже устарело. Итого - возможность прекрасная, но воспользоваться будет не так просто.

Отправлено спустя 8 минуты 57 секунды:
Цитата
mercury пишет:
Например просто законектиться для начала через зашифрованный канал. После построения как проверить правильность коннекта ?
Вспомнил, что некоторые запросы (обычно на экспорт данных) не требуют подписи, поэтому их можно попробовать даже если не полностью отлажен алгоритм подписи. Естественно, если отправить сразу после установления канала (до регистрации ИС и получения прав) ответ на запрос будет "Неверная ИС", но для проверки работы канала подойдет.
 
Цитата
two_oceans пишет:
Логично, что дело как раз в количестве команд и одна сработает быстрее, но как-то я такую команду проглядел.
Ничего специфического, простое присвоение значения для диапазона. Примерно так (на фоксе):
loSheet.Cells(lnRow, lnCol).Resize(lnRows, lnCols).Value = myFunction('myArray')
 
ЛЮДИ ДОБРЫЕ! Работаю программистов в УК. Delphi. Возникла необходимость освоить интеграцию в ГИС "ЖКХ", так как с XLSX запарился работать.
Зарегистрировал ИС. Из ГИС "ЖКХ" получил два файла:
1) GUK.cer - этот файл я использовал при регистрации ИС;
2) Электронная подпись оператора ГИС ЖКХ_17.02.2017_GUK.cer.p7s - этот файл из ГИС "ЖКХ". Изготовил PAS - файлы из WSDL.
Цель: передать МИНИМАЛЬНУЮ единицу информации. Что дальше делать - не знаю. Информации море, а толку нет.
Подскажите, пожалуйста, сценарий взаимодействия с ГИС "ЖКХ".
Спасибо!
#31
0 0
Цитата
AlcorVol пишет:
для себя я могу эту проблему решить за час
Тест, Тест. Почти решил (надо еще поменять указатели на тему, а то публикует в теме "эмоции пост", откуда пересадил форму). Честно сказать удивился немного - на форму быстрого ответа нужно 44,5 Кб кода из 128 Кб страницы.
#32
0 0
Разрабы могли бы обмены и по FTP организовать. Дали бы явки и пароли от FTP каждому пользователю, вперед и с песнями...
#33
0 0
ЛЮДИ ДОБРЫЕ! Намекните, пожалуйста. Накопал кучу XSD - файлов и мне не по себе стало. По сути - это те же XML (XML Schema?, насколько я помню). Но для чего их вывалили в таком количестве и что с ними делать - точно не знаю. Есть только догадки, что с помощью этих файлов надо что-то проверять. Спасибо!
#34
0 0
А вот объясните, пожалуйста мне, неграмотному. Правильно ли я понимаю, что XML - файлами (если использовать интеграцию) можно заменить Ёкселевские шаблоны. Если да, и, если у кого-то есть пример любого XML, загрузившегося в ГИС, то опубликуйте его, пожалуйста.

Отправлено спустя 1 минуту 32 секунды:
И еще. Крайне не хотелось бы использовать Java и .NET.
#35
0 0
Цитата
Programmer пишет:
ЛЮДИ ДОБРЫЕ! Намекните, пожалуйста. Накопал кучу XSD - файлов и мне не по себе стало. По сути - это те же XML (XML Schema?, насколько я помню). Но для чего их вывалили в таком количестве и что с ними делать - точно не знаю. Есть только догадки, что с помощью этих файлов надо что-то проверять. Спасибо!

XSD - простым языком - описание структуры XML -файла. Имея XSD, можно создать корректный XML-файл (или формально проверить корректность существующего). Их много, потому, что в ГИС (я правильно понимаю, что речь про нее идет) используется много видов XML-файлов.

Отправлено спустя 5 минуты 8 секунды:
Цитата
Programmer пишет:
А вот объясните, пожалуйста мне, неграмотному. Правильно ли я понимаю, что XML - файлами (если использовать интеграцию) можно заменить Ёкселевские шаблоны. Если да, и, если у кого-то есть пример любого XML, загрузившегося в ГИС, то опубликуйте его, пожалуйста.

Отправлено спустя 1 минуту 32 секунды:
И еще. Крайне не хотелось бы использовать Java и .NET.

Пожалуйста (без блока с ЭЦП)
soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:base="http://dom.gosuslugi.ru/schema/integration/base/"
xmlns:pay="http://dom.gosuslugi.ru/schema/integration/payment/"
xmlns:xd="http://www.w3.org/2000/09/xmldsig#"
xmlns:pay1="http://dom.gosuslugi.ru/schema/integration/payments-base/"
xmlns:org="http://dom.gosuslugi.ru/schema/integration/organizations-base/"
xmlns:ind="http://dom.gosuslugi.ru/schema/integration/individual-registry-base/"
xmlns:bil="http://dom.gosuslugi.ru/schema/integration/bills-base/"
xmlns:acc="http://dom.gosuslugi.ru/schema/integration/account-base/">
<soapenv:Header>
<base:RequestHeader>
<base:Date>${=javax.xml.datatype.DatatypeFactory.newInstance().newXMLGregorianCalendar(GregorianCalendar.getInstance())}</base:Date>
<base:MessageGUID>${=java.util.UUID.randomUUID()}</base:MessageGUID>
<!--You have a CHOICE of the next 2 items at this level-->
<base:orgPPAGUID>35175e73-3a11-4b04-8c34-6916be471286</base:orgPPAGUID>
</base:RequestHeader>
</soapenv:Header>
<soapenv:Body>
<pay:importNotificationsOfOrderExecutionRequest base:version="10.0.1.1">
<pay:NotificationOfOrderExecutionType>

<pay1:RecipientInfo>
<org:INN>3436018361</org:INN>
<pay1:Legal>
<org:KPP>343601001</org:KPP>
<pay1:Name>ОАО "КамышинТеплоЭнерго"</pay1:Name>
</pay1:Legal>
</pay1:RecipientInfo>
<pay1:OrderInfo>
<pay1:OrderID>20014434523972549256316041264596</pay1:OrderID>
<pay1:OrderDate>2016-10-27</pay1:OrderDate>
<!--Optional:-->
<pay1:Amount>3000</pay1:Amount>

<bil:PaymentDocumentNumber>100503703</bil:PaymentDocumentNumber>
</pay1:OrderInfo>
<base:TransportGUID>${=java.util.UUID.randomUUID()}</base:TransportGUID>
</pay:NotificationOfOrderExecutionType>
</pay:importNotificationsOfOrderExecutionRequest>
</soapenv:Body>
</soapenv:Envelope>
#36
0 0
Но ведь иена тэгов в XML и XSD в общем-то не могут совпадать...
#37
0 0
Цитата
Programmer пишет:
Но ведь иена тэгов в XML и XSD в общем-то не могут совпадать...

Что где не совпадает?
#38
0 0
Цитата
portal-gkh пишет:
Цитата
Programmer пишет:
Но ведь иена тэгов в XML и XSD в общем-то не могут совпадать...

Что где не совпадает?

Вопрос снимаю.
#39
0 0
Цитата
portal-gkh пишет:
XSD - простым языком - описание структуры XML -файла. Имея XSD, можно создать корректный XML-файл (или формально проверить корректность существующего). Их много, потому, что в ГИС (я правильно понимаю, что речь про нее идет) используется много видов XML-файлов.
Спасибо. Теперь бы еще найти "как", в смысле не задействуя Java и .Net :)
Цитата
portal-gkh пишет:
Пожалуйста (без блока с ЭЦП)
Спасибо, если обрамить как код будет еще замечательнее. И это как я понимаю не результирующий XML, а с кодом на Java, вставляющим дату и guid. На хабре (https://habrahabr.ru/post/300856/) есть обобщенный вид блока подписи, действия как получить значения для него тоже подробно расписаны. Правда смущает, что для старой версии ГИС. Может ли кто пояснить изменился ли вид блока подписи с тех пор? Вроде бы стандарт XAdES-BES международный, но вдруг? После беглого обзора осталось неясно, как (куда) вот это прилеплять к запросу. Предполагаю, сразу после закрытия конверта SOAP </soapenv:Envelope>?[code:1vrtpupk]<ds:Signature Id="xmldsig-{signature_id}" xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:SignedInfo>
<ds:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
<ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr34102001-gostr3411"/>
<ds:Reference Id="xmldsig-{signature_id}-ref0" URI="#{signed_id}">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
<ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
</ds:Transforms>
<ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr3411"/>
<ds:DigestValue>{digest1}</ds:DigestValue>
</ds:Reference>
<ds:Reference Type="http://uri.etsi.org/01903#SignedProperties" URI="#xmldsig-{signature_id}-signedprops">
<ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr3411"/>
<ds:DigestValue>{digest3}</ds:DigestValue>
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue Id="xmldsig-{signature_id}-sigvalue">
{signature_value}
</ds:SignatureValue>
<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:X509Data>
<ds:X509Certificate>
{x590_cert}
</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
<ds:Object><xades:QualifyingProperties Target="#xmldsig-{signature_id}" xmlns:xades="http://uri.etsi.org/01903/v1.3.2#" xmlns:xades141="http://uri.etsi.org/01903/v1.4.1#"><xades:SignedProperties Id="xmldsig-{signature_id}-signedprops"><xades:SignedSignatureProperties><xades:SigningTime>{signing_time}</xades:SigningTime><xades:SigningCertificate><xades:Cert><xades:CertDigest><ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#gostr3411"/><ds:DigestValue>{digest2}</ds:DigestValue></xades:CertDigest><xades:IssuerSerial><ds:X509IssuerName>{x509_issuer_name}</ds:X509IssuerName><ds:X509SerialNumber>{x509_sn}</ds:X509SerialNumber></xades:IssuerSerial></xades:Cert></xades:SigningCertificate></xades:SignedSignatureProperties></xades:SignedProperties></xades:QualifyingProperties></ds:Object>
</ds:Signature>[/code:1vrtpupk]В фигурных скобках подстановки, переводы строк важны, пробелов в конце строк нет, ds:Object без переводов строк - разрывает движок форума.
Насчет других языков нашел SignedXml Class от Майкрософт, но пока не разбирался подойдет ли к ГОСТу. Там С, С++, С#, VB. Если подойдет к ГОСТ и VBScript, то будет забавно написать "резидентный монитор" на VBScript - соединение там легко реализуется, работа с XML тоже должна быть.
#40
0 0
В понедельника прошлой недели не можем через xml выгрузить информацию об объектах жилищного фонда (дома, подъезды, помещения), такое ощущение что накрутили проверку данных с Росреестром и теперь если дом уже есть и по нему установлена связь с данными росреестра, то выходит ошибка "Общая площадь здания не совпадает с данными из ГКН", по некоторым домам ругается "Тип дома выбранного объекта из Росреестра не совпадает с типом дома объекта жилищного фонда". Никто не сталкивался с подобной проблемой?
#41
0 0
"Тип дома выбранного объекта из Росреестра не совпадает с типом дома объекта жилищного фонда"

Возможные ошибки.
1. Дом по факту "многоквартирный", а в ГИС прописан как "жилой" (или наоборот).
2. У дома есть фактический кадастровый номер, а Вы пытаетесь написать "нет".

Отправлено спустя 25 минуты 50 секунды:
Изучаю сообщения этой темы и мозги по стене размазываются. Успокаивает то, что еще есть чему размазываться.
В данный момент изучаю формирование XML - файлов из под Delphi. Почти разобрался с пространствами имен. ЛЮДИ ДОБРЫЕ! Может быть кто-нибудь выложит готовый к загрузке XML, чтобы я его мог посмотреть в XML - редакторе (естественно, без ЭЦП) и сделать по образу и подобию? Спасибо!
#42
0 0
Цитата
Igorbrn пишет:
... выходит ошибка "Общая площадь здания не совпадает с данными из ГКН", по некоторым домам ругается "Тип дома выбранного объекта из Росреестра не совпадает с типом дома объекта жилищного фонда". Никто не сталкивался с подобной проблемой?
Широко обсуждается в других ГИС-разделах форума. Здесь - не об этом.
#43
0 0
Цитата
AlcorVol пишет:
Цитата
Igorbrn пишет:
... выходит ошибка "Общая площадь здания не совпадает с данными из ГКН", по некоторым домам ругается "Тип дома выбранного объекта из Росреестра не совпадает с типом дома объекта жилищного фонда". Никто не сталкивался с подобной проблемой?
Широко обсуждается в других ГИС-разделах форума. Здесь - не об этом.
Да уже увидел, что проблема не только в xml, но и через шаблоны не грузится.
#44
0 0
Добрый день. Ребят подскажите в какую сторону копать с этим ГИС ЖКХ. Что проще СОАП или шаблонами xls?
#45
0 0
Цитата
serg_p пишет:
в какую сторону копать с этим ГИС ЖКХ
Если научитесь прямо из программы XSLX-шаблоны заполнять - то в 100 раз проще будет.
#46
0 0
Цитата
AlcorVol пишет:
Цитата
serg_p пишет:
в какую сторону копать с этим ГИС ЖКХ
Если научитесь прямо из программы XSLX-шаблоны заполнять - то в 100 раз проще будет.

Прямо в шаблон вставлять строки? В их шаблон? Или можно файл сформировать свой?
#47
0 0
Цитата
serg_p пишет:
Прямо в шаблон вставлять строки? В их шаблон? Или можно файл сформировать свой?
Лучше бы в их шаблон. Но это программным образом совсем не просто сделать. Формат XLSX довольно сложен: это ZIP-упакованный каталог с кучей подкаталогов и файлов. Нужно использовать какие-то специализированные средства для работы с XLSX-файлами. Общедоступных для любой среды программирования я не знаю. Кое-что для среды Visual FoxPro обсуждается в этой теме:
viewtopic.php?f=147&t=5561
#48
0 0
https://habrahabr.ru/post/236107/ вот нашёл на просторах, как человек пишет и сохраняет в XLSX. Файлы тоже нашёл, тяжело в них с ходу разобраться.
#49
0 0
Цитата
serg_p пишет:
https://habrahabr.ru/post/236107/ вот нашёл на просторах, как человек пишет и сохраняет в XLSX. Файлы тоже нашёл, тяжело в них с ходу разобраться.
Спасибо! Продублируйте, пожалуйста, в теме
viewtopic.php?f=147&t=5561 (Средства работы с XLSX-файлами).
#50
0 0
В копилочку - искал сегодня коды ГОСТ алгоритмов для WinCryptApi и нашел обсуждение как работать с WinCryptApi из VFP. Правда, там для СМЭВ, но наверно кому пригодится как основа.
[url:79s8v3de]http://forum.foxclub.ru/read.php?29,562068[/url:79s8v3de]
А вот тут между делом выяснилось, что Windows до кучи умеет и в base 64 конвертировать вычисленный хэш. Правда, возможно придется его перевернуть (Little Endian<->Big Endian) до перекодировки в base64. Внимание! Большая часть кода пользователя Гвость там - пример как не надо работать с WinApi, но есть и полезные моменты.
Также наконец сегодня встретилось упоминание, что порядок Endian при вычислении хэша или подписи регламентирован в XMLDSIG стандарте и не совпадает с возвращаемым WinCryptApi. Пока еще не смотрел стандарт, но это наконец может поставить точку в этом вопросе. По крайней мере, при подписи XML.

P. S. Сегодня зашел на демо-приложение КриптоПро для проверки работы плагина Cades. КриптоПро тоже радует: на демо-приложении теперь есть и подписание XML. К сожалению, подписывается весь конверт SOAP целиком, а не только нужная часть (сделано явно для простоты - так не нужно делить текст XML). Так как в Reference URI указывается часть документа которая подписана (пустая строка для документа целиком), то подписать часть, а потом вставить часть в целый документ тоже не выйдет - увы, Reference не совпадет. Но в остальном это полноценная подпись и уже о-о-очень близко к тому, что нужно. Явно пригодится для тестирования либо для передачи данных в какую-нибудь собственную ИС. Кроме того, там еще прибавилось вариантов работы плагина.
#51
0 0
https://geektimes.ru/post/283596/
#52
0 0
Цитата
AlcorVol пишет:
https://geektimes.ru/post/283596/
"Роскомнадзор заблокировал 127.0.0.1" :lol: Давно я так не смеялся. Через провайдера трафик локалхост конечно не проходит, но вообще все пакеты для компьютера (широковещательные и с точным указанием других адресов компьютера, за исключением адресов "точка-точка") по таблице маршрутизации сваливаются в локалхост. Если бы блокировка срабатывала на уровне операционной системы каждого компьютера, то Рунет бы определенно обрушился)))
#53
0 0
Добрался до почты. Вот что прислали на прошлой неделе в новостной рассылке IT-Region: Разработана платформа для загрузки данных в ГИС ЖКХ. Думал может министерство какое раскочегарилось, пошел читать. Ан, нет, компания... Крайне похоже на очередную рекламу "сдавальщиков", но продвижение очень грамотное: через новостной сайт Cnews, прямых контактов нет и так красиво все написано, что захотелось поделится самыми интересными "перлами".
Цитата
<...> разработала прикладную интеграционную платформу, связывающую ГИС ЖКХ, а также другие информационные исистемы в единое информационное поле.
Ничего себе, а мы все про библитеку говорили, про Эксель и личный кабинет. А тут "интеграционная платформа" и "единое информационное поле". :?
Цитата
<...>платформа принимает информацию в простых и удобных форматах, не требует связи систем с интернетом, а также ручного переноса данных на внешних накопителях.
Как? Ну вот как? Телепатией засасывает данные из "близлежащих" ИС что ли? Ах да, единое информационное поле же.. эфир, так сказать. 8-)
Если подумать эфир должен писаться как ether и как раз наводит мысль про Ethernet (локальная сеть). Вот оно какое - единое информационное поле.
Или это про Эксель так написали? Типа простой и удобный?
Цитата
указывает на ошибки в загружаемых данных и позволяет их исправить.
Просто "сказка". Есть чему поучиться - можем добавить проверку на ошибки и подсказки к ошибкам в своей ИС и написать в информации о ИС 3-4 дополнительных абзаца про "индикацию", "указание на ошибки", и принятие решения об отправке информации пользователем "после того, как платформа подтвердит ее корректность и полноту". :lol:
То есть сначала надо убедить платформу, что не верблюд. А потом платформа попробует убедить ГИС что с данными все "ОК".
Что удивило - про сертификаты и электронную подпись ни слова. Уже как-то привычно слышать про "усиленную квалифицированную" ЭП даже в тех случаях, когда она никакая не усиленная.
#54
0 0
Цитата
two_oceans пишет:
Что удивило - про сертификаты и электронную подпись ни слова. Уже как-то привычно слышать про "усиленную квалифицированную" ЭП даже в тех случаях, когда она никакая не усиленная.
Ну так общение посредника с УК - это исключительно их внутреннее дело. Могут "усиленную квалифицированную" по ГОСТ использовать, могут самоподписанными сертификатами RSA обойтись, а могут голубиную почту и сургуч использовать. А с ГИС ЖКХ посредник наверняка будет общаться с помощью "усиленной квалифицированной".
#55
0 0
Всем привет ! хочу присоединиться к вашему обществу ) Вопросы которые тут обсуждают оооочень мне знакомы и выхода тоже пока не нашёл, но совместными усилиями возможно всё получится. Работаю в РЦ в провинции (маленький городок 35к квитанций+15к район) Не владею (но очень хочу освоить) SOAP и веб программирование. Фортануло что перенесли ответственность на поздний срок, а значит есть ещё время. Наша прога на VisualFoxPro и в принципе всё устраивает, но .... проблемы с ГИС ЖКХ не дают спокойно пить пиво вечерами ). В декабре 2016 закончил перенос данных на PostgreSQL (и переписал прогу конечно). Я не молод и мне уже трудно учить что-то новое ) сорь + нет рядом спецов к которым мог бы обратиться - недостаток провинции ))) разъезжаются все ...
По теме: написал "конверторы" XLS для ТСЖ,УК и т.д. , но этого недостаточно ( РЦ могут работать только через WEB (
У вас на каком этапе ? с чего начать ? Например просто законектиться для начала через зашифрованный канал. После построения как проверить правильность коннекта ?

Отправлено спустя 7 минуты 1 секунду:
с XLS шаблонами работаю так:
на FTP лежат шаблоны, при выборе шаблона, он копируется в локальный каталог и заполняется.
при размещении данных в XLS на мой взгляд легче использовать ActiveX
что-то вроде :
loExcel=CREATEOBJECT("Excel.Application")
loBook=loExcel.Workbooks.Open(lcXLSName)
#56
0 0
Привет! Рад пополнению в наших рядах. С праздниками и годовыми отчетами я на весь январь "выпал" из темы, тоже буду постепенно втягиваться. На ГИС ЖКХ должен быть опубликован порядок подключения. Еще есть чат разработчиков, кто пытается интегрировать свои ИС с ГИС [url:j1ov8t8e]https://gitter.im/springjazzy/GIS_JKH_Integration[/url:j1ov8t8e]

Если вкратце - сначала нужно получить сертификат (почему-то для тестов обычно получают в тестовом центре крипто-про, но и существующие "боевые" для теста не запрещены), затем сделать заявку ИС на тестовый сервер (к ней прикладывается сертификат, который будет использоваться). Пока рассматривают можно настраивать крипто-туннель (обычно stunnel на основе openssl - есть свободная версия и есть версия от крипто про) при этом скорее всего понадобится преобразовать сертификат и ключевой контейнер в другой формат (версию от крипто про можно "научить" подхватывать из самой крипто про), еще один сертификат (который использует ГИС) прилагается к форматам взаимодействия. Когда ИС подтвердят, отправить заявку на доступ к данным организациям с данными которых ИС будет работать (для теста чаще самим себе), и только когда подтвердят доступ к данным можно будет тестировать отправкой SOAP.
Тестирование потом предполагается после каждого изменения в ИС, после смены версии самой ГИС. Далее процедура повторяется для "боевого" сервера - заявка, поправка настроек туннеля, еще организации, работа.
На WSDL можно зайти и без шифрования, например [url:j1ov8t8e]http://217.107.108.156:10082/ext-bus-org-registry-common-service/services/OrgRegistryCommonAsync?wsdl[/url:j1ov8t8e] если спросит логин lanit пароль tv,n8!Ya. Вообще 10082 порт без шифрования, 10081 с шифрованием.

Про SOAP все оказалось не так просто - сам по себе xml с данными сформировать довольно просто, но дальше их нужно в несколько этапов приводить к каноническому виду и считать хеши (для ГИС ЖКХ хэш считается 3 раза), а в конце все что вышло снова привести к каноническому виду и подписать ЭП. Результат поместить в тег подписи. Затем нужно склеить приведенный к каноническому виду xml с данными (по стандарту в этом месте можно не приводить, но лучше использовать в точности тот текст, что использовался для вычисления первого хэша), готовый сформированный тег подписи и общие заголовки SOAP.
Как ни странно вычислить хэш и подпись оказалось относительно не так сложно - если установлен крипто-про все можно вытащить через встроенный криптопровайдер майкрософт (где-то тут я приводил ссылку для VFP), если не установлен - то через openssl (либо выполнять через консоль либо осваивать библиотеки libssl32 и libeay32).
А вот приведение к каноническому виду - поистине адская процедура, если неправильно привести ЭП потом не сойдется и запрос отклонят. При этом нормальный общепризнанный каноникализатор есть только в dotNet и Java, версия в старых xml библиотеках не соответствует стандарту. Конечно, если сможете формировать xml (и все промежуточные шаги) сразу в каноническом виде все значительно упроститься, но требует исключительного внимания чтобы успевать обновлять все шаблоны ГИС и не ошибаться в их каноническом виде. Я вот решил сделать собственную библиотеку для канонического вида и подписи, но почитал стандарт и круто "застрял".

Отправлено спустя 9 минуты 7 секунды:
Про Эксель - конечно можно работать так. Однако у Экселя есть неприятная особенность что все внешние вызовы объекта длятся намногоооо дольше чем те же вызовы напрямую из Экселевского файла. На одной записи это не заметно, но есть попытаться записать тысячу - разница ощутимая. Если все равно разбираетесь с API Экселя имеет смысл написать макросы в нем и вытащить все что нужно из базы данных средствами Экселя.
#57
0 0
Цитата
two_oceans пишет:
Однако у Экселя есть неприятная особенность что все внешние вызовы объекта длятся намногоооо дольше чем те же вызовы напрямую из Экселевского файла. На одной записи это не заметно, но есть попытаться записать тысячу - разница ощутимая.
Да, если писать по одной ячейке - это долго. А вот если одной командой залить массив Array(x,y) - это быстро. ;)
#58
0 0
Цитата
Basil пишет:
А вот если одной командой залить массив Array(x,y)
Серьезно? Логично, что дело как раз в количестве команд и одна сработает быстрее, но как-то я такую команду проглядел. Конечно между листами конечно копировал массивы ячеек. Тоже не так уж быстро. Когда на листе 50 тыс строк и более 150 столбцов, порой быстрее сохранить копию книги и удалить из копии прочие листы чем копировать один такой лист в новую книгу. И не так уж просто уследить куда Эксель вставит, скажем, вырезанный ряд, заменит значения что там были или сдвинет в сторону.
А вот что копирование массива значений в ячейки сработает из внешней программы, где массивы могут быть совершенно другие по представлению в памяти - для меня открытие месяца. Спасибо за наводку.
Конечно, отдельный вопрос про язык которым это делать, например, я на VB не умею "кучно" задавать значения массива одной командой, так что мне все равно придется массив формировать по 1 значению. Соответственно, будет проще сделать это в самом Экселе, записывая по 1 ячейке без использования массива. На Паскале или JavaScript или PHP умею задавать несколько значений, а на VB ни разу не видел такого. Из школьной программы конечно вспоминается задание значений массива через DATA и READ на QBasic, но сейчас это вроде уже устарело. Итого - возможность прекрасная, но воспользоваться будет не так просто.

Отправлено спустя 8 минуты 57 секунды:
Цитата
mercury пишет:
Например просто законектиться для начала через зашифрованный канал. После построения как проверить правильность коннекта ?
Вспомнил, что некоторые запросы (обычно на экспорт данных) не требуют подписи, поэтому их можно попробовать даже если не полностью отлажен алгоритм подписи. Естественно, если отправить сразу после установления канала (до регистрации ИС и получения прав) ответ на запрос будет "Неверная ИС", но для проверки работы канала подойдет.
#59
0 0
Цитата
two_oceans пишет:
Логично, что дело как раз в количестве команд и одна сработает быстрее, но как-то я такую команду проглядел.
Ничего специфического, простое присвоение значения для диапазона. Примерно так (на фоксе):
loSheet.Cells(lnRow, lnCol).Resize(lnRows, lnCols).Value = myFunction('myArray')
#60
0 0
ЛЮДИ ДОБРЫЕ! Работаю программистов в УК. Delphi. Возникла необходимость освоить интеграцию в ГИС "ЖКХ", так как с XLSX запарился работать.
Зарегистрировал ИС. Из ГИС "ЖКХ" получил два файла:
1) GUK.cer - этот файл я использовал при регистрации ИС;
2) Электронная подпись оператора ГИС ЖКХ_17.02.2017_GUK.cer.p7s - этот файл из ГИС "ЖКХ". Изготовил PAS - файлы из WSDL.
Цель: передать МИНИМАЛЬНУЮ единицу информации. Что дальше делать - не знаю. Информации море, а толку нет.
Подскажите, пожалуйста, сценарий взаимодействия с ГИС "ЖКХ".
Спасибо!
Сейчас на форуме: 1 пользователь
1 пользователь сейчас на форуме

Подпишись на рассылку новостей ЖКХ, а также наших статей!

Спасибо, вы успешно подписались на рассылку!