Автор |
Сообщение |
![[Post New]](/vetrf-forum/templates/default/images/icon_minipost_new.gif) 20/10/2017 12:12:46
|
Пролетарский
Зарегистрирован: 30/05/2017 10:26:40
Сообщений: 19
Оффлайн
|
Если я правильно понял , то регистрация пользователей от имени ХС происходит в ветис.паспорт. при регистрации в ветис.меркурий , автоматически регистрируют в ветис.паспорт пользователя по заявке. Но права там урезаны , получается у меня нет прав на создание ХС в ветис.меркурий , и редактированию своих прав в ветис.паспорт.
|
|
 |
![[Post New]](/vetrf-forum/templates/default/images/icon_minipost_new.gif) 23/10/2017 11:11:23
|
VoditelKobyly
Зарегистрирован: 16/08/2017 10:22:55
Сообщений: 102
Оффлайн
|
В системе много дублей записей в адресных классификаторах с разными GUIDами. Я правильно понимаю, что мы можем выбирать любую запись из понравившихся?
|
|
 |
![[Post New]](/vetrf-forum/templates/default/images/icon_minipost_new.gif) 26/10/2017 08:12:12
|
Zoeh
Зарегистрирован: 07/08/2017 13:16:55
Сообщений: 100
Оффлайн
|
ИНН?
|
|
 |
![[Post New]](/vetrf-forum/templates/default/images/icon_minipost_new.gif) 27/10/2017 12:21:11
|
bigmal
Зарегистрирован: 24/07/2017 07:58:49
Сообщений: 73
Оффлайн
|
Пытаюсь добавить площадку к уже имеющимся у данного ИП. Результат обработки заявки получаю положительный, но площадка не появляется. Уже пробовал в обоих версиях - 1 и 2.
Запрос на создание в версии 2. М.б. есть где-то ошибка? хотя раньше работало... М.б. что-то в самом сервисе не работает??
Адрес сервиса:https://api2.vetrf.ru:8002/platform/services/2.0/ApplicationManagementService
<?xml version="1.0" encoding="utf-8"?>
<SOAP-ENV:Envelope
xmlns:dt = "http://api.vetrf.ru/schema/cdm/dictionary/v2"
xmlns:bs = "http://api.vetrf.ru/schema/cdm/base"
xmlns:merc = "http://api.vetrf.ru/schema/cdm/mercury/g2b/applications/v2"
xmlns:apldef = "http://api.vetrf.ru/schema/cdm/application/ws-definitions"
xmlns:apl = "http://api.vetrf.ru/schema/cdm/application"
xmlns:vd = "http://api.vetrf.ru/schema/cdm/mercury/vet-document/v2"
xmlns:SOAP-ENV = "http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<apldef:submitApplicationRequest>
<apldef:apiKey>apiKey</apldef:apiKey>
<apl:application>
<apl:serviceId>mercury-g2b.service:2.0</apl:serviceId>
<apl:issuerId>1dd6d645-0d9c-4376-aa85-a2d58dd37a96</apl:issuerId>
<apl:issueDate>2017-10-27T15:14:27</apl:issueDate>
<apl:data>
<merc:modifyBusinessEntityRequest>
<merc:localTransactionId>as01010101</merc:localTransactionId>
<merc:initiator>
<vd:login>login</vd:login>
</merc:initiator>
<merc:modificationOperation>
<vd:type>FIND_OR_CREATE</vd:type>
<vd:resultingList>
<dt:businessEntity>
<dt:type>3</dt:type>
<dt:fio>Почепко Николай Владимирович</dt:fio>
<dt:inn>550301094470</dt:inn>
<dt:juridicalAddress>
<dt:country>
<bs:guid>74a3cbb1-56fa-94f3-ab3f-e8db4940d96b</bs:guid>
</dt:country>
<dt:region>
<bs:guid>05426864-466d-41a3-82c4-11e61cdc98ce</bs:guid>
</dt:region>
<dt:locality>
<bs:guid>140e31da-27bf-4519-9ea0-6185d681d44e</bs:guid>
</dt:locality>
<dt:addressView>г.Омск, ул. 6 Шинная 10</dt:addressView>
</dt:juridicalAddress>
</dt:businessEntity>
</vd:resultingList>
<vd:reason>Оптовая торговля продуктами питания.</vd:reason>
</merc:modificationOperation>
</merc:modifyBusinessEntityRequest>
</apl:data>
</apl:application>
</apldef:submitApplicationRequest>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
|
|
 |
![[Post New]](/vetrf-forum/templates/default/images/icon_minipost_new.gif) 28/11/2017 17:17:40
|
andpal
Зарегистрирован: 14/11/2017 12:57:35
Сообщений: 43
Оффлайн
|
Вероятно этот код для 8-ки?
Даже если в 7-ке: Stream = СоздатьОбъект("ADODB.Stream");
все равно ругается на WinHttp.ResponseBody - Тип переменой не поддерживается.
bigmal wrote:
Я вот такой вариант нашёл.
Stream = Новый COMОбъект("ADODB.Stream");
Stream.Type = 1;
Stream.Mode = 3;
Stream.Open();
Stream.Write(WinHttp.ResponseBody);
Stream.SaveToFile("C:\1.zip", 2);
Stream.Close();
|
|
 |
![[Post New]](/vetrf-forum/templates/default/images/icon_minipost_new.gif) 29/11/2017 05:29:12
|
bigmal
Зарегистрирован: 24/07/2017 07:58:49
Сообщений: 73
Оффлайн
|
andpal wrote:Вероятно этот код для 8-ки?
Даже если в 7-ке: Stream = СоздатьОбъект("ADODB.Stream");
все равно ругается на WinHttp.ResponseBody - Тип переменой не поддерживается.
Да, к сожалению так и есть, это для 8-ки. Я попробовал у себя на 7.7, получил такую же ошибку. Дальше не стал экспериментировать
|
|
 |
![[Post New]](/vetrf-forum/templates/default/images/icon_minipost_new.gif) 29/11/2017 07:03:54
|
ПользовательRex
Зарегистрирован: 06/06/2017 07:48:13
Сообщений: 38
Оффлайн
|
Такая конструкция в 7.7 вполне себе работает.
зп = "<soapenv:Envelope
...
|</soapenv:Envelope>";
об = СоздатьОбъект("MSXML2.XMLHTTP.6.0");
об.open("POST", ProductServicePath, 0, Login, Password);
об.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
SOAPAction="ws:getProductByGuidRequest";
об.setRequestHeader("SOAPAction", SOAPAction);
об.send(зп);
Если об.Status=200 Тогда
ОтветСервера=об.responseText;
Stream = СоздатьОбъект("Adodb.Stream");
//Stream.Type = 1;
//Stream.Mode = 3;
Stream.Charset = "utf-8";
Stream.Open();
//Будем бить на части по 100000 байт
ВсегоБайт=СтрДлина(ОтветСервера);
ДлинаКускаПотока=100000;
КоличествоКусков=Цел(ВсегоБайт/ДлинаКускаПотока);
ОстатокБайт=ВсегоБайт-(КоличествоКусков*ДлинаКускаПотока);
Для НомерКуска=1 По КоличествоКусков Цикл
Состояние("Чтение потока "+Строка(Цел(100*НомерКуска/КоличествоКусков))+" %");
КусокТекста=Сред(ОтветСервера,(НомерКуска-1)*ДлинаКускаПотока+1,ДлинаКускаПотока);
Stream.WriteText(КусокТекста);
КонецЦикла;
Если ОстатокБайт>0 Тогда
КусокТекста=Сред(ОтветСервера,(КоличествоКусков*ДлинаКускаПотока)+1,ДлинаКускаПотока);
Stream.WriteText(КусокТекста);
КонецЕсли;
Анализатор = СоздатьОбъект("AddIn.XMLParser");
XML = Анализатор.СоздатьДокумент();
Stream.Position = 0;
XML.Загрузить(Stream);
XML.Проверить();
Stream.Close();
КонецЕсли;
Это сообщение было редактировано 2 раз. Последнее обновление произошло в 29/11/2017 07:13:20
|
|
 |
![[Post New]](/vetrf-forum/templates/default/images/icon_minipost_new.gif) 29/11/2017 07:14:18
|
VoditelKobyly
Зарегистрирован: 16/08/2017 10:22:55
Сообщений: 102
Оффлайн
|
bigmal Да, к сожалению так и есть, это для 8-ки. Я попробовал у себя на 7.7, получил такую же ошибку. Дальше не стал экспериментировать
Я же тебе в личку присылал работающий семерочный код.
Разве не получилось?
|
|
 |
![[Post New]](/vetrf-forum/templates/default/images/icon_minipost_new.gif) 29/11/2017 07:31:55
|
bigmal
Зарегистрирован: 24/07/2017 07:58:49
Сообщений: 73
Оффлайн
|
VoditelKobyly wrote:
bigmal Да, к сожалению так и есть, это для 8-ки. Я попробовал у себя на 7.7, получил такую же ошибку. Дальше не стал экспериментировать
Я же тебе в личку присылал работающий семерочный код.
Разве не получилось?
Честно говоря - не пробовал, ибо ещё не столкнулся с проблемой. Но информация у меня зафиксирована В любом случае - тебе большое спасибо )
А пример выше попробовал именно из-за его краткости.
|
|
 |
![[Post New]](/vetrf-forum/templates/default/images/icon_minipost_new.gif) 29/11/2017 07:38:43
|
VoditelKobyly
Зарегистрирован: 16/08/2017 10:22:55
Сообщений: 102
Оффлайн
|
Пример выше это кусок кода из моей программы.
|
|
 |
![[Post New]](/vetrf-forum/templates/default/images/icon_minipost_new.gif) 29/11/2017 07:44:21
|
VoditelKobyly
Зарегистрирован: 16/08/2017 10:22:55
Сообщений: 102
Оффлайн
|
Вот ещё кусок, без которого семерочникам не обойтись при написании шлюза к Меркурию.
Решает проблему длинного ответа.
Когда добыл его в инете при поиске методов обмена с ЕГАИСом:
Попытка
ЗагрузитьВнешнююКомпоненту("OleExSup.dll");
OleExSup = СоздатьОбъект("OLEExSup");
Исключение
OleExSup = 0; // внешняя компонента не используется
Сообщить("Нет внешней компоненты OleExSup.dll");
КонецПопытки;
Stream = CreateObject("Adodb.Stream");
Stream.Charset = "utf-8";
Stream.Open();
Stream.LoadFromFile(пИмяФайла);
Если (Stream.Size>500000) И (OleExSup<>0) Тогда
OleExSup.InvokeOLEMethod(XML_Документ, "loadXML", Stream.readText());
ИначеЕсли Stream.Size>500000 Тогда
ТекстОшибки="Полученный файл XML слишком длинный...";
Возврат лРез;
Иначе
XML_Документ.loadXML(Stream.readText());
КонецЕсли;
|
|
 |
![[Post New]](/vetrf-forum/templates/default/images/icon_minipost_new.gif) 29/11/2017 07:47:27
|
VoditelKobyly
Зарегистрирован: 16/08/2017 10:22:55
Сообщений: 102
Оффлайн
|
Анализатор = СоздатьОбъект("AddIn.XMLParser");
Лучше не использовать, та ещё штучка...
|
|
 |
![[Post New]](/vetrf-forum/templates/default/images/icon_minipost_new.gif) 29/11/2017 07:48:47
|
ПользовательRex
Зарегистрирован: 06/06/2017 07:48:13
Сообщений: 38
Оффлайн
|
Чем штучка не та?
Что лучше?
|
|
 |
![[Post New]](/vetrf-forum/templates/default/images/icon_minipost_new.gif) 29/11/2017 07:57:57
|
VoditelKobyly
Зарегистрирован: 16/08/2017 10:22:55
Сообщений: 102
Оффлайн
|
Я делаю все через
XML_Документ = СоздатьОбъект("MSXML.DOMDocument");
Нет никаких проблем и работает быстрее.
|
|
 |
![[Post New]](/vetrf-forum/templates/default/images/icon_minipost_new.gif) 29/11/2017 08:02:30
|
bigmal
Зарегистрирован: 24/07/2017 07:58:49
Сообщений: 73
Оффлайн
|
Честно сказать, в ЕГАИС-е не сталкивался с проблемой больших файлов. Наверное потому, что пользовался cUrl и DOM. ЕМНИП, то файлы остатков бывали по 2-3 Мб. Даже не замечал их объема.
Сейчас я ответ сервиса в файл не сохраняю, а сразу загружаю в DOM
ОтветСервиса=WinHttp.ResponseText();
DOMDocument.loadXML(ОтветСервиса);
если надо в файл сохранить, то
DOMDocument.save(ИмяФайлаОтвета);
|
|
 |
|