Имя: Пароль:
1C
1С v8
как скрыть пустые строки в макете?
0 CODA
 
16.09.20
21:36
добрый вечер !

как скрыть пустые строки в макете?
1 Мимохожий Однако
 
16.09.20
21:37
не выводи
2 CODA
 
16.09.20
21:49
(1) если строка содержит несколько областей?
3 Сергиус
 
16.09.20
22:01
(2)Покажи пример, что хочешь сделать.
4 CODA
 
16.09.20
22:03
(3) скрыть пустые строки в макете  где значение одной из колонки больше 0   а их несколько  -колонок  ( областей)
5 CODA
 
16.09.20
22:04
допустим  5 колонок    с разными значениями  но есть пустые строки
6 Сергиус
 
16.09.20
22:07
(5)Делай вывод каждой области где колонка отдельно. Если по условию пусто, то не выводи.
7 CODA
 
16.09.20
22:10
(6) тойсть условие проверки на каждую область?
8 Сергиус
 
16.09.20
22:12
(7)Ну конечно. У тебя как я понимаю области обозначены что-то навроде такого "Строка|Колонка1", "Строка|Колонка2" и тд.?
9 CODA
 
16.09.20
22:12
обл1  обл2  обл3  обл4  

_1_____2______3____4_____
_____________________
_____________________

_2_____3______4_____5__
10 CODA
 
16.09.20
22:13
обл1  обл2  обл3  обл4  

строкатабл _1_____2______3____4_____
           _____________________
           _____________________

           _2_____3______4_____5__
11 Сергиус
 
16.09.20
22:14
(10)Покажи код, как делаешь вывод.
12 CODA
 
16.09.20
22:15
шапка



    
    ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы|Основной2");
    ДокументРезультат.Присоединить(ОбластьШапкаТаблицы);  
    
    ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы|Основной3");
    ДокументРезультат.Присоединить(ОбластьШапкаТаблицы);
    
    //Если ПараметрыОтчета.СЗадолженностью Тогда
        //ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы|Дополнительно");
        //ДокументРезультат.Присоединить(ОбластьШапкаТаблицы);
    //Иначе
        //ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы|КонецЛиния");
        //ДокументРезультат.Присоединить(ОбластьШапкаТаблицы);
    //КонецЕсли;    
    
    ОбластьСтрокаОсновной = Макет.ПолучитьОбласть("СтрокаТаблицы|Основной");
    ОбластьСтрокаОсновной1 = Макет.ПолучитьОбласть("СтрокаТаблицы|Основной1");
    
    
    ОбластьСтрокаОС = Макет.ПолучитьОбласть("СтрокаТаблицы|ОС");
    ОбластьСтрокаОтчет1 = Макет.ПолучитьОбласть("СтрокаТаблицы|Отчет1");
    //ОбластьСтрокаОтчет2 = Макет.ПолучитьОбласть("СтрокаТаблицы|Отчет2");
    ОбластьСтрокаОсновной2 = Макет.ПолучитьОбласть("СтрокаТаблицы|Основной2");
    ОбластьСтрокаОсновной3 = Макет.ПолучитьОбласть("СтрокаТаблицы|Основной3");

    //ОбластьСтрокаДополнительно = Макет.ПолучитьОбласть("СтрокаТаблицы|Дополнительно");
    //ОбластьСтрокаКонецЛиния = Макет.ПолучитьОбласть("СтрокаТаблицы|КонецЛиния");
    
    ОбластьСтрокаОсновнойОС = Макет.ПолучитьОбласть("СтрокаТаблицыОС|Основной");
    ОбластьСтрокаОсновнойОС1 = Макет.ПолучитьОбласть("СтрокаТаблицыОС|Основной1");

    ОбластьСтрокаОтчет1ОС = Макет.ПолучитьОбласть("СтрокаТаблицыОС|Отчет1");
    //ОбластьСтрокаОтчет2ОС = Макет.ПолучитьОбласть("СтрокаТаблицыОС|Отчет2");
    ОбластьСтрокаОсновной2ОС = Макет.ПолучитьОбласть("СтрокаТаблицыОС|Основной2");
        ОбластьСтрокаОсновной2ОС = Макет.ПолучитьОбласть("СтрокаТаблицыОС|Основной3");
13 Сергиус
 
16.09.20
22:16
А параметры никакие не задаются?
14 CODA
 
16.09.20
22:16
ВыборкаКонтр = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    Пока ВыборкаКонтр.Следующий() Цикл
        ТекКСуммаГрафика = 0;
        ТекКОстаток = 0;
        ТекКВсего = 0;
        ТекКТекущая = 0;
        ТекКДней30 = 0;
        ТекКДнейБольше60 = 0;
        ТекКПениВыставлено = 0;
        ТекКПениОплачено = 0;
        ТекКВсегоЗадолженность = 0;
        ТекКАванс = 0;
        ТекИтогоСтоимостьИмущества = 0;
        
        ВывестиПромежуточныйИтог = ложь;
        НомерГрафика = 0;
        ВыборкаДок = ВыборкаКонтр.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
        Пока ВыборкаДок.Следующий() Цикл
            НомерГрафика  =  НомерГрафика + 1;
            
            Если ПараметрыОтчета.ОтборВыбратьПервые Тогда
                Если НомерГрафика > ПараметрыОтчета.ВыбратьПервые Тогда
                    Прервать;
                КонецЕсли;
            КонецЕсли;    

            //Если ВыборкаДок.Остаток <= 0 Тогда
            //    Продолжить;    
            //КонецЕсли;    
            
            Если ПараметрыОтчета.ОтборОстаток И (ВыборкаДок.Остаток <= ПараметрыОтчета.МинОстаток) Тогда
                Продолжить;    
            КонецЕсли;    

            Если ПараметрыОтчета.ОтборВсего И (ВыборкаДок.Всего <= ПараметрыОтчета.МинВсего) Тогда
                Продолжить;    
            КонецЕсли;    
            
            НомерТек = НомерТек+1;
            ОбластьСтрокаОсновной.Параметры.Номер = НомерТек;
            ОбластьСтрокаОсновной.Параметры.Документ = ВыборкаДок.Регистратор;
            ОбластьСтрокаОсновной.Параметры.Контрагент = ВыборкаДок.Регистратор.Контрагент;
            ОбластьСтрокаОсновной1.Параметры.НомерДоговора = ВыборкаДок.Регистратор.Договор.Номер;
            ОбластьСтрокаОсновной1.Параметры.СтоимостьИмущества = ВыборкаДок.Регистратор.СтоимостьИмущества;
            //ОбластьСтрокаОсновной1.Параметры.ДатаДоговора =  Формат(ВыборкаДок.Регистратор.Договор.Дата,"ДЛФ=Д");
            
            //ОбластьСтрокаОтчет1.Параметры.ДатаОкончанияДоговора = Формат(ВыборкаДок.ДатаЗавершенияГрафика,"ДЛФ=Д");
            //ОбластьСтрокаОтчет1.Параметры.СуммаГрафика = ВыборкаДок.ОбщаяСуммаПлатежей;
              
            Выб = ВыборкаДок.Выбрать();
            //
               Пока выб.Следующий() цикл
                    ОбластьСтрокаОсновной1.Параметры.СуммаПост= Выб.ПолучЛизПл;
                      ОбластьСтрокаОсновной3.Параметры.Поручит = Выб.Поручитель ;
                      ОбластьСтрокаОсновной3.Параметры.Залог = Выб.Залогодатель ;

              
                КонецЦикла;
            //ОбластьСтрокаОтчет1.Параметры.СуммаПост= "111";

                         //ОбластьСтрокаОтчет1.Параметры.Остаток = ВыборкаДок.Остаток;
            
            ВсегоВсего = ?(ВыборкаДок.Всего > 0 , ВыборкаДок.Всего, 0);
            ОбластьСтрокаОсновной2.Параметры.Всего = ВсегоВсего;
            ОбластьСтрокаОсновной2.Параметры.Дней30 = 0;
            ОбластьСтрокаОсновной2.Параметры.ДнейБольше60 = 0;
            
            ДатаОткрытияДолга = Неопределено;
            
            Если ВсегоВсего > 0 Тогда
                МинДата = МинимальнаяДатаЗаПериод(ВыборкаДок.Регистратор, НачалоМесяца(ПараметрыОтчета.ДатаОтчета), ПараметрыОтчета.ДатаОтчета);
                
                Если МинДата <> Неопределено Тогда
                    СуммаТекущая = ПосчитатьСколькоСуммыПлатежаЗаПериод(ВыборкаДок.Регистратор, НачалоМесяца(ПараметрыОтчета.ДатаОтчета), ПараметрыОтчета.ДатаОтчета);
                    ПрошлыйМесяц = ПараметрыОтчета.ДатаОтчета;
                Иначе
                    ПрошлыйМесяц = ДобавитьМесяц(ПараметрыОтчета.ДатаОтчета,-1);
                    СуммаТекущая = ПосчитатьСколькоСуммыПлатежаЗаПериод(ВыборкаДок.Регистратор, НачалоМесяца(ПрошлыйМесяц), КонецМесяца(ПрошлыйМесяц));
                КонецЕсли;    
                //ДатаОткрытияДолга = ПрошлыйМесяц;
                
                СуммаТекущая = Мин(СуммаТекущая,ВсегоВсего);
                ИтогоТекущая = ИтогоТекущая + СуммаТекущая;
                ТекКТекущая = ТекКТекущая + СуммаТекущая;
                
                ОбластьСтрокаОсновной2.Параметры.Текущая = СуммаТекущая;
                
                //ВыборкаОС1 = ВыборкаДок.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
                //Пока ВыборкаОС1.Следующий() Цикл

                //
                //  Дог1=ВыборкаОС1.ОсновноеСредство;
                  
                  //ОбластьСтрокаОсновной3.Параметры.Поручит = ВыбДок.Поручитель ;

                  
              //    
              //КонецЦикла;
              
              
              

                
                Если ВсегоВсего <> СуммаТекущая Тогда
                    ПрошлыйМесяц2 = ДобавитьМесяц(ПрошлыйМесяц,-1);
                    Сумма30 = ПосчитатьСколькоСуммыПлатежаЗаПериод(ВыборкаДок.Регистратор, НачалоМесяца(ПрошлыйМесяц2), КонецМесяца(ПрошлыйМесяц2));
                    Сумма30 = Мин(Сумма30,ВсегоВсего - СуммаТекущая);
                    ИтогоДней30 = ИтогоДней30 + Сумма30;
                    ТекКДней30 = ТекКДней30 + Сумма30;
                    
                    ОбластьСтрокаОсновной2.Параметры.Дней30 = Сумма30;
                    ДатаОткрытияДолга = ПрошлыйМесяц2;
                    
                    Если ВсегоВсего <> (СуммаТекущая + Сумма30) Тогда
                        СуммаБолее60 = ВсегоВсего - СуммаТекущая - Сумма30;
                        ИтогоДнейБольше60 = ИтогоДнейБольше60 + СуммаБолее60;
                        ТекКДнейБольше60 = ТекКДнейБольше60 + СуммаБолее60;
                        
                        ОбластьСтрокаОсновной2.Параметры.ДнейБольше60 = СуммаБолее60;
                        //ДатаОткрытияДолга = ПолучитьДатуОткрытияДолгаПоДокументу(ВыборкаДок.Регистратор, СуммаБолее60, ДатаОткрытияДолга-24*60*60);
                        //ДатаОткрытияДолга = ПолучитьДатуОткрытияДолгаПоДокументу(ПараметрыОтчета);

                    КонецЕсли;    
                КонецЕсли;
                
            Иначе
                ОбластьСтрокаОсновной2.Параметры.Текущая = 0;
                ОбластьСтрокаОсновной2.Параметры.Дней30 = 0;
                ОбластьСтрокаОсновной2.Параметры.ДнейБольше60 = 0;
            КонецЕсли;    
            
            
            ДокументРезультат.Вывести(ОбластьСтрокаОсновной);
            
            Если ПараметрыОтчета.ВывестиОСОтдельнойКолонкой Тогда
                ТекОС = "";
                ВыборкаОС = ВыборкаДок.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
                Пока ВыборкаОС.Следующий() Цикл
                    ТекОС = ТекОС + ВыборкаОС.ОсновноеСредство+"; ";
                КонецЦикла;
                ОбластьСтрокаОС.Параметры.ОС = ТекОС;
                ДокументРезультат.Присоединить(ОбластьСтрокаОС);  
            КонецЕсли;    
            
            ДокументРезультат.Присоединить(ОбластьСтрокаОсновной1);
15 Сергиус
 
16.09.20
22:21
По каким из этих параметров можно определить, пустая будет строка или нет?
16 CODA
 
16.09.20
22:25
если дней от 30  тогда  выводим  

Дней30  


всего обл заполнено по ней определить можно  выводить или нет строку
17 CODA
 
16.09.20
22:28
думаю так  если Сумма30 >0  тогда выводим
18 CODA
 
16.09.20
22:28
если всего <>0  тогда выводим
19 Сергиус
 
16.09.20
22:43
(18)Ну так и поставь данное условие на вывод, там где идет ДокументРезультат.Присоединить
20 CODA
 
16.09.20
22:50
(19)ок на все обл
21 Сергиус
 
16.09.20
23:00
(20) СтрокаТабл|Обл1,  СтрокаТабл|Обл2 и тд
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс