В начало

Прайс с жирными группами

 

Имеется справочник «Номенклатура», в котором записаны товары и услуги с реквизитами: «Услуга», «ЕдиницаИзмерения» и «ЦенаПродажи».

Рис. 1. Содержимое справочника «Номенклатура»

 

            Необходимо создать отчет в виде прайс-листа, в котором будет производиться вывод товаров и услуг по столбцам: Код, Наименование, Цена. При этом группы выделять жирным шрифтом.

            Для начала создаем новый отчет, в нем создаем форму элемента и макет. На макете располагаем три области: Шапка, Группа, Элемент. У группы выделяем жирным шрифтом элемент «Наименование».

Рис. 2. Макет отчета «Прайс лист»

 

            Далее переходим в модуль отчета и записываем следующие процедуры.

 

Листинг 1

&НаКлиенте

Процедура СоздатьПрайсЛист (Команда)

      ЗаполнитьТаблДок (ТаблДок, ПечататьТолькоТовары);

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

 

&НаСервереБезКонтекста

Процедура ЗаполнитьТаблДок (ТаблДок, ПечататьТолькоТовары)

      ТаблДок.Очистить();

     

      //=================

      //Получаем ОБЪЕКТЫ

      //=================

      Макет = Отчеты.ПрайсЛист.ПолучитьМакет("Макет");

      Область_Ш = Макет.ПолучитьОбласть("Шапка");

      Область_Г = Макет.ПолучитьОбласть("Группа");

      Область_Э = Макет.ПолучитьОбласть("Элемент");

           

      //==================================

      //Заполняем и выводим ШАПКУ таблицы

      //==================================

      Область_Ш.Параметры.ДатаОтчета = Формат(ТекущаяДата(), "ДЛФ=DD");

      ТаблДок.Вывести(Область_Ш);

     

            //Выбираем по ГРУППАМ

      Выборка = Справочники.Номенклатура.ВыбратьИерархически();

      Пока Выборка.Следующий() Цикл

            Если Выборка.Услуга И ПечататьТолькоТовары Тогда

                  Продолжить;

            КонецЕсли; 

            //==================

            //ЗАПОЛНЯЕМ области

            //==================

            Область_Г.Параметры.Наименование = Выборка.Наименование;

            Область_Э.Параметры.Код = Выборка.Код;

            Область_Э.Параметры.Наименование = Выборка.Наименование;

            Область_Э.Параметры.ЦенаПродажи = Выборка.ЦенаПродажи;

           

            //================

            //ВЫВОДИМ области

            //================

            Если Выборка.ЭтоГруппа

                  Тогда ТаблДок.Вывести (Область_Г)

                        Иначе ТаблДок.Вывести (Область_Э)

            КонецЕсли  

           

      КонецЦикла;

     

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

            Полученный результат формирования прайс листа показан ниже.

Рис. 3. Свежесформированный отчет

 

ПРИМЕЧАНИЕ: проверено на «1С: Предприятие» версии 8.2.