Во вложении вид в отладке.
В общем, есть переменная с типом СписокXDTO, нужно преобразовать в один из типов максимально оптимально быстро, т.е. чтобы работало очень быстро.
СписокXDTO содержит элементы строчного типа.
Циклы исключены из рассмотрения. Сейчас работает через цикл, в Интернете везде примеры через цикл, ни одного альтернативного оптимального примера нет в результатах моего поиска.
---
Вы можете дальше продолжать минусовать сообщения, способов "получить" весь список сразу без использования цикла не существует тем более, что отправляющая сторона - не 1С.
---
В чем проблемы циклом перебрать СписокXDTO? Это произойдет достаточно быстро.
---
Вы можете дальше продолжать минусовать сообщения, способов "получить" весь список сразу без использования цикла не существует тем более, что отправляющая сторона - не 1С.
---
Спасибо за честный ответ! Таким образом мы на весь мир признаем техническую низкопроизводительность работы со СпискомXDTO.
---
Таким образом мы на весь мир признаем техническую низкопроизводительность работы со СпискомXDTO. это конечно сейчас главная проблема в мире...
---
XDTO - это способ сериализации данных - техническая низкопроизводительность не на пустом месте.

Может достигать 5 тысяч строк.
Это ни о чем. Если буде 5Млн строк - есть повод задуматься об оптимизации этого момента.
---
Что-то вы какую-то дичь пишите.
Обойти коллекцию без цикла, эм, серьезно?
А в чем вообще смысл данного действия?
---
Спасибо! Еще одино подтверждение, что работа со СпискомXDTO без цикла невозможна.
Да, дичь оптимизации - в этом смысл данного действия.
---
Можно код ниже считать правильным ответом?

```1c
    Масс = Новый Массив;
    Масс.Добавить("Первый");
    Масс.Добавить("Второй");
    Масс.Добавить("Третий");
    Масс.Добавить("Четвертый");

    XDTO = СериализаторXDTO.ЗаписатьXDTO(Масс); // запаковали и передаем клиенту

    Масс2 = СериализаторXDTO.ПрочитатьXDTO(XDTO); // получаем обычный Массив
```
---
Если есть возможность, нужно вернуться назад, если это веб-сервис отдает СписокXDTO.

И при ответе, на веб-сервере запаковывай массив или ТЗ так:
ЗначениеВСтрокуВнутр(массив)

А на клиенте распаковывай.
ЗначениеИзСтрокиВнутр(массив)

Т.е. смысл в том, что передавать с сервера ответ нужно в таком виде, какой удобно на клиенте обрабатывать.
Тогда циклов будет меньше.
---
Нет возможности вернуться назад, так как СписокXDTO приходит из внешней системы (не 1С).
---
У вас это самое критичное место в коде?
Вы включили замер производительности в Конфигураторе, и на этом месте больше всего времени теряется?
Насколько большой СписокXDTO ?
---
У вас это самое критичное место в коде? Одно из критичных.

(6) Насколько большой СписокXDTO ? Может достигать 5 тысяч строк.
---
Покажите замер производительности, покажите код.

Может достигать 5 тысяч строк.
Это ни о чем.

Если вы в цикле добавляете элементы в массив - запишите цикл в 1 строку, будет быстрее.
---
Спасибо! Ответ на тему уже получен - способов нет. Поэтому будем принимать решение о переходе на более оптимальный способ обмена.
А про низкопроизводительность цикла 1С - эта тема давно старая, тестов проведено достаточно даже с пустым циклом.
---
Вы не описали задачу, что вы хотите получить в итоге.
Можно например получить xml и обработать текст - сначала заменить в нем лишнее, чтобы остались только нужные значения и потом использовать - СтрРазделить - и будет у вас массив строковых значений.
---
Задача технически описана даже в самой теме - это достаточно.
---
Ну ок, дело ваше.
---
```1c
    Для Каждого ТекКатегория Из СписокИКДЭТЭО Цикл
    НоваяКатегория = ТаблицаКатегорий.Добавить();
    ...
    КонецЦикла;
```
---
Укажите нужный тип в пакете XDTO
---
Можете показать на примере, как это сделать?
---
Десериализатор работает на основании схемы. Если в схеме будет стоять тип значения ссылка, то по идее десериализатор должен преобразовать гуид к ней, т.е. произвести аналог вызова XMLЗначение. Не исключено, что для этого надо будет преобразовать текст xml-документа.

Но вообще работа с любым списком в любом языке идет через итератор.

Если вы хотите очень быстро, то ваш вариант это ЧтениеXML и самостоятельная обработка. Дело непростое, но платформа представляет вам низкоуровневые, но быстрые инструменты. Как и все другие платформы.

Ну или напишите прокладку на питоне, Flask вам в помощь.
---
Как вариант серилиазовать XDTO в JSON, а JSON прочитать и получить массив строк
---
Можете показать на примере, как это сделать?
---
В переменной КурсXDTO.Занятия СписокXDTO

```1c
    ЗаписьJSON = Новый ЗаписьJSON;
    ЗаписьJSON.УстановитьСтроку();
    Фабрика.ЗаписатьJSON(ЗаписьJSON, КурсXDTO.Занятия.Владелец);
    Текст = ЗаписьJSON.Закрыть();
    ЧтениеJSON = Новый ЧтениеJSON;
    ЧтениеJSON.УстановитьСтроку(Текст);
    Данные = ПрочитатьJSON(ЧтениеJSON, Истина);
```

Думаю вам стоит обратиться к программистам. Вариантов то масса и при более тщательном анализе задачи можно найти наиболее подходящие.