Имя: Пароль:
1C
 
Расшифровка ОбъектXDTO
0 falselight
 
05.06.18
05:01
При чтении xml один объект представляется как ОбъектXDTO
и его никак не развернуть как некоторые другие.
Как сейчас можно получить его настоящее значение, а не строку
ОбъектXDTO ?

Попытка СпрОбъект.Гост = ?(типзнч(productItem.gost) = Тип("Строка"),productItem.gost,"");    Исключение СпрОбъект.Гост = "";    КонецПопытки;
1 falselight
 
05.06.18
05:17
Получается что в xml пришел не верный объект, не расшивровываемый?
2 catena
 
05.06.18
05:26
Смотри: открываешь СП, находишь там ОбъектXDTO. Внимательно читаешь. Проверяешь прочитанное на своем объекте. Если ничего не помогает, идешь к отправителю и так ему и говоришь: я такое не умею.
3 falselight
 
05.06.18
06:00
productItem.gost.Тип() показало

{http://www.w3.org/2001/XMLSchema}anyType


Можно ли как то получить значение? Или это не о чем не говорит?
4 falselight
 
05.06.18
06:02
productItem.gost.Получить()

или

productItem.gost.ПолучитьXDTO()


пишет не достаточно фактических параметров.
Но я не знаю какие нужно параметры передавать?
Получить нужно Гост.
5 RomaH
 
naïve
05.06.18
08:01
текст XML покажи - что там
6 falselight
 
05.06.18
08:31
7 falselight
 
05.06.18
08:35
(5) Так идет в самом xml файле

<dt:correspondsToGost>false</dt:correspondsToGost>

<dt:gost/>
8 RomaH
 
naïve
05.06.18
09:46
так он пустой - совсем

<dt:gost/>
9 falselight
 
05.06.18
11:04
(8) Нужно сейчас обработать что бы в поле не вставало
    строковое значение ОбъектXDTO.
    Как это правильно можно сделать?
10 RomaH
 
naïve
05.06.18
11:58
если gost заполнен будет - в нем будут реквизита (или как их там)

проверяй на наличие реквизита (ЕстьРеквизитОбъекта)
11 RomaH
 
naïve
05.06.18
11:59
или я вопрос не понял
в (0) же рабочий код?
12 falselight
 
05.06.18
17:25
(11) Да.

Мне сейчас нужно сделать что бы в строковое поле в 1с
не попадало значение ОбъектXDTO.

Вот отрезок XML. Гост значение пустое. Но как это определить?????

Обработать как если в productItem.gost строка "ОбъектXDTO"
тогда писать пустое значение?

Можно ли как то иначе это прочитать средствами чтения xml ?
13 falselight
 
05.06.18
17:26
14 falselight
 
06.06.18
07:19
Подскажите пожалуйста как разобраться с Гост (gost)
из этого XML? Бывает оно пустое, и в поле 1с справочника
записывается значение строки "ОбъектXDTO" что не нужно.
Либо значение gost у productItem.gost вообще отсутствует.
Тогда ничего не пишется в поле.
Как правильно разобрать этот xml (13) по госту. Что бы
писался только гост верный, и не писались не нужные данные.

Сейчас строка обработки значения Гост такая (но она
пропускает не нужные строковые значения "ОбъектXDTO"), -

Попытка СпрОбъект.Гост = ?(типзнч(productItem.gost) = Тип("Строка"),productItem.gost,"");    Исключение СпрОбъект.Гост = "";    КонецПопытки;
15 RomaH
 
naïve
06.06.18
07:24
может это:
<dt:correspondsToGost>false</dt:correspondsToGost>

если ложь - то ГОСТа нет

или такой костыль:

Если ГОСТ =  "ОбъектXDTO" Тогда
   ГОСТ = "";
КонецЕсли;
16 falselight
 
06.06.18
07:27
(15) Пока пробую так, но есть же правильные решения, а есть нет. Если соответствует госту = фальшь, уже наверное  
можно не обрабатывать.
И так же как вы сказали проверять, если в строке
"ОбъектXDTO" тоже не учитывать.
Я думал этот ОбъектXDTO нужно как то расшифровать.

        Попытка СпрОбъект.СоответствуетГОСТу = ?(productItem.correspondsToGost="true",1,0);    Исключение СпрОбъект.СоответствуетГОСТу = 0; КонецПопытки;
        Если productItem.correspondsToGost = "true" Тогда
            Попытка
                СпрОбъект.Гост = ?(типзнч(productItem.gost) = Тип("Строка"),productItem.gost,"");    
            Исключение
                СпрОбъект.Гост = "";    
            КонецПопытки;
        КонецЕсли;
17 RomaH
 
naïve
06.06.18
07:28
вот это чем не устраивает?

СпрОбъект.Гост = ?(типзнч(productItem.gost) = Тип("Строка"),productItem.gost,"");
18 RomaH
 
naïve
06.06.18
07:29
(16) попытку лучше убрать - проверять на наличие реквизита перед обращением
19 catena
 
06.06.18
07:37
(16)Ну ты же врешь. Ты утверждаешь, что productItem.gost ОбъектXDTO, тогда он не попадет в условие ?(типзнч(productItem.gost) = Тип("Строка").
20 falselight
 
06.06.18
07:45
(17) Если так, то бывает идет строка "ОбъектXDTO" и она
встает в справочник. Это и нужно исправить.

(18) Попытка, - это не мой код. Не свой код стараюсь не
трогать. Внедряю свой при необходимости.

(19) Он там идет как productItem.gost = "ОбъектXDTO",
строковое значение. Вот и попадает по этому.
21 falselight
 
06.06.18
07:47
Если productItem.correspondsToGost = "true" Тогда
            Если ЗначениеЗаполнено(productItem.gost) и СокрЛП(productItem.gost) <> "ОбъектXDTO" Тогда
                Попытка
                    СпрОбъект.Гост = ?(типзнч(productItem.gost) = Тип("Строка"),productItem.gost,"");    
                Исключение
                    СпрОбъект.Гост = "";    
                КонецПопытки;
            КонецЕсли;
        КонецЕсли;
22 catena
 
06.06.18
08:03
(20)Опять врешь, в (6) на скрине это не  productItem.gost = "ОбъектXDTO".
23 falselight
 
06.06.18
08:09
(22) Может быть это другой скрин.
Там эти файлы сыпятся как снегопад.
И в названиях у всех ID.
Запутаться не сложно.
Проблема в том что писалось значение "ОбъектXDTO"в реквизит справочника. Что нужно было исправить.
Я смотрел, где то его нет вообще, где то идет "ОбъектXDTO"
как строка, а где то нормальное значение, состоящее из
чисел.
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой