Имя: Пароль:
1C
1С v8
СоединитьСтроки() для Динамического списка
0 Garykom
 
гуру
27.08.25
09:43
Есть справочник "Машинки" с табличной частью "Характеристики" (один реквизит "Характеристика" типа строка)

Требуется вывести на форму список Машинок в таблицу (без дублей), причем все значения для каждой из ТЧ Характеристики сложить в одну ячейку
Т.е. чтобы в одной строке таблицы в некой колонке было видно все характеристики из ТЧ через запятую

Как это сделать без кода через Динамический список?

ЗЫ
Вроде как есть СоединитьСтроки() и оно даже отрабатывает на закладке Вычисляемые поля
1 craxx
 
27.08.25
09:39
(0) а зачем такое извращение? не проще в справочнике в шапке сделать текстовое поле представления строки характеристик. Типа как  в ЗУП состав ведомости?
2 Garykom
 
гуру
27.08.25
09:41
(1) Для внешней обработки добавлять реквизит в сам справочник и заполнять его имхо перебор
3 craxx
 
27.08.25
09:43
(2) расширением вполне можно справиться
4 Garykom
 
гуру
27.08.25
09:47
(3) Не вариант
Добавлять реквизит или РС и заполнять его через регзадание это изврат для данной задачки

Кодом то можно например через ПриПолученииДанныхНаСервере
Или извратиться через полную СКД можно и выгрузку в ТЧ

Вопрос можно ли только через ДС, без дополнительного кода/обработки?
5 craxx
 
27.08.25
09:54
(4) Изврат как раз это запросом делать, потому что этот ДС будет тупить. Именно поэтому, например. в ЗУП сделали в ведомости реквизит СоставВедомости.
6 mikecool
 
27.08.25
10:30
емнип, у ДС есть вычисляемые поля или ошибаюсь?
7 Garykom
 
гуру
27.08.25
10:46
(6) Есть
Как туда правильно засунуть СоединитьСтроки() и с каким запросом?
8 Chai Nic
 
27.08.25
10:48
(4) Я подобное делал через ПриПолученииДанныхНаСервере.
Вот для табличных частей конечно жесть - там такого нет, приходится вручную заполнять данные табличного поля и обновлять их после каждого изменения исходных данных.
9 ptiz
 
27.08.25
12:22
(0) А сколько максимум характеристик?
Если немного, то можно так и потом склеить:
ВЫБРАТЬ
    Машинки.Ссылка КАК Ссылка,
    Машинки.Наименование КАК Наименование,
    ДопХарактеристики1.Реквизит1 КАК Характеристика1,
    ДопХарактеристики2.Реквизит1 КАК Характеристика2
ИЗ
    Справочник.Машинки КАК Машинки
    ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Машинки.ДопХарактеристики КАК ДопХарактеристики1
    ПО ДопХарактеристики1.Ссылка = Машинки.Ссылка И ДопХарактеристики1.НомерСтроки = 1
    ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Машинки.ДопХарактеристики КАК ДопХарактеристики2
    ПО ДопХарактеристики2.Ссылка = Машинки.Ссылка И ДопХарактеристики2.НомерСтроки = 2
10 ejikbeznojek
 
27.08.25
12:27
Может таки общую функцию, принимающую Машинку и возвращающую склейку?

И её вызвать в вычисляемых выражениях?
11 Garykom
 
гуру
27.08.25
12:35
(9) Хм а вариант
Сначала запросом глянуть сколько максимум характеристик есть
А затем кодом текст запроса сформировать с нужным кол-вом соединений
И в вычисляемом поле склеить
12 RomanYS
 
27.08.25
12:43
(0) Через ДС вероятно не получится: там нет ресурсов и нельзя отключить вывод детальных записей.
В полноценном СКД можно наверное
13 RomanYS
 
27.08.25
12:45
(9)(11) Раньше клеить поля произвольных типов в запросе было проблемой. Интересно как в свежих платформах, там вроде какие-то преобразования типов подвезли
14 Garykom
 
гуру
27.08.25
14:09
(13) Мне склеить надо чисто визуально
Поэтому Группировка "В ячейке" и все отлично