Версия для печати темы (https://pro1c.org.ua/index.php?s=93e3599c85be3f2c57258d682cbdebb0&showtopic=6457)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Система компоновки данных _ Конкатенация текстовых значений для отображения в одном поле

Автор: logist 22.02.12, 11:37

Допустим, в результате запроса получилась таблица в которой в т.ч. есть колонки НомерДок и Номенклатура, в отчет выводится информация группированная по Номенклатуре. Поле НомерДок - текстовое поле в котором содержатся номера документов в которых встречалась эта Номенклатура, так вот надо в одно поле строки поместить все уникальные НомерДок в которых встречалась конкретная Номенклатура.
Такое вообще реально реализовать в СКД? Если да то как smile.gif

8,2 упр.прил. конфигурация самописная.

Автор: pablo 22.02.12, 14:25

Как вариант, поковырять обработчик события ПриКомпоновкеДанных модуля объекта, но я с ним так до конца и не разобрался.

Автор: logist 22.02.12, 15:02

Цитата(pablo @ 22.02.12, 14:25) *
Как вариант, поковырять обработчик события ПриКомпоновкеДанных

Что конкретно там поковырять? Встроенные таблицы?

Автор: pablo 22.02.12, 15:22

Как я предполагаю:

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
    
    СтандартнаяОбработка = Ложь;
    
    Настройки = КомпоновщикНастроек.Настройки;  
    
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки);

    ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновки.Инициализировать(МакетКомпоновки);

    ДокументРезультат.Очистить();
    
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(ДокументРезультат);

    ПроцессорВывода.Вывести(ПроцессорКомпоновки);  
    //и вот здесь попытаться проехаться вдоль ДокументРезультат
КонецПроцедуры

Автор: logist 22.02.12, 15:49

Цитата(pablo @ 22.02.12, 15:22) *
//и вот здесь попытаться проехаться вдоль ДокументРезультат

А можно подробнее как ехать? smile.gif

Автор: pablo 22.02.12, 16:31

Можно перебирать Табличный документ по ячейкам и "вручную" копировать их содержимое в нужную ячейку, после чего удалять избыточные строки. Но моя проблема в том, что в готовом отчете с пустым обработчиком ПриКомпоновкеРезультата у меня данные выводятся, а вот с указанным выше кодом - нет.

Подозреваю, что у меня в отчет не попадают введенные на форме значения параметров.

Автор: logist 22.02.12, 20:13

Спасибо за подсказки, информация полезная. Но решено пойти простым путем, написать обычный отчет.

Автор: pablo 23.02.12, 9:38

И это правильно smile.gif

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua