Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
29 мар 2024, 18:45

Построитель отчета и редактирование его макета

Автор Gae4ka, 10 июн 2015, 13:07

0 Пользователей и 1 гость просматривают эту тему.

Gae4ka

Добрый день! Столкнулась с проблемой вывода макета построителя отчета.
Хочу выделить цветом Шапку макета. ПостроительОтчета.Макет.ШапкаСтроки.ЦветФона = Новый Цвет(184,208,228).
Все закрашивает, но вот почему-то в макете есть первая колонка, которая пустая, без данных, просто отступ от края.
Как удалить этот столбец, т.к. он тоже закрашивается, что выглядит очень некрасиво


КонтрагентАпрель 2014
Помогите, очень нужно! Нигде не могу найти описание данного вопроса.
И второй вопрос. Отчет выводится в 2 группировки.
Контрагент                  сумма1+Сумма2
- Грузополучатель1    сумма1 
- Грузополучатель2    сумма2
Есть ли возможность игнорировать вывод области группировки "Грузополучатель" если
значение этой группировки ПустаяСсылка().
Т.е. в документах, по кот. строится отчет нет грузополучателя.
Буду очень признательна за помощь!


cska-fanat-kz

Цитата: Gae4ka от 10 июн 2015, 13:07И второй вопрос. Отчет выводится в 2 группировки.
Контрагент                  сумма1+Сумма2
- Грузополучатель1    сумма1
- Грузополучатель2    сумма2
Есть ли возможность игнорировать вывод области группировки "Грузополучатель" если
значение этой группировки ПустаяСсылка().
Т.е. в документах, по кот. строится отчет нет грузополучателя.
Буду очень признательна за помощь!

В запросе к построителю условие на Контрагент <> ПустаяСсылка ?
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

cska-fanat-kz

вот тут есть что почитать...
http://www.itland.ru/forum/index.php?showtopic=5327
http://1c-pro.ru/threads/zagolovki-v-postroitele-otcheta.13052/

если пустая ячейка в шапке строки то она есть и в данных? да?
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Gae4ka

Цитата: cska-fanat-kz от 10 июн 2015, 13:10
Цитата: Gae4ka от 10 июн 2015, 13:07И второй вопрос. Отчет выводится в 2 группировки.
Контрагент                  сумма1+Сумма2
- Грузополучатель1    сумма1
- Грузополучатель2    сумма2
Есть ли возможность игнорировать вывод области группировки "Грузополучатель" если
значение этой группировки ПустаяСсылка().
Т.е. в документах, по кот. строится отчет нет грузополучателя.
Буду очень признательна за помощь!

В запросе к построителю условие на Контрагент <> ПустаяСсылка ?
Нет, в данном случае контрагенты все есть, а вот грузополучатели не везде. т.е. выводится
Контрагент1                   сумма1
    -                         сумма1
Контрагент2                   сумма_1+сумма_2
    - Грузополучатель1        сумма_1
    - Грузополучатель2        сумма_2
Не хочу, чтобы показывалась группировка "грузополучатель" у контрагента1.

Добавлено: 10 июн 2015, 13:22


Цитата: cska-fanat-kz от 10 июн 2015, 13:14
вот тут есть что почитать...
http://www.itland.ru/forum/index.php?showtopic=5327
http://1c-pro.ru/threads/zagolovki-v-postroitele-otcheta.13052/

если пустая ячейка в шапке строки то она есть и в данных? да?
Спасибо! С цветом и заголовком шапки разобралась. Помогло
ОбластьЗаголовок = ТабличныйДокумент.Области.Найти("Заголовок");
Если ТипЗнч(ОбластьЗаголовок) = Тип("ОбластьЯчеекТабличногоДокумента") Тогда
    ОбластьНазваниеОтчета = ТабличныйДокумент.Область(ОбластьЗаголовок.Верх, 2, ОбластьЗаголовок.Верх, 2);
    ОбластьНазваниеОтчета.Шрифт = Новый Шрифт(ОбластьНазваниеОтчета.Шрифт,, 12, Истина);
КонецЕсли; (с)

cska-fanat-kz

Цитата: Gae4ka от 10 июн 2015, 13:20Не хочу, чтобы показывалась группировка "грузополучатель" у контрагента1.

ну значит Грузополучатель <> ПустаяСсылка
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Gae4ka

Цитата: cska-fanat-kz от 10 июн 2015, 13:54
ну значит Грузополучатель <> ПустаяСсылка
Не совсем поняла, где я должна прописать это условие. :(

vitasw

Цитата: cska-fanat-kz от 10 июн 2015, 13:54ну значит Грузополучатель <> ПустаяСсылка
:) тогда в выборку не попадут документы, к которых отсутствует понятие "Грузополучатель" или он не заполнен, а суммы то в них есть.
ТС просто в выводе отчета хочет "погасить" вывод пустых грузополучателей.

Gae4ka

Цитата: vitasw от 10 июн 2015, 16:04
Цитата: cska-fanat-kz от 10 июн 2015, 13:54ну значит Грузополучатель <> ПустаяСсылка
:) тогда в выборку не попадут документы, к которых отсутствует понятие "Грузополучатель" или он не заполнен, а суммы то в них есть.
ТС просто в выводе отчета хочет "погасить" вывод пустых грузополучателей.

Вот именно этого и хочется.

Z.spb

Поднимаю эту старую тему, т.к. нашёл ответ на давно интересующий меня вопрос про "лишнюю" колонку через построитель. Может быть кто-то в будущем будет искать и наткнётся, и моё сообщение поможет. Буду рад, т.к. сам долго промучался. В Интернете же я находил только подобные вопросы "как убрать эту колонку" - и ни одного решения! Но я буду первым :) 

Итак... У меня давно написана одна функция, которая использует построитель отчёта и любую ТЗ в качестве источника данных. А далее либо вывод в ТабДок.Показать() либо сохранить в Excel-файл. И всё там было хорошо, кроме одного "но". Вот эта самая узкая пустая колонка, которая у ТС на скриншоте.

Вот так это выглядело:
ТабДок = Новый ТабличныйДокумент;
Построитель = Новый ПостроительОтчета();
Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТЗ);
Построитель.ВыводитьЗаголовокОтчета = Ложь;
Построитель.Макет = Неопределено;
Макет = Построитель.Макет;
////дальше идёт нужная мне обработка макета, цвета заголовков, ширина колонок и т.д. и т.п....
///...а потом:
Построитель.Макет = Макет;
Построитель.Вывести(ТабДок);


Из табдокумента методом УдалитьОбласть() колонку удалять не вариант - съезжают все колонки, и то, что находилось во 2й колонке "переезжет" в первую узкую... что никуда не годится. 

Я пытался по разному удалить эту колонку из макета программно, писал
Макет.УдалитьОбласть(Макет.Область("C1"),ТипСмещенияТабличногоДокумента.ПоГоризонтали);
и вот так
Макет.УдалитьОбласть(Макет.Область("R1C1:R"+ЧислоСтрокВДокументе+"С1")...
Но ничего не работало.

Сегодня я догадался написать в коде после "Макет = Построитель.Макет;" вот это:
Макет.Показать();

И всё встало на своим места. Открылся дефолтный макет построителя, и в нём, если выделить эту первую узкую колонку, то выделяются не все строки макета, а только строки 4,5,6.

И вот что я написал:
Макет.УдалитьОбласть(Макет.Область(""R4C1:R6C1""),ТипСмещенияТабличногоДокумента.ПоГоризонтали);

И, ура! Эта колонка пропала из ТабДокумента :zebzdr:

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск