• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

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

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

nikh848

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

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

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

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

sannt

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

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

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

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

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

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

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

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

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

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

nikh848

Отлично, работает.
Большое спасибо!
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!