|
свойство XDTO объекта | ☑ | ||
|---|---|---|---|---|
|
0
Олег2510
21.08.13
✎
12:08
|
Все делаю по инструкции от 1С, и не только по официальной,кучу мануалов перечитал в сети, но ни как не могу победить один баг, все время вылетает ошибка
"Поле объекта недоступно для записи" где поле объекта это Свойство - свойства объекта XDTO Как бы я не получал объект XDTO через фабрику например вот так в моем случае объектТип = ФабрикаXDTO.Тип("http://localhost:8090/TEST_Accor/", "Contacts"); Объект = фабрикаXDTO.Создать(объектТип) Объект.Свойство = "блабла" -------- всегда не работает Свойство "Поле объекта недоступно для записи" ПОМОГИТЕ!!!!! (версия платформы 8.2.18.61 ИБ серверный вариант) |
|||
|
1
Defender aka LINN
21.08.13
✎
12:11
|
Телепат.длл подсказывает, что "Свойство" - это список XDTO
|
|||
|
2
Олег2510
21.08.13
✎
12:33
|
А почему так? ведь реально все делал по мануалу
|
|||
|
3
Олег2510
21.08.13
✎
12:35
|
И когда делаю Сообщить(Объект);
Получаю ОбъектXDTO |
|||
|
4
Олег2510
21.08.13
✎
13:51
|
Вот схема XDTO пакета
<xs:schema xmlns:tns="http://localhost:8090/TEST_Accor/" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://localhost:8090/TEST_Accor/" attributeFormDefault="unqualified" elementFormDefault="qualified"> <xs:complexType name="Contacts"> <xs:choice> <xs:element name="FIO" type="xs:string" nillable="true" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="phone" type="xs:string" nillable="true" minOccurs="0" maxOccurs="unbounded"/> <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </xs:choice> <xs:anyAttribute namespace="##any" processContents="lax"/> </xs:complexType> </xs:schema> |
|||
|
5
Serginio1
21.08.13
✎
13:58
|
А где ты там свойство Свойство то увидел?
|
|||
|
6
Олег2510
21.08.13
✎
14:14
|
Это я привел пример "Свойство" так я конечно FIO задаю
|
|||
|
7
Олег2510
21.08.13
✎
14:20
|
Defender aka LINN Что-то мне хотел сказать, только я не понял что. В отладчике действительно FIO - это списокXDTO -т.е. он оказался прав! its greate! а дальше то что? Как мне записать значение в FIO - в синтаксиПомощнике ничего не нашел.
|
|||
|
8
Serginio1
21.08.13
✎
14:37
|
Ну так покажи полный код
FIO это войтво choice и доступ к нему нужно через типы Коллекция = объектТип.Свойства; СвойствоТип = Коллекция.Получить("choice").Тип; В типовых есть функция Функция ПолучитьТипОбъектаCML(Тип, ВерсияСхемы) МассивПути = СтрРазделить(Тип, "."); ПервыйЭлемент = МассивПути[0]; Если Лев(ПервыйЭлемент,1) = "{" И Прав(ПервыйЭлемент,1) = "}" Тогда ИмяПакета = Сред(ПервыйЭлемент, 2, СтрДлина(ПервыйЭлемент) - 2); Коллекция = ФабрикаXDTO.Пакеты.Получить(ИмяПакета).КорневыеСвойства; ИначеЕсли ВерсияСхемы <> "4.02" Тогда ТипОбъекта = ФабрикаXDTO.Тип(ВерсияСхемы, ПервыйЭлемент); Коллекция = ТипОбъекта.Свойства; Иначе ТипОбъекта = ФабрикаXDTO.Тип("http://v8.1c.ru/edi/edi_stnd", ПервыйЭлемент); Коллекция = ТипОбъекта.Свойства; КонецЕсли; МассивПути.Удалить(0); Пока МассивПути.Количество() > 0 Цикл Если Коллекция = Неопределено Тогда Возврат Неопределено; КонецЕсли; Свойство = Коллекция.Получить(МассивПути[0]); Если Свойство = Неопределено Тогда Возврат Неопределено; КонецЕсли; ТипОбъекта = Свойство.Тип; МассивПути.Удалить(0); Попытка Коллекция = ТипОбъекта.Свойства; Исключение Коллекция = Неопределено; КонецПопытки; КонецЦикла; Возврат ТипОбъекта; КонецФункции То есть можно тип получить ПолучитьТипОбъектаCML("Contacts.choice", "http://localhost:8090/TEST_Accor/") |
|||
|
9
Олег2510
21.08.13
✎
14:48
|
Ниже полный код моего веб сервиса. Я сразу скажу что я нуб в 1С я веб программист, и заранее прошу прощения за не знания предметной области и(или) синтаксиса, если таковые обнаружаться
Функция GetParam(getSTR) Возврат "привет " + getSTR; КонецФункции Функция GetComplex() объектТип = ФабрикаXDTO.Тип("http://localhost:8090/TEST_Accor/", "Contacts"); Объект = фабрикаXDTO.Создать(объектТип); Объект.FIO = "blabla"; //ТипСтрока=ФабрикаXDTO.Тип("http://www.w3.org/2001/XMLSchema","string"); //Артикул=ФабрикаXDTO.Создать(ТипСтрока,"000000"); //Выборка = Справочники.СотрудникиОрганизаций.Выбрать(); //Массив = Новый Массив; //Пока Выборка.Следующий() Цикл // Массив.Добавить(Выборка.Наименование); //КонецЦикла; //Для каждого Элемент из Массив Цикл //Сообщить(Элемент); //КОнецЦикла Возврат Объект; КонецФункции |
|||
|
10
Serginio1
21.08.13
✎
15:02
|
Сделай так
Объект = фабрикаXDTO.Создать(объектТип); Коллекция = объектТип.Свойства; СвойствоТип = Коллекция.Получить("choice").Тип; Свойство=фабрикаXDTO.Создать(СвойствоТип); Свойство.FIO = "blabla"; Объект.choice=Свойство; |
|||
|
11
Олег2510
21.08.13
✎
15:21
|
Сделал. Пишет ошибку
Значение не является значением объектного типа Уважаемый,Serginio1. Если от меня нужна финасовая стимуляция я готов обсудить этот момент. Нужно объяснить мне как использовать XDTO пакет в веб сервисе. Так же можно обсудить возможность удаленного подключения к моему компу через TeamViewer. |
|||
|
12
Олег2510
21.08.13
✎
15:24
|
При создании веб сервиса я руководствовался вот этими примерами
http://www.vnedrenie-upp.ru/introduction_upp/tips_for_finalizing_the_configuration/?page=post&blog=CompletionOfConfigurations&post_id=20 http://codenotes-1c.blogspot.ru/2012/11/1-8-xdto.html |
|||
|
13
Олег2510
21.08.13
✎
15:29
|
Уточнение ошибки
Значение не является значением объектного типа (Тип) |
|||
|
14
Defender aka LINN
21.08.13
✎
15:40
|
(7) Ну это же очевидно.
Объект.Свойство.Добавить(ЭлементКоллекцииXDTO) |
|||
|
15
Serginio1
21.08.13
✎
15:46
|
А ты схему откуда выгрузил из 1С? Обычно в complexType для определения полей идет sequence так, что по идее все должно работать
http://msdn.microsoft.com/ru-ru/library/ms256067.aspx |
|||
|
16
Serginio1
21.08.13
✎
15:48
|
Все дошло наконец
Объект.FIO.Добавить("blabla") не посмотрел на minOccurs="0" maxOccurs="unbounded"/> Посыпаю пеплом свою седую голову |
|||
|
17
Олег2510
21.08.13
✎
15:55
|
ООУУУУУУУУУУУУУУУ!!!! СУпер мега крутые чуваки + 10000 всем к карме
|
|||
|
18
Олег2510
21.08.13
✎
15:59
|
Если нужна консультация по Python, PHP, Unity 3d, Высоким нагрузкам - обращайтесь с радостью отвечу
|
|||
|
19
Олег2510
21.08.13
✎
16:00
|
velmisoff123@gmail.com
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |