|
Web сервис не возвращает таблицу значения | ☑ | ||
---|---|---|---|---|
0
ETurdymuratov
02.08.18
✎
11:06
|
всем привет, создал простой веб сервис, назначил тип возвращаемого значения ValueStorage (http://v8.1c.ru/8.1/data/core), в процедуре веб сервиса простой код:
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Контрагенты.ИдентификационныйКодЛичности КАК ИИН, | ТиповойОстатки.Субконто1 КАК Контрагент, | ТиповойОстатки.Субконто3 КАК Договор, | ТиповойОстатки.СуммаОстатокКт |ИЗ | РегистрБухгалтерии.Типовой.Остатки(&НаДату, Счет В ИЕРАРХИИ (&Счет), , ) КАК ТиповойОстатки | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты | ПО ТиповойОстатки.Субконто1 = Контрагенты.Ссылка |ГДЕ | Контрагенты.Комментарий ПОДОБНО &Комментарий"; Запрос.УстановитьПараметр("НаДату", ТекущаяДата()); СЗ1 = Новый СписокЗначений; СЗ1.Добавить(ПланыСчетов.Типовой.НайтиПоКоду("3511")); СЗ1.Добавить(ПланыСчетов.Типовой.НайтиПоКоду("3517")); Запрос.УстановитьПараметр("Счет", СЗ1); //Список значений Запрос.УстановитьПараметр("Комментарий", id); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); ТЗ = Новый ТаблицаЗначений; ТЗ.Колонки.Добавить("ИИН", Новый ОписаниеТипов("Строка")); ТЗ.Колонки.Добавить("Наименование", Новый ОписаниеТипов("Строка")); ТЗ.Колонки.Добавить("Договор", Новый ОписаниеТипов("Строка")); ТЗ.Колонки.Добавить("Сумма", Новый ОписаниеТипов("Число")); ТипXDTOТипОбъекта1 = ФабрикаXDTO.Тип("http://172.16.103.89", "Student"); ТипОбъекта1 = ФабрикаXDTO.Создать(ТипXDTOТипОбъекта1); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл СтрТЗ = ТЗ.Добавить(); СтрТЗ.ИИН = ВыборкаДетальныеЗаписи.ИИН; СтрТЗ.Наименование = ВыборкаДетальныеЗаписи.Контрагент; СтрТЗ.Договор = ВыборкаДетальныеЗаписи.Договор; СтрТЗ.Сумма = ВыборкаДетальныеЗаписи.СуммаОстатокКт; ОбъектXdto=СериализаторXDTO.ЗаписатьXDTO(СтрТЗ); КонецЦикла; Возврат ОбъектXdto; проверяю через SoapUI ругается <soap:Text xml:lang="ru_RU">Неверный формат.</soap:Text> |
|||
1
ETurdymuratov
02.08.18
✎
11:07
|
помогите разобраться
|
|||
2
ETurdymuratov
02.08.18
✎
11:10
|
в коде подправил,
ОбъектXdto=СериализаторXDTO.ЗаписатьXDTO(ТЗ); запарился, проблема та же |
|||
3
Mankubus
02.08.18
✎
11:16
|
>> ТипXDTOТипОбъекта1 = ФабрикаXDTO.Тип("http://172.16.103.89";, "Student");
ТипОбъекта1 = ФабрикаXDTO.Создать(ТипXDTOТипОбъекта1); < зачем это написано если нигде не используется? |
|||
4
ETurdymuratov
02.08.18
✎
11:19
|
(3) да исправил на Возврат ТЗ; и так пробовал Возврат ОбъектXdto; не помогло
|
|||
5
Вафель
02.08.18
✎
11:27
|
тз нельзя так сериализовать. нужно построчно/пообъектно
|
|||
6
ETurdymuratov
02.08.18
✎
11:28
|
(5) можно вообще не сереализовывая просто вернуть ТЗ?
|
|||
7
Вафель
02.08.18
✎
11:28
|
(6) нет конечно
|
|||
8
ETurdymuratov
02.08.18
✎
11:47
|
(7) как это построчно?
я переделал вот так: ЗаписьXML = Новый ЗаписьXML(); ЗаписьXML.УстановитьСтроку(); СериализаторXDTO.ЗаписатьXML(ЗаписьXML, ТЗ); СтрокаXML = ЗаписьXML.Закрыть(); Возврат ЗаписьXML; ошибка та же |
|||
9
Мыш
02.08.18
✎
11:52
|
(8) Сделать из таблицы значений массив структур, например
|
|||
10
Мыш
02.08.18
✎
11:53
|
+(9) Или структуру массивов. Компактнее будет.
|
|||
11
Necessitudo
02.08.18
✎
11:54
|
Эм, ValueStorage это ХранилищеЗначения. С чего ты решил что ТЗ возвращать надо?
|
|||
12
ETurdymuratov
02.08.18
✎
11:56
|
(11) что надо возвращать?
|
|||
13
ETurdymuratov
02.08.18
✎
11:57
|
(9) сделал, ошибка другая уже:
Внутренняя ошибка. Ошибка инициализации библиотеки модулей |
|||
14
ETurdymuratov
02.08.18
✎
11:58
|
(11) пробовал и ТЗ и ОбъектXdto и МассивСтруктур(ошибка другая)
|
|||
15
ETurdymuratov
02.08.18
✎
12:06
|
попробовал поменять тип возвращаемого значения на Array (http://v8.1c.ru/8.1/data/core) после того как код передлал чтобы возвращал массив структур, ругается "Внутренняя ошибка. Ошибка инициализации библиотеки модулей"
|
|||
16
Necessitudo
02.08.18
✎
12:33
|
Слушай, возвращай просто String - а в него запихни JSON.
|
|||
17
ETurdymuratov
02.08.18
✎
12:35
|
(16) в смысле использовать функцию ЗначениеВСтрокуВнутр ?
|
|||
18
ETurdymuratov
02.08.18
✎
12:41
|
(16) переделал так:
Ответ = РезультатЗапроса.Выгрузить(); Запись = Новый ЗаписьJSON; Запись.УстановитьСтроку(); ЗаписатьJSON(Запись, Ответ); Возврат Запись.Закрыть(); soap ругается "Неверный формат" |
|||
19
Вафель
02.08.18
✎
12:42
|
возвращать нужно то что указано в схеме
|
|||
20
Necessitudo
02.08.18
✎
12:48
|
(18) Поставь возвращаемое значение - String.
|
|||
21
ETurdymuratov
03.08.18
✎
07:42
|
(20) Не верный формат
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |