Значения табличной части Спр. через запятую

  • Автор темы nikh848
  • Дата начала
N

nikh848

Гость
#1
Привет Всем
Подскажите пож. как дальше продолжить (1C 8.1):
Код:
ТЗ = Новый ТаблицаЗначений;
тз.Колонки.Добавить("Наименование");
тз.Колонки.Добавить("Субконто");

Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| Наименование,
| Ссылка
|ИЗ
| Справочник.операндыПоказателей";

Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий()>0 Цикл
НоваяСтрока = ТЗ.Добавить();
НоваяСтрока.Наименование = Выборка.Наименование;

НоваяСтрока.Субконто =
Чтобы в 1 колонке ТЗ отобразить наименования,
в 2 колонке Субконто перечислить через запятую все значения которые хранятся
в табличной части Справочника "ОперандыПоказателей";
 
S

sannt

Гость
#2
Не претендую на правильность, но попробуйте, как вариант:

<!--shcode--><pre><code class='1с'>ТЗ = Новый ТаблицаЗначений;
тз.Колонки.Добавить("Наименование");
тз.Колонки.Добавить("Субконто");

Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| ТабЧасть.РеквизитТабЧасти,
| ТабЧасть.Ссылка.Наименование,
| ТабЧасть.Ссылка.Ссылка
|ИЗ
| Справочник.операндыПоказателей.НаименованиеТабЧасти КАК ТабЧасть
|ИТОГИ ПО
| Наименование";

РезультатЗапроса = Запрос.Выполнить();

ВыборкаПоНаименованию = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Наименование");
Пока ВыборкаПоНаименованию.Следующий() Цикл
НоваяСтрока = ТЗ.Добавить();
НоваяСтрока.Наименование = ВыборкаПоНаименованию.Наименование;

// сформируем строку со значениями через запятую из таб. части справочника
НачалоСтроки = Истина;
Выборка = ВыборкаПоНаименованию.Выбрать();
Пока Выборка.Следующий() Цикл
Если НачалоСтроки Тогда
СтрокаССубконто = Строка(Выборка.РеквизитТабЧасти);
НачалоСтроки = Ложь;
Иначе
СтрокаССубконто = СтрокаССубконто + ", " + Выборка.РеквизитТабЧасти;
КонецЕсли;
КонецЦикла;

НоваяСтрока.Субконто = СтрокаССубконто;

КонецЦикла;[/CODE]

РеквизитТабЧасти - название реквизита табличной части из справочника,
НаименованиеТабЧасти - наименование табличной части справочника

Переменную "СтрокаССубконто" можно попробовать заменить на НоваяСтрока.Субконто