[ Вопрос дня ] Как программно настроить оформление заголовка у группировки полей ресурсов в отчете на СКД?

Доброго дня, коллеги!

Наверняка среди ваших заказчиков найдутся такие, которым очень важен внешний вид разрабатываемого продукта, с ними очень долго и подробно согласовывается цвет, размер, порядок и прочие “бантики”.  Этого может требовать специфика бизнеса клиента или его личностные характеристики. Чтобы не раздражаться и уверенно отвечать “Ок. Без проблем. Я это сделаю” приходите на курс по СКД.

Вопрос

Добрый день! Как настроить оформление (шрифт, центрирование) у заголовка собственной группировки полей ресурсов? То есть я группирую поля Остаток в ед. хранения и Остаток в ед. отчета в группу ОСТАТОК. Интересует оформление заголовка самой группы ОСТАТОК.

Ответ

Добрый день!

Для этого можно использовать прием из практического задания 17.1 – программная работа с макетом компоновки.

Создадим в настройках компоновки группу Обороты:

Группа Обороты

В модуле объекта реализуем собственный вывод отчета, для ячейки со значением Обороты выполним центрирование:

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)

    СтандартнаяОбработка = Ложь;
   
    Массив = Новый Массив;
    НастройкиКомпоновки = КомпоновщикНастроек.ПолучитьНастройки();

    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиКомпоновки, ДанныеРасшифровки);

    Для Каждого ТекМакет Из МакетКомпоновки.Макеты Цикл

        Если НЕ ТипЗнч(ТекМакет.Макет) = Тип("МакетОбластиКомпоновкиДанных") Тогда
            Продолжить;
        КонецЕсли;

        Для Каждого Макет Из ТекМакет.Макет Цикл
           
            Для Каждого Ячейка Из Макет.Ячейки Цикл
                Для Каждого Элемент Из Ячейка.Элементы Цикл
                   
                    Если Элемент.Значение = "Обороты" Тогда

                        Параметр = Ячейка.Оформление.Элементы.Найти(Новый ПараметрКомпоновкиДанных("ГоризонтальноеПоложение"));
                        Параметр.Значение = ГоризонтальноеПоложение.Центр;
                        Параметр.Использование = Истина;

                    КонецЕсли;
                   
                КонецЦикла;
            КонецЦикла;
           
        КонецЦикла;

    КонецЦикла;

    ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки);

    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
    ПроцессорВывода.Вывести(ПроцессорКомпоновки);

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

Получится вот такой отчет:

Ведомость по товарам на складах

Это пример разобранного вопроса из Мастер-группы курса
Профессиональная разработка отчетов в 1С 8.3 на СКД.

Описание курса и примеры видео

Комментарии / обсуждение (3):

    • Василий Ханевич

      Добрый день!
      Не придумал другого способа, кроме программной работы.
      Можно было бы условное оформление использовать, но в нем в качестве оформляемых полей указываются только сами поля, а не группы.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Вход на сайт

Зарегистрироваться

Подтверждение регистрации будет отправлено на указанный e-mail.

Я подтверждаю, что ознакомлен(а) с Пользовательским соглашением, принимаю его условия и даю свое согласие на обработку моих персональных данных.

Восстановить доступ

E-mail или логин

Ссылка на создание нового пароля будет отправлена на указанный e-mail.