Как используя D7 вывести сериализованные данные одним запросом?

Для того чтобы использовать D7 для вывода сериализованных данных одним запросом, Вы можете воспользоваться следующими шагами:

1. Получение объекта Query объекта "Выборка" с использованием D7:

$query = new BitrixMainEntityQuery(MyModel::getEntity());

Где MyModel - это класс модели, связанный с таблицей БД, содержащей сериализованные данные.

2. Добавление полей для выборки:

$query->setSelect([
    'ID',
    'SERIALIZED_FIELD'
]);

Здесь SERIALIZED_FIELD - это поле в таблице, содержащее сериализованные данные.

3. Добавление объекта ExpressionField для десериализации:

$query->registerRuntimeField(null, new BitrixMainEntityExpressionField(
    'DESERIALIZED_FIELD',
    'UNSERIALIZE(%s)',
    ['SERIALIZED_FIELD']
));

В данном примере используется функция UNSERIALIZE, которая десериализует сериализованные данные в поле SERIALIZED_FIELD. Можно использовать любую другую функцию десериализации, соответствующую требованиям вашей системы.

4. Использование выборки:

$result = $query->exec();
while ($row = $result->fetch()) {
    $deserializedData = $row['DESERIALIZED_FIELD'];
    // Делайте что-то с десериализованными данными
}

Таким образом, Вы можете использовать D7 для получения сериализованных данных одним запросом. При этом, с помощью ExpressionField можно применять различные функции десериализации, в зависимости от требований вашей системы.