Имя: Пароль:
1C
1С v8
хранение фабрики XDTO отдельно от метаданных
0 hawksib
 
16.02.18
06:02
при работе с системой меркурий через api в версии 2 при отправке данных получаю фабрику xdto динамически, в результате на получение WSОпределений и создание самой фабрики тратится по 3 секунды, в сумме 6, фабрику получаю 1 раз перед отправкой для всех запросов она подходит, но хочется уменьшить и это время получения фабрики. с версией api 1.4 всё работает быстро, т.к. WS-ссылка http://api.vetrf.ru/schema/platform/services/ApplicationManagementService_v1.4_production.wsdl добавлена в конфигурацию, чего не возможно добиться с WS-ссылкой от версии 2.0 http://api.vetrf.ru/schema/platform/services/2.0-last/ams-mercury-g2b.service_v2.0_production.wsdl т.к. при добавлении возникает ошибка "набор схем не может содержать схемы с одинаковыми целевыми пространствами имен". Появилась такая мысль, что если где-нибудь хранить полученную фабрику. В хранилище значения, я так понимаю не получается: "Ошибка при вызове конструктора (ХранилищеЗначения): Переданное значение не может быть помещено в ХранилищеЗначения, поскольку не сериализуется или содержит вложенный несериализуемый элемент", функция ЗначениеВСтрокуВНутр(ФабрикаXD) возвращает строку, при передаче которой в функцию ЗначениеИзСтрокиВНутр возвращается неопределено. Кто что думает о моей идеи?
1 Dilgorp
 
16.02.18
06:53
(0) Можно хранить xsd схему как макет. И на основании нее создавать объекты XDTO.
Битрикс в своих модулях это практикует.
2 Dilgorp
 
16.02.18
06:56
//запись схемы в файл
лКаталогДляСхемыXSD = ПолучитьКаталогВременныхФайлов() + Строка(ГСЧ.СлучайноеЧисло()) + "\" + СокрЛП(УзелОбмена.Код);
СоздатьКаталог(лКаталогДляСхемыXSD);
лфайлСхемыXSD     = лКаталогДляСхемыXSD +"\SchemaXSD_Exchange.XSD";
СхемаXSD          = ПланыОбмена.Б_ОбменССайтом.ПолучитьМакет("СхемаXSDОбмена");
СхемаXSD.Записать(лфайлСхемыXSD);
Параметры.Вставить("ФайлСхемы"            , лфайлСхемыXSD);


//создание фабрики из файла
ПараметрыОбмена.МояФабрикаXDTO         = СоздатьФабрикуXDTO(ПараметрыОбмена.ФайлСхемы);
3 hawksib
 
17.02.18
07:21
(2) че-то не могу сообразить, какой должен быть тип макета?
4 arsik
 
гуру
17.02.18
09:20
(0) может тебе просто схему 1.4 из конфигурации удалить? Тогда нормально импортировать 2.0 получится
5 hawksib
 
17.02.18
09:47
(4) там такая wsdl, что она даже в чистую конфу не добавляется
6 Cyberhawk
 
17.02.18
11:10
(3) Текстовый документ
7 Cyberhawk
 
17.02.18
11:10
Или двоичные данные - как удобнее
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой