Имя: Пароль:
1C
 
ФабрикаXDTO на клиенте читает, на сервере нет
0 m1_1976
 
30.05.25
11:47
Имеем УНФ 3. Выгружаем в ОЗОН товары через Яндекс Диск. Там АПИ шмапи. Все работало  уже месяца четыре.
Вчера вечером. Стало выдавать ошибку.
Ковыряюсь весь день.

Получаю:
См. картинку
на клиенте одна и та же строка работает и дает

__Объект
а на сервере не дает __ОБъект.
А дает Ошибку
1 m1_1976
 
30.05.25
11:36
Вот обработка - проверьте может я ГЛЮЧУ
2 m1_1976
 
30.05.25
11:37
{"method":"PUT","href":"https://uploader99klg.disk.yandex.net:443/upload-target/20250530T105738.233.utd.16xmn5oe82whiuqfx3aalxwei-k99klg.4087635","templated":false ,"operation_id":"e6edb64271e173f178264c2fdf0d9eb7f08e92fbec09156d4e2a811b33607e7a"}

вот строка которая приходит от Яндекс Диска
3 m1_1976
 
30.05.25
11:38
8.3.25
8.3.26
проверил - одинаково
4 m1_1976
 
30.05.25
11:46
&НаСервере
Процедура  ЖСОНСервер()
    // ТУТ НЕ РАБОТАЕТ
    ЧтениеJSON = Новый ЧтениеJSON();
        ЧтениеJSON.УстановитьСтроку(Объект.ТекстОбъекта);
    ТипОбъекта = ФабрикаXDTO.Тип("cloud-api.yandex.net/v1/disk", "uploadGetResponse");
    __Объект = ФабрикаXDTO.ПрочитатьJSON(ЧтениеJSON, ТипОбъекта);


Конецпроцедуры    
&НаКлиенте
Процедура жосн(Команда)
    //////////////// ТУТ РАБОТАЕТ ///////////////////
    ЧтениеJSON = Новый ЧтениеJSON();
        ЧтениеJSON.УстановитьСтроку(Объект.ТекстОбъекта);
    ТипОбъекта = ФабрикаXDTO.Тип("cloud-api.yandex.net/v1/disk", "uploadGetResponse");
    __Объект = ФабрикаXDTO.ПрочитатьJSON(ЧтениеJSON, ТипОбъекта);

    
    ЖСОНСервер();    
КонецПроцедуры
5 m1_1976
 
30.05.25
11:40
Объект.ТекстОбъекта - это реквизит тип строка. Выложен на форму. Туда вставляю (2)
6 Волшебник
 
30.05.25
11:40
у сервера нет доступа в интернет
7 m1_1976
 
30.05.25
11:45
есть
я уже на локальной базе в файловом варианте
Просто тест делаю...
8 m1_1976
 
30.05.25
11:42
(6) Да и доступ в ИНТЕРНЕТ мне не нужен. Я просто же уже разбираю JSON
Из строки на Форме Внешней обработки
9 Fish
 
гуру
30.05.25
11:42
(0) "а на сервере дает Ошибку" - Это задание из серии "Угадайте текст ошибки"?
10 m1_1976
 
30.05.25
11:43
ОШибка такая:
Ошибка при вызове метода контекста (ПрочитатьJSON)
{ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(18)}:__Объект = ФабрикаXDTO.ПрочитатьJSON(ЧтениеJSON, ТипОбъекта);
{ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(33)}:ЖСОНСервер();

[ОшибкаВоВремяВыполненияВстроенногоЯзыка]
по причине:
Ошибка преобразования данных XDTO:
Чтение объекта типа: {cloud-api.yandex.net/v1/disk}uploadGetResponse
Проверка свойства 'method':
    форма: Элемент
    имя: {cloud-api.yandex.net/v1/disk}method
    тип: {http://www.w3.org/2001/XMLSchema}string
по причине:
Ошибка проверки данных XDTO:
Структура объекта не соответствует типу: {cloud-api.yandex.net/v1/disk}uploadGetResponse
Проверка свойства 'method':
    форма: Элемент
    имя: {cloud-api.yandex.net/v1/disk}method
    тип: {http://www.w3.org/2001/XMLSchema}string
Не установлено значение одного из следующих свойств: operation_id
11 m1_1976
 
30.05.25
11:43
Но вот он там этот operation_id
Его же видно! Вон он в (2)
12 m1_1976
 
30.05.25
11:44
(9) пардон
13 m1_1976
 
30.05.25
11:47
Вчера работало 100%. Выгружали новые товары.
Сегодня хотел один последний догрузить. И вот...
14 timurhv
 
30.05.25
11:48
(13) выложите xsd схему, не у всех УНФ есть. В "XDTO-пакеты" найдите и экспортируйте (в конфигураторе)
15 m1_1976
 
30.05.25
11:49
проверьте кто нибудь у себя. Плиз. Может я чего в ппятницу глучу.
Текст один. Я его выложил. Простой "ПрочитатьJSON".
На клиенте ОК
на сервере не ОК
Из одной и тоже строки...

Может пятница?
16 m1_1976
 
30.05.25
11:50
<xs:schema xmlns:tns="cloud-api.yandex.net/v1/disk" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="cloud-api.yandex.net/v1/disk" attributeFormDefault="unqualified" elementFormDefault="qualified">
    <xs:complexType name="uploadGetRequest">
        <xs:attribute name="path" type="xs:string" default="app:/"/>
        <xs:attribute name="overwrite" type="xs:boolean" default="true"/>
        <xs:attribute name="fields" type="xs:string"/>
    </xs:complexType>
    <xs:complexType name="uploadGetResponse">
        <xs:sequence>
            <xs:element name="operation_id" type="xs:string"/>
            <xs:element name="href" type="xs:string"/>
            <xs:element name="method" type="xs:string"/>
            <xs:element name="templated" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="uploadPutResponse">
        <xs:sequence>
            <xs:element name="href" type="xs:string"/>
            <xs:element name="method" type="xs:string"/>
            <xs:element name="templated" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="publishRequest">
        <xs:attribute name="path" type="xs:string" use="required"/>
        <xs:attribute name="fields" type="xs:string"/>
    </xs:complexType>
    <xs:complexType name="publishResponse">
        <xs:sequence>
            <xs:element name="href" type="xs:string"/>
            <xs:element name="method" type="xs:string"/>
            <xs:element name="templated" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="metainfoRequest">
        <xs:attribute name="path" type="xs:string" use="required"/>
        <xs:attribute name="fields" type="xs:string"/>
    </xs:complexType>
    <xs:complexType name="metainfoResponse">
        <xs:choice>
            <xs:element name="name" type="xs:string" nillable="true" minOccurs="0"/>
            <xs:element name="public_url" type="xs:string" nillable="true" minOccurs="0"/>
            <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
        </xs:choice>
        <xs:anyAttribute namespace="##any" processContents="lax"/>
    </xs:complexType>
    <xs:complexType name="deleteRequest">
        <xs:attribute name="path" type="xs:string" use="required"/>
        <xs:attribute name="permanently" type="xs:boolean" default="true"/>
        <xs:attribute name="fields" type="xs:string"/>
    </xs:complexType>
    <xs:complexType name="error">
        <xs:sequence>
            <xs:element name="message" type="xs:string"/>
            <xs:element name="description" type="xs:string"/>
            <xs:element name="error" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="errorUpload">
        <xs:sequence>
            <xs:element name="reason" type="xs:string"/>
            <xs:element name="description" type="xs:string"/>
            <xs:element name="limit" type="xs:string"/>
            <xs:element name="message" type="xs:string"/>
            <xs:element name="error" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
</xs:schema>
17 timurhv
 
30.05.25
11:50
(14) А хотя нашел
18 m1_1976
 
30.05.25
11:50
наша часть вот эта... если я не путаю

<xs:complexType name="uploadGetResponse">
        <xs:sequence>
            <xs:element name="operation_id" type="xs:string"/>
            <xs:element name="href" type="xs:string"/>
            <xs:element name="method" type="xs:string"/>
            <xs:element name="templated" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
19 timurhv
 
30.05.25
11:54
uploadGetResponse - в свойствах установите "Упорядоченный" в ложь.
Вчера приходили как в схеме, сегодня - другой порядок.

Клиент 1С видимо игнорирует этот момент, сервер - нет.
20 m1_1976
 
30.05.25
11:55
еще раз.
на клиенте СРАБАТЫВАЕТ. Точку Останова поставил
Вот см. картинку
на сервере нет...
21 m1_1976
 
30.05.25
11:56
(19) Конфа у клиента закрыта. Но в Копии щас попробую.
22 timurhv
 
30.05.25
12:01
(20) Я проверил с параметром "Упорядоченный", в схеме нажмите на галочку у "uploadGetResponse" и поставьте Ложь.
На сервере заработает.
Поведение как у вас 1 в 1 на платформе 8.3.26.1581.
Клиент - ок, сервер - нет.
23 m1_1976
 
30.05.25
12:02
(22) пробую
Отпишусь через пару минут
24 m1_1976
 
30.05.25
12:02
Это получается Яндекс чет поменял в АПИ своем...
???
25 Fish
 
гуру
30.05.25
12:04
(24) Там тоже программисты сидят, кушать хотят. А для этого что-то иногда менять надо :)))
26 timurhv
 
30.05.25
12:04
(24) он и не обязан вроде соблюдать порядок. Это в 1С при описании XDTO по-умолчанию требует порядок и чтобы это исключать надо вручную прописывать в Ложь.
27 m1_1976
 
30.05.25
12:13
(19) ДА. Сработало! ЖУТЬ!!!!
СПАСИБО!
28 m1_1976
 
30.05.25
12:23
(22) Кстати через расширение не получается  поменять это свойство

ПРи проверке Расширения:

    XDTO пакет ЯндексДиск    Значение контролируемого свойства Пакет у объекта ПакетXDTO.ЯндексДиск не совпадает со значением в расширяемой конфигурации