Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 1
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Отчет обработка иерархического справочника с уровнями и спойлерами (+)          
Constantus Подменю пользователя
сообщение 25.05.17, 8:06
Сообщение #1

Ветеран
*******
Группа: Пользователи
Сообщений: 962
Спасибо сказали: 8 раз
Рейтинг: 0

Приветствую, форумчане!
"Управление торговлей 10.3", (Моби-С 5.5). "ABBYY Ukraine", 2003-2014 (2.3.20.1)

Делаю отчет в Обработке (1 часть), а именно обход справочника "Контрагенты" по иерархии:

    Запрос.Текст = 
        "ВЫБРАТЬ
        |    Контрагенты.Наименование КАК Наименование
        |ИЗ
        |    Справочник.Контрагенты КАК Контрагенты
        |
        |УПОРЯДОЧИТЬ ПО
        |    Наименование ИЕРАРХИЯ";
    
    РезультатЗапроса = Запрос.Выполнить();
    
    Выборка = РезультатЗапроса.Выбрать();
    
    Пока Выборка.Следующий() Цикл
        // Вставить обработку выборки ВыборкаДетальныеЗаписи
        Отступ = "";
        Для Шаг = 0 По Выборка.Уровень() Цикл
            Отступ = Отступ + "    ";
        КонецЦикла;
        //Сообщить(Отступ + Выборка.Наименование);
        Область = Макет.ПолучитьОбласть("Значения");
        Область.Параметры.Контрагенты = Отступ + Выборка.Наименование;
        ТабДок.Вывести(Область);
        
    КонецЦикла;


Отчет выводится в форме обработки в ПолеТабличногоДокумента. Сейчас иерархию добился только путем добавления пробелов.
Как можно добиться вывода отчета по иерархии путем появления спойлеров, т.е. как в отчете на СКД по уровням с (+) и (-)

Vidocq05 Подменю пользователя
сообщение 25.05.17, 13:11
Сообщение #2

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 214
Из: Сумы
Спасибо сказали: 38 раз
Рейтинг: 0

Constantus @ Сегодня, 9:06 * ,

Макет = ПолучитьМакет("Макет");
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    Контрагенты.Ссылка КАК Ссылка,
        |    Контрагенты.Представление
        |ИЗ
        |    Справочник.Контрагенты КАК Контрагенты
        |ИТОГИ ПО
        |    Ссылка ИЕРАРХИЯ";
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
    ОбластьСсылкаИерархия = Макет.ПолучитьОбласть("СсылкаИерархия");
    ОбластьСсылка = Макет.ПолучитьОбласть("Ссылка");
    
    ТабДок = Новый ТабличныйДокумент;
    ТабДок.Очистить();
    ТабДок.Вывести(ОбластьШапкаТаблицы);
    ТабДок.НачатьАвтогруппировкуСтрок();
    
    ВыборкаСсылка = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    
    Пока ВыборкаСсылка.Следующий() Цикл
        Если ВыборкаСсылка.ТипЗаписи() = ТипЗаписиЗапроса.ИтогПоИерархии Тогда
            Область = ОбластьСсылкаИерархия;
        Иначе
            Область = ОбластьСсылка;
        КонецЕсли;
    
        Область.Параметры.Заполнить(ВыборкаСсылка);
        ТабДок.Вывести(Область, ВыборкаСсылка.Уровень());
    КонецЦикла;
    
    ТабДок.ЗакончитьАвтогруппировкуСтрок();
    ТабДок.ТолькоПросмотр = Истина;
    
    ТабДок.Показать();

Constantus Подменю пользователя
сообщение 25.05.17, 13:38
Сообщение #3

Ветеран
*******
Группа: Пользователи
Сообщений: 962
Спасибо сказали: 8 раз
Рейтинг: 0

Vidocq05 @ Сегодня, 16:11 * ,

Благодарю. Вроде это оно...

Немного не понял:
Область.Параметры.Заполнить(ВыборкаСсылка);


"Заполнить" выполняет заполнение, если наименование полей в запросе совпадает с параметрами в Макете?

Отчет получился, но почему-то дублируется в детализации наименование группы:

Группа01
____КК05
____КК06
____Группа01
____КК01
____КК02

И наименования идут не по порядку по возрастанию...

        |УПОРЯДОЧИТЬ ПО
        |    Ссылка


Vidocq05 Подменю пользователя
сообщение 25.05.17, 14:25
Сообщение #4

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 214
Из: Сумы
Спасибо сказали: 38 раз
Рейтинг: 0

Constantus @ Сегодня, 14:38 * ,
Цитата(Constantus @ 25.05.17, 14:38) *
"Заполнить" выполняет заполнение, если наименование полей в запросе совпадает с параметрами в Макете?

Да

Цитата(Constantus @ 25.05.17, 14:38) *
И наименования идут не по порядку по возрастанию...

сделайте упорядочить по наименованию
Цитата(Constantus @ 25.05.17, 14:38) *
Отчет получился, но почему-то дублируется в детализации наименование группы:

Прошу прощения ))

Запрос.Текст = 
        "ВЫБРАТЬ
        |    Контрагенты.Ссылка КАК Ссылка,
        |    Контрагенты.Представление
        |ИЗ
        |    Справочник.Контрагенты КАК Контрагенты
        |ГДЕ
        |    Контрагенты.ЭтоГруппа = ЛОЖЬ
        |ИТОГИ ПО
        |    Ссылка ИЕРАРХИЯ";

Спасибо сказали: Constantus,

Constantus Подменю пользователя
сообщение 25.05.17, 15:14
Сообщение #5

Ветеран
*******
Группа: Пользователи
Сообщений: 962
Спасибо сказали: 8 раз
Рейтинг: 0

Vidocq05 @ Сегодня, 17:25 * ,


Благодарю... и как я сам до такого не додумался :-)

Constantus Подменю пользователя
сообщение 25.05.17, 17:19
Сообщение #6

Ветеран
*******
Группа: Пользователи
Сообщений: 962
Спасибо сказали: 8 раз
Рейтинг: 0

А как сделать спойлеры без учета всяких Иерархий...

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

Имеется код выполнения заполнения определенной области в макете, как только заканчивается, то эту область замочить в спойлер

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 19.03.24, 7:23
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!