1с скд основной макет оформления не работает

Макет оформления в отчете с несколькими СКД

Понадобилось в созданный ранее отчёт добавить вторую схему компоновки данных.

с выбором варианта на форме отчёта.

Методика обработки смены схемы и формирование отчёта по выбранной схеме многократно и достаточно подробно описана на просторах сети. Поэтому весь необходимый для этого код заработал сразу.

Но обнаружилась проблема с макетами оформления. В обеих СКД был задан макет оформления «Основной». Но вместо привычного оформления в песочных тонах отчёты получались бесцветными. Не как «Без оформления» — там вообще нет границ ячеек.

А с границами, но без цвета группировок.

Что характерно, если для оформления выбрать другой макет — Арктика, Зеленый, Античный . — оформление работает корректно, с цветовой раскраской.

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

Поиск решения привел к тому, что в макеты отчёта был добавлен макет оформления.

Для макета оформления был задан стандартный макет «Основной».

В модуле объекта в процедуру ПриКомпоновкеРезультата были добавлены необходимые строки.

И казалось бы всё должно работать! Но нет! Отчёт по обеим СКД упорно продолжал формироваться без цветового оформления.

В результате экспериментов отчёт всё таки заработал как надо. Оказалось, что нужно было всего-то вообще отключить макет оформления в обеих СКД.

Мораль сего опуса проста. Макет оформления, заданный в СКД имеет приоритет перед макетом оформления заданным программно в процедуре ПриКомпоновкеРезультата в модуле объекта. То есть если хотите, чтобы применился макет заданный программно, отключите макет оформления в выбранной СКД.

Источник

СКД. Шаг 3. Используем макеты для оформления отчета

Введение. Описание задачи

Всем привет, всех с наступившим Новым 2020 годом! В данной статье я предлагаю вам разобрать такой интересный функционал как использование собственных макетов в системе СКД. Отмечу, что за свою достаточно продолжительную практику (порядка 15 лет), я, наверное, всего пару-тройку раз встречал в чужих отчетах (не в типовых) использование данной возможности.

Сообщество приветствует чистоту и оптимизацию исполняемого кода обработок или отчетов, но могу точно сказать по своему опыту, что в сотнях отчетах, прошедших через меня – я не встречал ни одного, который бы хотелось отности к категории «идеальный, по всем правилам», с которого бы хотелось взять пример. 99 % отчетов сделаны «на отвяжись» по принципу — работает, данные показывает, не важно сколько он там строится по времени. Но и многие пользователи даже не могут объяснить, как получается та или иная цифра в отчетах (особенно производственных). Хотя, система компоновки данных, по-моему мнению, — это даже пользовательский функционал в какой-то степени. Какие-либо «улучшения» отчета с использованием всех возможностей СКД – это что-то из ряда вон выходящее.

Ну да ладно. Давайте рассмотрим использование собственного макета в отчете на СКД. Надеюсь, что этот функционал будет полезен вам для использования в ваших разработках. Постараюсь описать как можно подробнее и проще — «на пальцах». Итак, начнем с подготовки самого отчета в СКД.

Подготовка отчета в СКД

Воспользуемся типовой конфигурацией Розница 2.2 на платформе предприятия 8.3.15.1700. Подготовим простой отчет для определения количества и суммы продаж по организации/кассе в разрезе дней за выбранный период.

Для этого напишем запрос по регистру накопления «Продажи» (обороты) в макете компоновки данных. Поскольку, в этом регистре нет данных о КассеККМ, с которой была совершена продажа, то мы левым соединением с регистратором получаем кассу продажи из документа. С условием, что документ-регистратор является отчетом розничных продаж. Так же я добавлю несколько вспомогательных полей, которые потребуются в отчете на основе собственного макета.

В общем виде набор данных запрос выглядит вот так:

На закладке «Ресурсы» определим какие из полей являются ресурсами и выберем выражение расчета этого поля по другим колонкам.

Рис.1. Определяем ресурсы отчета.

Далее, определим параметры данного отчета. В качестве «Периода» реализуем задействуем такую возможность СКД как тип «СтандартныйПериод» (можете здесь поставить «галочку» для дальнейшего использования в ваших СКД отчетах вне зависимости как вы будете их реализовывать). См. как это сделать:

Рис.2. Создаем параметр «Период» в отчете на основе дат начала и окончания.

Затем, в «Настройках» выбираем доступные поля и ресурсы для отображения отчета.

Рис.3. Создаем саму таблицу отчета с выбранными полями.

В пользовательских настройках отчета включаем созданный нами параметр «Период«:

Рис.4. Включаем в пользовательские настройки параметр «Период».

Все, самое основное выполнено — этого достаточно, чтобы отчет выводил информацию. Отчет выглядит вот так:

Рис.5. Сформированный отчет в СКД в «базовом варианте».

Обычно, на этом все и заканчивается. Но, я продолжу и перехожу к работе с собственными макетами в следующем разделе.

Реализация собственного макета оформления. Подготовка настроек

Начну с того, что создам копированием новый вариант настройки отчета. Пусть он называется «Основной1«. В общем виде эта настройка выглядит вот так:

Рис.6. Настройка отчета для собственного макета.

Распишу каждую строку данной настройки:

Период — этот параметр отвечает за день, на который будут создаваться отчеты по кассам. Далее, к этому параметру я «прикручу» дополнительные реквизиты и буду использовать его как «шаблон».

Касса, НомерОтчета, Магазин, ДатаОтчета (СводныйЗаголовок) — в разрезе этой группы параметров (своего рода «фильтр») я буду отбирать данные продаж номенклатуры.

Далее, идут строки (в скобках я присваиваю персональное имя (правой кнопкой — «Установить имя. «) каждой строке — ШапкаМ, СтрокаТаблицы, ИтогиТаблицы):

ДетальныеЗаписи (ШапкаМ)

ДетальныеЗаписи (СтрокаОтчета)

ДетальныеЗаписи (ИтогиТаблицы)

ДетальныеЗаписи — это «набор реквизитов«, который будет использоваться в этом «блоке».

Наборы реквизитов для группировок такие:

Для (СводныйЗаголовок) — Касса, НомерОтчета, Магазин, ДатаОтчета,

для (ШапкаМ) — реквизиты отсутствуют,

для (СтрокаОтчета) — Номенклатура, КоличествоОборот, СтоимостьОборот,

для (ИтогиТаблицы) — КоличествоОборот, СтоимостьОборот.

Везде снимаем галку «Авто».

Реализация собственного макета оформления. Рисуем новый макет

Переходим на закладку «Макеты» и начнем создавать требуемый макет. В итоговом виде, он выглядит вот так:

Рис.7. Настройка отчета для собственного макета.

Опишу процесс создания этого макета.

Процесс создания печатной формы макета СКД не отличается от процесса создания печатных форм документов. Также есть параметры, шаблоны и текст. В данном примере, я использую параметры в таблице продаж, шаблоны — в шапке отчета.

Все, макет нарисован. Он выглядит так как нам нужно.

Следующим шагом, в окне Макет — Область я создаю записи о ранее созданных группировках, попутно указывая значения их параметров. Это выглядит вот так:

Рис.8. Добавлена группировка «СводныйЗаголовок» и заполнены параметры макета для этой группировки.

Рис.9. В группировке «ИтогиТаблицы» используем параметры «КоличествоОборот» и «СтоимостьОборот».

Рис.10. «СтрокаОтчета» — основная группировка отчета — Номенклатура, СтоимостьОборот, КоличествоОборот.

СводныйЗаголовок, ИтогиТаблицы, СтрокаОтчета являются «Макетами группировки«. ШапкаМ — это «Макет заголовка группировки«, Период — это «Параметр«.

Далее, к каждому макету привязываем область (см. рис.10). Область можно «накликать», удерживая кнопку «Ctrl».

К параметру «Период» я привязал целый шаблон.

Так, печатная форма в СКД нарисована, макеты группировок добавлены и их параметры заполнены, области привязаны, протестируем обработку, перейдя к следующему разделу.

Тестирование задачи

Теперь, предлагаю протестировать задачу. В нашем СКД отчете «вшито» две настройки «Основная» и «Основная1» с использованием собственных макетов.

Проверим работоспособной каждой из них:

Запускаем предприятие, выбираем период и формируем отчет в настройке «Основная1» (с макетом), такая картина:

Рис.11. Отчет СКД с использованием макета.

В разрезе периода 01.08.2019 — 04.08.2019 (с общей выручкой), в разрезе касс (по выручке) и что наторговали и за сколько в разрезе каждой кассы.

Перевыбираем вариант настройки «Основная» и получаем уже эти же данные, но в другой компоновке, но без использования макета. Получилось вот так:

Рис.12. Отчет СКД без использования макетов. Период использует шаблон.

Данные совпали, все работает. Переходим к разделу «Выводы».

Выводы

В данной публикации я наглядно показал вам базовый принцип работы с макетами в СКД. Приведенный пример не сложный, но наглядно иллюстрирует алгоритм настройки, позволяющий из одних и тех же данных создать несколько вариантов отчета (в данном случае с использования макета и без него). Так же, пример будет полезен тем, кто хочет научиться строить отчеты в СКД с нуля, дорабатывать их, не разрушая их целостность на корню.

Еще раз хочу отметить, что функционал использования макетов я очень редко встречал в отчетах СКД других программистов. Обычно — это «основная» компоновка, а как она собирается — по каким данным — этого уже никто не помнит. Как смешно не звучит, но это реалии.

Рис.13. Выбор варианта настройки отчета.

Какой вывод можно сделать сразу (я осторожно напишу) — возможный частичный отказ от внешних печатных форм документов. Функционал макетов СКД позволяет создать печатную форму или группу печатных форм для документов конфигурации. Как вариант — это возможно запустить «поток» печатных форм документа или даже нескольких документов разного вида при условии корректного составления запроса или «правильной внешней» таблицы для передачи в СКД.

Отмечу, что макеты «накликиваются» без написания кода. Отсюда делаю еще один вывод — написанный запрос (переданная таблица) в СКД — это уже 90% решения вашей типовой задачи — будь то отчет или «поток» печатных форм.

За исключением запроса (язык запросов) — в примере нет программирования.

Еще один плюс — это возможно «засунуть» в параметр шаблон-конструкцию, как сделано на примере параметра «период», где я использую шаблон из макета.

Так. Пожалуй, Все. Пример использование макетов в СКД я описал из собственного опыта и постарался сделать данный материал как можно подробнее, надеюсь, что он вам будет полезен.

Было бы приятно, чтобы вы поддержали данную статью, в свою очередь постараюсь написать еще что-нибудь полезное и интересное для вас. Пусть эта статья будет для вас своего рода «шпаргалкой» для запоминания этого алгоритма, как и для меня в частности.

Спасибо, что дочитали статью до конца. Всем привет!

Предыдущие материалы

Так же, прошу посмотреть мои предыдущие статьи по использованию системы компоновки данных:

Источник

Читайте также:  Win 10 настроить чувствительность мыши
Оцените статью