Вывод запроса в поле табличного документа с группировкой
Добрый день, пытаюсь вывести в поле табличного документа (ОФ) результат запроса. Но не совсем получается.
Задача была в следующем: Вывести все неуникальные элементы справочника по полю, по которому идет синхронизация в правилах обмена (в данном случае по коду). Мне их надо вывести в табличный документ вот в таком виде:
Неуникальный код 1
Элемент1 КодЭлемента1
Элемент2 КодЭлемента2
Элемент3 КодЭлемента3
Неуникальный код 2
Элемент4 КодЭлемента4
Элемент5 КодЭлемента5
Элемент6 КодЭлемента6
На примере:
00001
Монитор 00001
Клавиатура 00001
Мышь 00001
00002
Стол 00002
Стул 00002
Шкаф 00002
Пишу вот так:
Выводит все строки поочередно
00001
00001 Монитор
00001 Клавиатура
00001 Мышь
00002
00002 Стол
00002 Стул
00002 Шкаф
Как мне сделать, чтобы на форме было как группировка (или открывалось через + или хотя бы строки внутри группировки были смещены правее)? Подскажите или дайте пример, пожалуйста
Задача была в следующем: Вывести все неуникальные элементы справочника по полю, по которому идет синхронизация в правилах обмена (в данном случае по коду). Мне их надо вывести в табличный документ вот в таком виде:
Неуникальный код 1
Элемент1 КодЭлемента1
Элемент2 КодЭлемента2
Элемент3 КодЭлемента3
Неуникальный код 2
Элемент4 КодЭлемента4
Элемент5 КодЭлемента5
Элемент6 КодЭлемента6
На примере:
00001
Монитор 00001
Клавиатура 00001
Мышь 00001
00002
Стол 00002
Стул 00002
Шкаф 00002
Пишу вот так:
Процедура КнопкаВыполнитьНажатие(Кнопка)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.Наименование КАК Наименование,
| СУММА(1) КАК КоличествоДублей
|ПОМЕСТИТЬ ВТ_дубли
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Номенклатура.ЭтоГруппа = ЛОЖЬ
|
|СГРУППИРОВАТЬ ПО
| Номенклатура.Наименование
|
|ИМЕЮЩИЕ
| СУММА(1) > 1
|;
|
|//////////////////////////////////////////////////////////// ////////////////////
|ВЫБРАТЬ
| Номенклатура.Наименование КАК Наименование,
| Номенклатура.Ссылка КАК Ссылка
|ИЗ
| ВТ_дубли КАК ВТ_дубли
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Номенклатура
| ПО ВТ_дубли.Наименование = Номенклатура.Наименование
|ГДЕ
| Номенклатура.ЭтоГруппа = ЛОЖЬ
|
|УПОРЯДОЧИТЬ ПО
| Наименование
|ИТОГИ ПО
| Наименование";
ТЗ = Запрос.Выполнить().Выгрузить();
СформироватьТЗ(ТЗ);
КонецПроцедуры
Процедура СформироватьТЗ(ТабЗначений)
ТабДок = ЭлементыФормы.ПолеТабличногоДокумента1;
ТабДок.Очистить();
ШирКолонки = ТабДок.Область(,1,,2);
ШирКолонки.ШиринаКолонки = 20;
ДетальнаяСтрока = ТабДок.ПолучитьОбласть(1, ,1, );
КоличествоКолонок = ТабЗначений.Колонки.Количество();
Для Каждого СтрокаТЗ Из ТабЗначений Цикл
Для ТекущееПоле = 0 По КоличествоКолонок - 1 Цикл
Область = ДетальнаяСтрока.Область(1, ТекущееПоле +1);
Область.СодержитЗначение = Истина;
КС = Новый КвалификаторыСтроки(99);
Массив = Новый Массив;
Массив.Добавить(ТипЗнч(СтрокаТЗ[ТекущееПоле]));
ОписаниеТиповС = Новый ОписаниеТипов(Массив, , КС);
Область.ТипЗначения = ОписаниеТиповС;
Область.Значение = СтрокаТЗ[ТекущееПоле];
КонецЦикла;
ТабДок.Вывести(ДетальнаяСтрока);
КонецЦикла;
ТабДок.ОтображатьСетку = Истина;
ТабДок.Показать();
КонецПроцедуры
ПоказатьВыводит все строки поочередно
00001
00001 Монитор
00001 Клавиатура
00001 Мышь
00002
00002 Стол
00002 Стул
00002 Шкаф
Как мне сделать, чтобы на форме было как группировка (или открывалось через + или хотя бы строки внутри группировки были смещены правее)? Подскажите или дайте пример, пожалуйста
По теме из базы знаний
- Всякие полезности
- Поиск документов по ссылке (на основе поиска по метаданным)
- Таблица значений в табличный документ (СКД)
- Консоль кода с поддержкой объявления процедур и функций, с дополнительными функциями отслеживания и вывода значений
- Приемы работы с СКД: выгрузка данных справочников и документов в линейном виде в табличный документ
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот