Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
13 Дек 2017, 00:56
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Преобразовать Структуру в Объект XDTO, или как работать с объектом XDTO Structur  (Прочитано 14774 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн znepok

  • *
  • Сообщений: 2
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-10-21
  • Сайт: 
  • Профессия: Программист 8.1
Добрый день!

Реализую веб-интерфейс, который получает данные из 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 не хочется.

Спасибо!


Оффлайн sergeevds

  • ***
  • Сообщений: 202
  • РЕПУТАЦИЯ: 38
  • КПД: 19%
  • Регистрация: 2011-08-18
  • Сайт: 
  • Профессия: Программист 8.1
Что-то я из первой части немного недопонял, тебе надо положить в твою вебформу объект XDTO или из него получить структуру? А то написано, что она у тебя возвращает XDTO.
А про добавить вот:
ОбъектXDTO (XDTODataObject)
Добавить (Add)
Вариант синтаксиса: Установка значения нового произвольного свойства
Описание:
Добавляет значение произвольного свойства. Имя свойства будет создано автоматически, на основе локального имени XML представления свойства.
В случае, если произвольное свойство с полученным именем уже существует и, если предыдущая установка значения произвольного свойства выполнялась для данного произвольного свойства, либо другого свойства в случае наличия последовательности, - свойство становится списковым с неограниченной верхней границей.
В противном случае будет инициировано исключение.
Тип создаваемого свойства всегда устанавливается anyType пространства имен схемы XML.
Синтаксис:
Добавить(<Форма>, <URI пространства имен>, <Локальное имя>, <Элемент данных>)
Параметры:
<Форма> (обязательный)
Тип: ФормаXML. Форма XML представления произвольного свойства.
Может принимать значения Элемент или КартинкаКнопкиВыбора.
<URI пространства имен> (обязательный)
Тип: Строка. URI пространства имен XML представления произвольного свойства.
<Локальное имя> (обязательный)
Тип: Строка. Локальное имя произвольного свойства.
<Элемент данных> (обязательный)
Тип: ЗначениеXDTO, ОбъектXDTO. Элемент данных XDTO (значение или объект), являющийся значением произвольного свойства.
Вариант синтаксиса: Установка значения существующего произвольного свойства
Описание:
Добавляет значение произвольного свойства с указанным именем.
Если свойства с указанным именем не существует, то будет инициировано исключение.
Если предыдущая установка значения произвольного свойства выполнялась для данного произвольного свойства, либо другого свойства в случае наличия последовательности, - свойство становится списковым с неограниченной верхней границей.
В противном случае будет инициировано исключение.
Синтаксис:
Добавить(<Имя>, <Элемент данных>)
Параметры:
<Имя> (обязательный)
Тип: Строка. Имя произвольного свойства.
<Элемент данных> (обязательный)
Тип: ЗначениеXDTO, ОбъектXDTO. Элемент данных XDTO (значение или объект), являющийся значением произвольного свойства.
Описание:
Добавляет в объект значения произвольного свойства.
Примечание:
Вызов метода может быть осуществлен только для объектов типов с установленным свойством Открытый, в противном случае будет инициировано исключение.

Оффлайн znepok

  • *
  • Сообщений: 2
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-10-21
  • Сайт: 
  • Профессия: Программист 8.1
Не получается воспользоваться методом Добавить()

Пробую так:
StructureType = ФабрикаXDTO.Тип("http://v8.1c.ru/8.1/data/core", "Structure");
Structure = ФабрикаXDTO.Создать(StructureType);

StrType = ФабрикаXDTO.Тип("http://www.w3.org/2001/XMLSchema", "string");
Str = ФабрикаXDTO.Создать(StrType, "345fgsdfg");

Structure.Add("AAA", Str); // Ошибка "Ошибка при вызове метода контекста (Добавить)"

Оффлайн sergeevds

  • ***
  • Сообщений: 202
  • РЕПУТАЦИЯ: 38
  • КПД: 19%
  • Регистрация: 2011-08-18
  • Сайт: 
  • Профессия: Программист 8.1
Так ты посмотри в добавить практически все параметры обязательные, а у тебя указаны только 2


Теги:
 

Не проведенный объект - в табло как проведенный

Автор AlenkaIntРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 4
Просмотров: 3903
Последний ответ 08 Май 2013, 07:08
от wise
Не удалось найти объект "#tt1"

Автор MuI_I_IkaРаздел Ошибки 1С:Предприятия

Ответов: 0
Просмотров: 4768
Последний ответ 13 Янв 2017, 17:02
от MuI_I_Ika
Здравствуйте!!! Необходимо востановить ИБ на определенную дату. Копии через конфигуратор на эту дату не сделали, но есть файл в формате CD в rar (Это программа сама сделала резервную копию). Возможно ли востановит ее в 1с и работать (как при загрузке копи

Автор Лариса198888Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 1868
Последний ответ 24 Май 2016, 17:17
от Kironten
Для объекта не определена форма по умолчанию, соответствующая текущему режиму запуска. Объект: "Консоль Запросов"

Автор Азамат ХубиевРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 14
Просмотров: 6346
Последний ответ 20 Июл 2016, 22:56
от Азамат Хубиев
1С Конвертация Данных. Не отрабатывает флаг "Не создавать объект если не найден"

Автор maks_20Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 1398
Последний ответ 16 Ноя 2015, 16:03
от maks_20

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
170 Сообщений
ilyay ilyay
75 Сообщений
oleg-x
51 Сообщений
alex0402
49 Сообщений
andron81_81
38 Сообщений
AIFrame
37 Сообщений
MuI_I_Ika MuI_I_Ika
33 Сообщений
BuhRust
30 Сообщений
Golickoff Golickoff
28 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

  • Точка Гостей: 219
  • Точка Скрытых: 0
  • Точка Пользователей: 2
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal