Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Фабрика XDTO необязательный реквизит обязателен?

Фабрика XDTO необязательный реквизит обязателен?
Я
   ZUM
 
11.09.12 - 10:39
В пакете XDTO есть тип объекта у одного из свойств установлено возможно пустое значение, при передаче веб-сервисом ругается на незаполненность. Подскажите, пожалуйста, в чем беда?
   zladenuw
 
1 - 11.09.12 - 10:40
оно пустое или неопределенно ?
   ZUM
 
2 - 11.09.12 - 10:42
У свойства в пакете стоит "Возможно пустое", когда создается объект по умолчанию стоит неопределено.
   zladenuw
 
3 - 11.09.12 - 10:43
ну так присвой ""
   ZUM
 
4 - 11.09.12 - 10:44
ТипОбъекта = ФабрикаXDTO.Тип(ПространстваИмен,НаименованиеТипаОбъекта); 
    Объект     = ФабрикаXDTO.Создать(ТипОбъекта);
   zladenuw
 
5 - 11.09.12 - 10:46
у меня так
    Если ТекСервисEurocar = НЕОПределено Тогда
        ТекФабрика = ФабрикаXDTO;        
        Кл = ТекФабрика.Создать(ТекФабрика.Тип("itek", "Клиент"));
    Иначе    
        ТекФабрика = ТекСервисEurocar.Определение.ФабрикаXDTO;        
        Кл = ТекФабрика.Создать(ТекФабрика.Тип("itek", "Клиент"));
    КонецЕсли;    
    Если НЕ ЗначениеЗаполнено(Клиент)  Тогда
   //    Кл.Код = "xxx";
 
   //    Кл.Наименование = "-";
 
   //    Возврат Кл;
 
    КонецЕсли;    
    
    
    Если Клиент.Метаданные().Имя = "Сотрудники" Тогда
        
        Кл.Код = СОКРЛП(Клиент.Код);
       //Кл.ОКПО =СОКРЛП(Клиент.ИНН); 
 
        Кл.Наименование = Клиент.Наименование;
        Кл.АдресЮридический = Клиент.Адрес;
        Кл.АдресФизический = Клиент.Адрес;
        Кл.ОсобыеПометки = "Сотрудник " + Клиент.Должность;    
        Кл.Регион = "";    
        Кл.Телефоны = Клиент.ТелефонМоб;
   ZUM
 
6 - 11.09.12 - 10:49
(3) по причине:
Несоответствие типов XDTO:
Тип '{UPP_WMSTopLog}Контрагент' не найден
Значение не может быть установлено свойству, имеющему объектный тип
   zladenuw
 
7 - 11.09.12 - 10:50
(6) тип какой ?
   ZUM
 
8 - 11.09.12 - 10:58
(7) Тип объектный Контрагент, который содержит свои свойства
   zladenuw
 
9 - 11.09.12 - 11:01
ну а свойство какое именно и его тип? из тебя все тисками вытягивать или паяльником ?
   ZUM
 
10 - 11.09.12 - 11:04
(9) :) Спасибо за внимание!
В общем у меня есть объект:
   Документ - тип объекта
      Контрагент - тип объекта
         GUID - строка
         ИНН  - строка
         КПП  - строка

Контрагент заполняется не всегда.
   zladenuw
 
11 - 11.09.12 - 11:04
а если дать пустую ссылку на контрагента ?
   ZUM
 
12 - 11.09.12 - 11:06
При создании объекта Контрагент по умолчанию становится неопределено, и не заполняется до передачи.
(11) пробовал, тогда за собой тянуться свойства ИНН и КПП, которые при условии заполнения контрагента, должны быть обязательно заполнены.
   zladenuw
 
13 - 11.09.12 - 11:08
хм. а что за схема такая ? туповато.
   ll13
 
14 - 11.09.12 - 11:13
Перед записью XDTO-объекта используй процедуру дозаполнения, т.е. схема работы такая:
1. Создаешь и заполняешь требуемыми(не пустыми) свойствами XDTO-объект.
2. Инициализируешь остальные свойства.(обрати внимания, что в схеме у всех свойства должно быть установлено "Возможно пустое = Истина")
3. Записываешь.
Процедура ИнициализироватьПоУмолчанию(ОбъектXDTO)
   // Все реквизиты которые забиваются Неопределенно в схеме должны иметь nillable="true"
 
    ТипСписокXDTO = Тип("СписокXDTO");
    Для каждого СвойствоОбъектаXDTO Из ОбъектXDTO.Свойства() Цикл
        Если НЕ ТипЗнч(ОбъектXDTO[СвойствоОбъектаXDTO.Имя]) = ТипСписокXDTO Тогда
            Если НЕ ОбъектXDTO.Установлено(СвойствоОбъектаXDTO) Тогда
                Попытка
                    ОбъектXDTO[СвойствоОбъектаXDTO.Имя] = Неопределено;    
                Исключение
                   //Сообщить(""+ОбъектXDTO+" "+СвойствоОбъектаXDTO.Имя);
 
                КонецПопытки;
            КонецЕсли;
        КонецЕсли;
    КонецЦикла;
КонецПроцедуры
   ZUM
 
15 - 11.09.12 - 11:14
Схема как схема
CML 4 Контрагент http://commerceml.1c.ru/Schema4.01
   zladenuw
 
16 - 11.09.12 - 11:18
(14) все равно нужно указать значение, даже неопределенно ?
   ZUM
 
17 - 11.09.12 - 12:40
(17) Нашел свою ошибку :) когда создавал Тип объекта в свойствах задал явный тип "Контрагент", даже если стоит галка "Возможно пустое значение" отрабатывает не верно. Убрал явное указание типа и все заработало!
Всем огромное спасибо за помощь!

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.