Имя: Пароль:
 
1C
1С v8
СКД. Не выводить шапку, если таблица пуста.
0 Xamio
 
10.04.14
17:21
Есть отчет на СКД. Как сделать чтобы в отчёте не выводилась шапка, если в таблице отчёта 0 строк?
1 fisher
 
10.04.14
18:16
Ну, или с альтернативной шапкой мудрить, или постобработкой.
Короче, овчинка выделки не стоит.
2 Fragster
 
10.04.14
19:42
сделать вычисляемое поле, сделать по нему группировку верхнего уровня, в макете группировки этого поля нарисовать "шапку", а саму шапку убрать тем же макетом
3 Aprobator
 
10.04.14
20:22
во запросы у народа. Вот только зачем это надо вообще?
4 Aprobator
 
10.04.14
20:24
так ведь бедный пользователь может и не понять, а отработал ли отчет вообще.
5 Wobland
 
10.04.14
20:36
следующий шаг. как сразу закрыть форму отчёта, если там 0 строк?
6 Aprobator
 
10.04.14
20:38
не как его не открывать, если пользователь собирается ввести данные при которых данный отчет будет пустым )
7 Xamio
 
11.04.14
09:31
(4) отчёт просто выводит две таблицы. Одна из которых часто пустая, таким образом пользователь получает таблицу и ненужный аппендикс в виде шапки второй таблицы, которая пустая. Чтобы распечатать приходится ковыряться, как то удалять ненужную шапку..
8 SleepyHead
 
11.04.14
09:41
Чем конкретно мешает вторая пустая шапка?
9 Xamio
 
11.04.14
09:48
(8) при выводе на принтер она не нужна.
10 Xamio
 
11.04.14
12:20
(2) "а саму шапку убрать тем же макетом"
как это сделать, поясните пожалуйста поподробнее
11 Xamio
 
12.04.14
10:29
up
12 Xamio
 
12.04.14
10:56
хмм, решил проблему так: в процедуре вывода СКД в печатную форму, следующий код

    Пока Истина Цикл
        ЭлементРезультата = ПроцессорКомпоновки.Следующий();
        Если ЭлементРезультата = Неопределено Тогда
            Прервать;
        Иначе
            ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата);
        КонецЕсли;
    КонецЦикла;

заменил на:

    Пока Истина Цикл
        ЭлементРезультата = ПроцессорКомпоновки.Следующий();
        Если ЭлементРезультата = Неопределено ИЛИ ЭлементРезультата.ПроцентВывода = ПроцентВывода Тогда
            Прервать;
        Иначе
            ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата);
        КонецЕсли;
    КонецЦикла;

где ПроцентВывода равен либо 100, либо 50 и зависит это от заполненности табличной части документа с которой заполняется вторая таблица. Заметил что ЭлементРезультата.ПроцентВывода равен 50 после вывода первой таблицы, вне зависимости от заполненности первой и второй таблиц. Решение какое-то топорное, но на первый взгляд работает, шапка второй таблицы не выводится если она пуста. Если у кого-то есть мнения на сей счёт - делитесь.
13 YF
 
12.04.14
10:58
полностью программно формируй отчет. Если пусто, то выводи пустую табличную форму
14 Xamio
 
12.04.14
11:01
(13) т.е. средствами СКД эта задача не решается?
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший