Project

Profile

Help

HostedRedmine.com has moved to the Planio platform. All logins and passwords remained the same. All users will be able to login and use Redmine just as before. Read more...

Bug #962678

open

8.3.22-+ Избыточные атрибуты с типом при сериализации списка значений с простым типом

Added by Сергей Старых over 1 year ago. Updated 5 months ago.

Status:
New
Priority:
Normal
Assignee:
-
Category:
-
Sprint/Milestone:
-
Start date:
Due date:
% Done:

0%

Estimated time:

Description

https://partners.v8.1c.ru/forum/t/2127985/m/2127985
https://bugboard.v8.1c.ru/error/000141562
Конфигурация ПО

1С 8.3.22-+

Проблема

Избыточные атрибуты с типом при сериализации списка значений с простым типом

Воспроизведение

Открыть приложенную внешнюю обработку в любой базе в управляемом приложении. Нажать кнопку "Команда1". При этом на сервере выполнится код

ф = Новый СписокЗначений;
ф.ТипЗначения = Новый ОписаниеТипов("Строка");
ф.Добавить(1); // Не смотря на то, что передаем число, храниться будет текст!
Текст = Новый ЗаписьXML;
Текст.УстановитьСтроку();
СериализаторXDTO.ЗаписатьXML(Текст, ф);
Сообщить(Текст.Закрыть());

и будет выведено сообщение

<ValueListType xmlns="http://v8.1c.ru/8.1/data/core" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <valueType>
        <Type>xs:string</Type>
        <StringQualifiers>
            <Length>0</Length>
            <AllowedLength>Variable</AllowedLength>
        </StringQualifiers>
    </valueType>
    <lastId xsi:type="xs:decimal">0</lastId>
    <item>
        <value xsi:type="xs:string">1</value>
        <id xsi:type="xs:decimal">0</id>
    </item>
</ValueListType>

А ожидался текст без указания типов для свойств элементов списка "value" и "id".
Аналогичная проблема и при сериализации в JSON.
<ValueListType xmlns="http://v8.1c.ru/8.1/data/core" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <valueType>
        <Type>xs:string</Type>
        <StringQualifiers>
            <Length>0</Length>
            <AllowedLength>Variable</AllowedLength>
        </StringQualifiers>
    </valueType>
    <lastId>0</lastId>
    <item>
        <value>1</value>
        <id>0</id>
    </item>
</ValueListType>

Обоснование
Внутреннее свойство "id" всегда число. Поэтому ему не нужно каждый раз указывать тип.
При сериализации таблицы значений с колонкой простого типа ее значения пишутся без указания типа. Это сокращает размер текста. Пример
<ValueTable xmlns="http://v8.1c.ru/8.1/data/core" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <column>
        <Name xsi:type="xs:string">к</Name>
        <ValueType>
            <Type>xs:string</Type>
            <StringQualifiers>
                <Length>0</Length>
                <AllowedLength>Variable</AllowedLength>
            </StringQualifiers>
        </ValueType>
    </column>
    <row>
        <Value>1</Value>
    </row>
</ValueTable>

Аналогичное поведение ожидается и от списка значений.

Files

ОтважныйБобр.epf (46.9 KB) ОтважныйБобр.epf Сергей Старых, 2023-04-27 06:30 AM
Actions #1

Updated by Сергей Старых over 1 year ago

  • Description updated (diff)
Actions #2

Updated by Сергей Старых over 1 year ago

  • Description updated (diff)
Actions #3

Updated by Сергей Старых over 1 year ago

  • Description updated (diff)
Actions #4

Updated by Сергей Старых 5 months ago

  • Description updated (diff)

Also available in: Atom PDF