Добрый день! Реализую веб-интерфейс, который получает данные из 1С через веб-службу. Веб-служба возвращает ответ в виде Объекта XDTO. Ответ: Статус - int Сообщение - string Результат - anyType Одна из функций должна вернуть простую структуру. Поэтому мне нужно преобразовать структуру в объект XDTO, чтобы записать ее в св-во Результат Пробовал так: Код: StructureТип = ФабрикаXDTO.Тип("http://v8.1c.ru/8.1/data/core", "Structure"); StructureХДТО = ФабрикаXDTO.Создать(StructureТип); Результат = Новый Структура; Результат.Вставить("ААА", 1); Результат.Вставить("БББ", "ВВВ"); StructureХДТО = СериализаторXDTO.ЗаписатьXDTO(Результат); ОтветХДТО.Результат = StructureХДТО; Выбрасывается ошибка в предпоследней строке "Ошибка при вызове метода контекста (ЗаписатьXDTO)" Подскажите как правильно сделать преобразование. Или подскажите, как работать с объектом StructureХДТО, чтобы добавить значения. StructureХДТО.Add("AAA") ругается на недостаточное кол-во аргументов, а StructureХДТО.Add("AAA", "БББ") на ошибку при вызове метода контекста Создавать специально тип объекта для результата данной функции в пакете XDTO не хочется. Спасибо!
Выбирай на вкус: 1 - перед этим конверти свою структуру в формат XMLки 2 - превращай структуру в формат строки с разделителями 3 - воспользуйся функцией Код: ЗначениеВСтрокуВнутр Короче преобразуй свое хитрое значение в простой формат. Только это, а кто сервисом пользоваться будет? Если другая 1Ска, то можно и ЗначениеВСтрокуВнутр, а если нет - то либо строку в формате XML (типа стандарт же), либо строку с разделителями (+ получателям описалово что это за строка такая и как с ней работать)
Такие варианты мне не подходят. Ведь в синтаксис-помощнике написано, что объект Структура может быть сериализован в ОбъектXDTO Сделал так: Код: Результат = Новый Структура; Результат.Вставить("ААА", 1); Результат.Вставить("БББ", "ВВВ"); Сериализатор = Новый СериализаторXDTO(ФабрикаXDTO); ОбъектХДТО = Сериализатор .ЗаписатьXDTO(Результат); Но ОбъектХДТО принял тип СписокXDTO и из-за этого элементы необходимо получать по индексу. Пусть не получается преобразование сделать. Черт с ним. Но как работать с объектом XDTO Structure? Как мне добавить в нее хоть одну связку ключ-значение? Объект Structure выглядит так: Structure -> Property (complexType) { Value, name }
На платформе 8.3.5.1068 сработал вот такой код: Код: докРозница = Новый Структура; докРозница.Вставить("Дата", Дата); докРозница.Вставить("Номер", Номер); докРозница.Вставить("ПометкаУдаления", ПометкаУдаления); докРозница.Вставить("Проведен", Проведен); докРозница.Вставить("Клиент", Клиент); Результат = СериализаторXDTO.ЗаписатьXDTO(докРозница); В переменной "Результат" получил тип объекта XDTO - Structure (http://v8.1c.ru/8.1/data/core)