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
open8.3.22-+ Избыточные атрибуты с типом при сериализации списка значений с простым типом
0%
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