Добрый день. Есть таблица из двух столбцов Наименование и Значение и неограниченным значением строк. Требуется преобразовать таблицу следующим образом: множество столбцов Наименование и одна строка Значение (т.е. каждому Наименованию соответствует свое значение из первоначальной таблицы)
Например:
Исходная таблица
Наименование Значение
Свойство 1 10
Свойство 2 15
Свойство 3 21
Требуемая таблица
|Свойство 1| Свойство 2| Свойство 3|
| 10 | 15 | 21 |
---
Зачем вы в цикле строки то добавляете?
Вам надо 1 строку добавить перед циклом, и в нее же значения присваивать.

```1c
    ТЗ_ДопСведения = Новый ТаблицаЗначений;
    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("Ссылка", Сотрудник);
    Запрос.Текст =
    "ВЫБРАТЬ
    | ПРЕДСТАВЛЕНИЕ(СотрудникиДополнительныеРеквизиты.Свойство.Имя) КАК СвойствоИмя,
    | СотрудникиДополнительныеРеквизиты.Значение КАК Значение
    |ИЗ
    | Справочник.Сотрудники.ДополнительныеРеквизиты КАК СотрудникиДополнительныеРеквизиты
    |ГДЕ
    | СотрудникиДополнительныеРеквизиты.Ссылка = &Ссылка";
    Результат = Запрос.Выполнить().Выгрузить();

    Если Результат.Количество() Тогда
    НоваяСтрока = ТЗ_ДопСведения.Добавить();
    КонецЕсли;
    Для каждого СтрокиРезультата из Результат Цикл
    ТЗ_ДопСведения.Колонки.Добавить(СтрокиРезультата.СвойствоИмя);

    НоваяСтрока[СтрокиРезультата.СвойствоИмя] = СтрокиРезультата.Значение;
    КонецЦикла;

    Возврат ТЗ_ДопСведения;
```
---
Вы уверены, что количество колонок сможет быть по количеству строк?

Если уверены, то циклом вида Пока ЛогическоеУсловие Цикл читайте строку [1] из ТЗ, вставляете колонку с индексом [1 + СчетчикСтрок] и добавляете 1 колонку.
В новые колонки присваиваете значения из прочитанной строки, затем строку из ТЗ удаляете.

Цикл прерывается, когда количество строк в ТЗ = 1.
---
+ если в строках будут дубли
---
дубли можно сверткой начальной ТЗ решить, что делать с количеством строк - не ясно.
---
Как-то так. Возможно свертку еще в начале или конце добавить если есть дубли строк

```1c
    &НаСервере
    Функция ПреобразованиеТаблицыЗначений(ТаблицаВход)
    ТаблицаРезультат = Новый ТаблицаЗначений;
    КопияКолонки = ТаблицаВход.Скопировать(, "Наименование");
    КопияКолонки.Свернуть("Наименование");
    КопияКолонки.Сортировать("Наименование");
    Для Каждого СтрокаКопии Из КопияКолонки Цикл
    СинонимКолонки = СтрокаКопии.Наименование;
    ИмяКолонки = СтрЗаменить(СинонимКолонки, " ", ");
    ТаблицаРезультат.Колонки.Добавить(ИмяКолонки, Новый ОписаниеТипов("Число"), СинонимКолонки);
    КонецЦикла;
    Для Каждого СтрокаВход Из ТаблицаВход Цикл
    СинонимКолонки = СтрокаВход.Наименование;
    ИмяКолонки = СтрЗаменить(СинонимКолонки, " ", ");
    НоваяСтрока = ТаблицаРезультат.Добавить();
    НоваяСтрока[ИмяКолонки] = СтрокаВход.Значение;
    КонецЦикла;
    Возврат ТаблицаРезультат;
    КонецФункции
```
---
Делаю нечто похожее

```1c
    ТЗ_ДопСведения = Новый ТаблицаЗначений;
    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("Ссылка", Сотрудник);
    Запрос.Текст =
    "ВЫБРАТЬ
    | ПРЕДСТАВЛЕНИЕ(СотрудникиДополнительныеРеквизиты.Свойство.Имя) КАК СвойствоИмя,
    | СотрудникиДополнительныеРеквизиты.Значение КАК Значение
    |ИЗ
    | Справочник.Сотрудники.ДополнительныеРеквизиты КАК СотрудникиДополнительныеРеквизиты
    |ГДЕ
    | СотрудникиДополнительныеРеквизиты.Ссылка = &Ссылка";
    Результат = Запрос.Выполнить().Выгрузить();

    Для каждого СтрокиРезультата из Результат Цикл
    ТЗ_ДопСведения.Колонки.Добавить(СтрокиРезультата.СвойствоИмя);

    НоваяСтрока = ТЗ_ДопСведения.Добавить();
    НоваяСтрока[СтрокиРезультата.СвойствоИмя] = СтрокиРезультата.Значение;
    КонецЦикла;

    Возврат ТЗ_ДопСведения;
```

В итоге получаю
 utc time now
---
Зачем вы в цикле строки то добавляете?
Вам надо 1 строку добавить перед циклом, и в нее же значения присваивать.

```1c
    ТЗ_ДопСведения = Новый ТаблицаЗначений;
    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("Ссылка", Сотрудник);
    Запрос.Текст =
    "ВЫБРАТЬ
    | ПРЕДСТАВЛЕНИЕ(СотрудникиДополнительныеРеквизиты.Свойство.Имя) КАК СвойствоИмя,
    | СотрудникиДополнительныеРеквизиты.Значение КАК Значение
    |ИЗ
    | Справочник.Сотрудники.ДополнительныеРеквизиты КАК СотрудникиДополнительныеРеквизиты
    |ГДЕ
    | СотрудникиДополнительныеРеквизиты.Ссылка = &Ссылка";
    Результат = Запрос.Выполнить().Выгрузить();

    Если Результат.Количество() Тогда
    НоваяСтрока = ТЗ_ДопСведения.Добавить();
    КонецЕсли;
    Для каждого СтрокиРезультата из Результат Цикл
    ТЗ_ДопСведения.Колонки.Добавить(СтрокиРезультата.СвойствоИмя);

    НоваяСтрока[СтрокиРезультата.СвойствоИмя] = СтрокиРезультата.Значение;
    КонецЦикла;

    Возврат ТЗ_ДопСведения;
```
---
Если строку

```1c
    НоваяСтрока = ТаблицаРезультат.Добавить();
```

вынесли перед циклом, то собственно, и будет то что нужно.
---
Вы правы на 100%
---
множество столбцов Наименование и одна строка Значение Интересно, зачем такое нужно? С учетом "и неограниченным значением строк" реализуемость такой хотелки вызывает большие сомнения...

Может, в консерватории постановке задачи надо что-то подправить?
---
Это условно множество и неограничено)
---
Это условно множество и неограничено) Это вот такой ответ на вопрос "зачем"? Ну-ну, желаю успеха.
---
хм, я понимаю когда в ТЗ миллион строк, но когда миллион колонок....