Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Расшифровка в табличном документе по уровням

Расшифровка в табличном документе по уровням
Я
   deringpavel
 
30.06.20 - 07:55
Всем привет.

Есть вопрос - можно ли корректно реализовать расшифровку в табличном документе с уровнями?
Сначала вывести элемент на верхнем уровне.
При нажатии мышью на этот элемент - отображается элемент второго уровня.
При нажатии на элемент второго уровня - элемент третьего уровня.
И так далее.
   PuhUfa
 
1 - 30.06.20 - 07:57
А что значит корректно? Чем стандартная не устраивает? Так принципиально нажимать на элемент а не на плюсик?
   deringpavel
 
2 - 30.06.20 - 07:58
да, это требование заказчика
   PuhUfa
 
3 - 30.06.20 - 08:52
Тогда только перерисовывать каждый раз ТД
   Fedor-1971
 
4 - 30.06.20 - 10:15
(2) Развернуть - понятно, клацнули по элементу, а свернуть назад как?

Варианта 3:
- либо перегенерировать табличный документ (в 3 уже советовали), только задолбаешься запоминать, что расшифровано, а что нет
- либо открывать отдельную форму с расшифровкой, то же не айс, куча форм, пользователи будут путаться
- либо делаем форму отчёта, на которой, можно кнопкой вернуться к предыдущему виду. Т.е. генерим исходную таблицу, при клаце по элементу формируем новый табличный документ без дальнейшей расшифровки, старый прячем, по нажатии кнопки возврата показываем исходный табличный документ
   Classic
 
5 - 30.06.20 - 10:19
(2)
А в требованиях заказчика есть требование об отсутствии плюса вообще?
   Classic
 
6 - 30.06.20 - 10:30
(4)
- Именовать области и играться их видимостью
   deringpavel
 
7 - 30.06.20 - 10:33
Процедура, формирующая ТД

<code>
&НаСервере
Процедура Расшифровка()
    ТабличныйДокумент.Очистить();
    ВыборкаДанных = ПолучитьРасшифровку();
    ОтчетОбъект = РеквизитФормыВЗначение("Отчет");
    Макет = ОтчетОбъект.ПолучитьМакет("Макет");
    ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
    ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
    ОбластьСтрока = Макет.ПолучитьОбласть("Строка");
    ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");                                                                        
    ОбщаяСумма = 0;
    РезультатЗапросаУровень1 = ВыборкаДанных.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Уровень1");
    
    
    Пока РезультатЗапросаУровень1.Следующий() Цикл
        
        ОбластьШапка.Параметры.ОписаниеУровня = "АО «Газпромнефть-Аэро» высоко ценит профессиональный уровень и достижения каждого сотрудника. Уделяет особое внимание востребованности элементов Модели совокупного поощрения, предлагаемые Компанией в обмен на время, талант, усилия и результаты";
        ОбластьШапка.Параметры.Наименованиеуровня = "Совокупное поощрение";
        ОбластьЗаголовок.Параметры.НаименованияУровня = "Совокупное поощрение";
        ОбластьЗаголовок.Параметры.Год = "за " + Строка(Год(Период)) + " Год";
        ОбластьЗаголовок.Параметры.СуммаОбщая = ВычислениеИтогов("Уровень1");
        
        
        ОбластьСтрока.Параметры.N_ВидСовокупногоПоощренияВидПоощрения = РезультатЗапросаУровень1.Уровень1;
        ОбластьСтрока.Параметры.N_Сумма = РезультатЗапросаУровень1.Сумма;
        ОбластьСтрока.Параметры.N_Суммарублей = ЧислоПрописью(РезультатЗапросаУровень1.Сумма);
        
        //

        РезультатЗапросаУровень2 = РезультатЗапросаУровень1.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Уровень2");
        //

        Пока РезультатЗапросаУровень2.Следующий() Цикл
            //    

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

                КонецЦикла;
                
            КонецЦикла;
                
        КонецЦикла;
        
    КонецЦикла;
    
    
    ТабличныйДокумент.Вывести(ОбластьПодвал);


КонецПроцедуры

</code>
   deringpavel
 
8 - 30.06.20 - 10:34
Обработка расшифровки 

<code>
&НаКлиенте
Процедура ТабличныйДокументОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка, ДополнительныеПараметры)
    
    СтандартнаяОбработка = Ложь;
    ПолучитьПараметрыРасшифровки(Расшифровка);
        
КонецПроцедуры


&НаСервере
Процедура ПолучитьПараметрыРасшифровки(СтруктураРасшифровки)
    
    ТабличныйДокумент.Очистить();
    ОтчетОбъект = РеквизитФормыВЗначение("Отчет");
    Макет = ОтчетОбъект.ПолучитьМакет("Макет");
    ОбластьСтрока = Макет.ПолучитьОбласть("Строка");
    ОбластьСтрока.Параметры.Заполнить(СтруктураРасшифровки);
    ОбластьСтрока.Параметры.Расшифровка = СтруктураРасшифровки;
    ТабличныйДокумент.Вывести(ОбластьСтрока);

КонецПроцедуры

</code>

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.