1С XDTO как передать значения в массив?
☑
0
svv1979
01.12.20
✎
20:36
Как передать значения в Param?
У AdditionalAccountAttributes тип Массив Param
WSПараметр1.AdditionalAccountAttributes = WSДопПараметр;// выдает ошибку
Несоответствие типов XDTO:
Тип '{PayService.Service}Param' не соответствует типу '{PayService.Service}ArrayOfParam'
Тип свойства не соответствует типу значения
Пример как должно быть
<Attributes>
<Account>861000689319</Account>
<AdditionalAccountAttributes>
<Param>
<Name>ИНН регионального оператора</Name>
<Value>8602166551</Value>
</Param>
</AdditionalAccountAttributes>
</Attributes>
1
svv1979
01.12.20
✎
20:38
Модуль
WSОпределение = Новый WSОпределения(НашВебСервис);
WSСервис=WSОпределение.Сервисы[0];
прокси = Новый WSПрокси(WSОпределение, WSСервис.URIПространстваИмен, WSСервис.Имя, WSСервис.ТочкиПодключения[0].Имя);
ТипWSДопПараметра = Прокси.ФабрикаXDTO.Пакеты.Получить((WSСервис.URIПространстваИмен)).Получить("Param");
WSДопПараметр = Прокси.ФабрикаXDTO.Создать(ТипWSДопПараметра);
WSДопПараметр.Name = "ИНН регионального оператора";
WSДопПараметр.Value = "8602166551";
ТипWSПараметра1 = Прокси.ФабрикаXDTO.Пакеты.Получить((WSСервис.URIПространстваИмен)).Получить("PayAttributes");
WSПараметр1 = Прокси.ФабрикаXDTO.Создать(ТипWSПараметра1);
WSПараметр1.Account = Стр.ЛицевойСчет.Код;
WSПараметр1.AdditionalAccountAttributes = WSДопПараметр;
ТипWSПараметра = Прокси.ФабрикаXDTO.Пакеты.Получить((WSСервис.URIПространстваИмен)).Получить("PayInfo");
PayExtID = "VGRKAPREM"+Объект.Номер+"_"+Стр.НомерСтроки;
WSПараметр = Прокси.ФабрикаXDTO.Создать(ТипWSПараметра);
WSПараметр.PayExtID = PayExtID;
WSПараметр.PayDate = Объект.Дата;
WSПараметр.SerID = "500284";//КодУслуги взнос на кап ремонт
WSПараметр.SerComINN = СокрЛП(Объект.Организация.ИНН);
Если Объект.Пеня Тогда
WSПараметр.PayType = "Peny";//ВидУслуги "Peny"
Иначе
WSПараметр.PayType = "Principal";//ВидУслуги "Основной долг"
КонецЕсли;
WSПараметр.Sum = Стр.Сумма*100;
WSПараметр.Attributes = WSПараметр1;
2
acht
01.12.20
✎
21:04
Схему показывай
3
svv1979
02.12.20
✎
06:49
Решение
ТипArrayOfParam = Прокси.ФабрикаXDTO.Тип(WSСервис.URIПространстваИмен, "ArrayOfParam");
ТипParam = Прокси.ФабрикаXDTO.Тип(WSСервис.URIПространстваИмен, "Param");
ArrayOfParam = Прокси.ФабрикаXDTO.Создать(ТипArrayOfParam);
Param = Прокси.ФабрикаXDTO.Создать(ТипParam);
...
ArrayOfParam.Param.Добавить(Param );
...
WSПараметр1.AdditionalAccountAttributes = ArrayOfParam;
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс