Две схемы СКД в одном отчете с пользовательскими параметрами

Публикация № 1133260

Разработка - Практика программирования

СКД Две схемы Начинающим

17
Простая реализация разных по типу отчетов в одном. Применение нескольких схем компоновки с корректной передачей пользовательских параметров.

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

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

Пример реализации ниже:

Создаем два реквизита(булево). Реквизит Изменение выносим на форму - для смены Схемы компоновки. 

Соответственно создаем два макета, например я использовал в тестовой конфе следующие:

 

Код модуля формы:

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
   
Отчет.ПроверкаНаИзменение = Ложь;
КонецПроцедуры

&НаКлиенте
Процедура ИзменениеПриИзменении(Элемент)
   
Отчет.ПроверкаНаИзменение = Истина;
КонецПроцедуры

 

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

   
СтандартнаяОбработка = Ложь;
    Если
Изменение Тогда
       
СхемаКомпоновкиДанных = ПолучитьМакет("Макет");
    Иначе
       
СхемаКомпоновкиДанных = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
    КонецЕсли;

   
// Загружаем настройки по умолчанию, только если изменили Схему компоновки
   
Если ПроверкаНаИзменение Тогда
       
КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию);
    КонецЕсли;

   
Настройки = КомпоновщикНастроек.ПолучитьНастройки();
   
ПроверкаНаИзменение = Ложь;

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

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


Т.е. в процедуре ПриКомпоновкеРезультата() выбираем макет компоновки (если на форме установлена галка в реквизите Изменение, то выбирается схема компоновки Макет, иначе Основная схема).

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

Результат: работающие пользовательские параметры при смене схемы компоновки

 

Заранее извините, если баян, велосипед и т.п., :)

17

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. Zircool 160 10.10.19 13:31 Сейчас в теме
Для подобной задачи используют вложенные схемы https://its.1c.ru/db/pubcomplexreports#content:59:hdoc:h56
3. evgeni-red 42 10.10.19 15:22 Сейчас в теме
(1)Согласен, но в предложенном варианте достаточно просто добавить существующие схемы СКД.
2. leosoft 143 10.10.19 13:34 Сейчас в теме
Не пойму - при смене схемы надо автоматом изменить состав пользовательских настроек еще до
формирования отчета. Как Вы это делаете? И еще вопрос - насколько корректно в хранилище
запоминаются текущие настройки?
4. evgeni-red 42 10.10.19 16:08 Сейчас в теме
Напишите ваше сообщение
(2) При смене схемы формируется отчет на новой схеме с параметрами по умолчанию. При следующем формировании отчет сформируется с указанными параметрами. Тек настройки не запоминаются - мы же все время со сменой схемы грузим настройки по умолчанию
5. leosoft 143 10.10.19 18:40 Сейчас в теме
(4) Грузите когда? В момент формирования отчета, а не в момент смены схемы?
Bassgood; +1 Ответить
6. evgeni-red 42 14.10.19 12:27 Сейчас в теме
(5)
Настройки по умолчанию грузим в этой строчке, в момент формирования отчета - но только если изменилась схема :)
КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию);
Оставьте свое сообщение

См. также

Альтернативный способ задания расшифровки СКД-отчета 9

Статья Программист Нет файла v8 v8::СКД Бесплатно (free) Практика программирования

Задание расшифровки у отчета, выведенного с помощью СКД, как будто он был выведен традиционным способом. Изменения конфигурации при этом минимальны, создание формы у отчета не требуется, не нужно писать "простыни" кода.

11.11.2019    719    Serge R    4       

Лайфхак работы с СКД. Собираем отчет. 59

Статья Программист Бизнес-аналитик Пользователь Стажер Нет файла v8::СКД 1cv8.cf Бесплатно (free) Практика программирования

В этой статье я опишу небольшой "лайфхак" по сборке отчетов в СКД. Думаю, этот подход будет интересен тем, кто хочет быстро оформить отчет.

25.10.2019    5461    aximo    22       

Немного про СКД. Характеристики и проверка пустого отчета 75

Статья Программист Нет файла v8::СКД 1cv8.cf Бесплатно (free) Практика программирования

Пример использования характеристик в СКД и программная работа с ними. А также описание проверки результата отчета на заполненность.

10.10.2019    3592    YPermitin    7       

Полезняшки по СКД и построителям. Просто код 45

Статья Программист Нет файла v8 v8::СКД Бесплатно (free) Практика программирования Универсальные функции

Полезные процедуры и функции для работы с построителями и СКД. Просто исходник.

10.10.2019    4012    Yashazz    45       

Три способа создания одного отчета на СКД 80

Статья Программист Нет файла v8 v8::СКД ERP2 УТ11 КА2 Бесплатно (free) Практика программирования

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

08.10.2019    5147    ids79    23       

СКД. Отчеты с картинками 184

Статья Программист Нет файла v8::СКД 1cv8.cf Бесплатно (free) Практика программирования Работа с интерфейсом

Решение популярных кейсов с картинками в отчетах на СКД.

25.09.2019    5782    YPermitin    24       

СКД не только для отчетов 140

Статья Программист Нет файла v8::СКД 1cv8.cf Бесплатно (free) Практика программирования

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

18.09.2019    8094    YPermitin    31       

Агрегатные функции СКД, о которых мало кто знает 341

Статья Программист Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования

Пользуетесь ли Вы всеми возможными агрегатными функциями, которые предоставляет система компоновки данных? Если Вы используете только: СУММА, КОЛИЧЕСТВО, МИНИМУМ, МАКСИМУМ, СРЕДНЕЕ, то эта статья для Вас.

05.09.2019    12939    ids79    44       

Функции СКД: ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив 252

Статья Программист Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования

Подробное описание и использование внутренних функций системы компоновки данных: Вычислить, ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив, ВычислитьВыражениеСГруппировкойТаблицаЗначений.

08.08.2019    13967    ids79    30       

СКД - наборы данных и связи между ними, создание собственной иерархии, вложенные отчеты 130

Статья Программист Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования

Набор данных объект. Использование в схеме компоновки нескольких наборов данных. Различные варианты связи наборов: объединение, соединение. Использование иерархии в отчетах на СКД. Создание собственной иерархии, иерархия детальных записей. Использование вложенных схем в отчетах на СКД.

26.07.2019    12586    ids79    6       

СКД - использование расширений языка запросов, секция ХАРАКТЕРИСТИКИ 144

Статья Программист Нет файла v8 v8::СКД Бесплатно (free) Инструментарий разработчика Практика программирования

Автоматическое и не автоматическое заполнение полей компоновки данных. Использование расширений языка запросов для СКД «{…}», секция ВЫБРАТЬ, секция ГДЕ, параметры виртуальных таблиц. Автоматизированное использование дополнительных данных в запросе: секция ХАРАКТЕРИСТИКИ.

17.07.2019    11103    ids79    27       

Пользовательские настройки системы компоновки данных 88

Статья Программист Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования Работа с интерфейсом

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

09.07.2019    7736    ids79    0       

"Меньше копипаста!", или как Вася универсальную процедуру писал 183

Статья Программист Стажер Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования Разработка

Программист Вася разбирает подход создания универсальных методов на примере программного вывода СКД.

04.07.2019    7789    SeiOkami    49       

Работа с настройками системы компоновки данных 107

Статья Программист Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования

Варианты отчетов, работа с настройками вариантов: структура группировок, поля отчета, отборы, сортировка, условное оформление, другие настройки, настройки отображения диаграмм.

02.07.2019    12514    ids79    8       

Создание отчетов с помощью СКД - основные понятия и элементы 208

Статья Программист Нет файла v8 v8::СКД Бесплатно (free) Практика программирования Математика и алгоритмы

Основные принципы работы СКД. Понятия схемы компоновки и макета компоновки. Описание основных элементов схемы компоновки: наборы данных, поля, вычисляемые поля, ресурсы, параметры.

25.06.2019    20879    ids79    17       

Не провоцируйте СКД, или пример "как не надо" 52

Статья Программист Нет файла v8::СКД 1cv8.cf Бесплатно (free) Практика программирования Разработка

Пример того, что не нужно использовать в запросах, чтобы не провоцировать СКД.

10.06.2019    7846    SeiOkami    91       

Еще один способ нестандартной расшифровки отчета. Без использования обработчиков формы. Для ленивых 92

Статья Программист Нет файла v8::СКД 1cv8.cf Бесплатно (free) Практика программирования Разработка

Лень+ СКД. Еще один нестандартный способ расшифровки отчета. Без использования обработчиков формы. Только макет компоновки и модуль отчета. Весь исходный текст в статье.

16.05.2019    5982    tusv    55       

Расшифровка отчета на СКД с детализацией по выбранному полю на основе БСП 92

Статья Программист Нет файла v8 v8::УФ v8::СКД 1cv8.cf Россия Бесплатно (free) Практика программирования Работа с интерфейсом Разработка

В данной статье рассмотрим механизм работы с расшифровкой отчета, созданного при помощи системы компоновки данных, в управляемом приложении. Показывать буду на примере реальной задачи. Условие: использовать имеющиеся в конфигурации механизмы БСП, с минимальными и "правильными" изменениями. Расшифровка должны быть двух видов на каждом поле: 1. Открывать ссылочный объект 2. Открывать новую форму с детализацией табличной части документа. Собственно ради второго пункта и писалась статья, в основном для себя, чтобы не забыть.

14.05.2019    8373    Viktor_Ermakov    6       

Разворачивание таблицы свойств и значений по колонкам через СКД 18

Статья Программист Стажер Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования Разработка

СКД! Юниоры 1С начинают паниковать, когда слышат эту аббревиатуру. Хороший пример, упрощающий жизнь начинающему разработчику, представлен ниже.

12.05.2019    3987    Eret1k    0       

Выгрузка документа по условию 5

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Разработка

Что делать, если документы нужно выгружать не все подряд, а по какому-то фильтру: статусу, дате, набору условий... А что если он соответствовал этим условиям, а потом перестал? А если потом опять начал? Такие ситуации заставили попотеть не одного программиста.

25.04.2019    5939    m-rv    2       

Как прикрутить ГУИД к регистру сведений 23

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Перенос данных из 1C8 в 1C8 Разработка

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

16.04.2019    8585    m-rv    16       

"Склеивание" отчетов на СКД 23

Статья Программист Нет файла v8::СКД Бесплатно (free) Практика программирования Разработка

Методика программного объединения данных нескольких отчетов в итоговый сводный. По ссылке опубликован пример на реальных данных и код отчета: https://infostart.ru/public/1017891/

10.03.2019    4911    bivmail    2       

Добавление отчетов в типовые конфигурации 1С 206

Статья Программист Нет файла v8::УФ v8::СКД 1cv8.cf Бесплатно (free) Практика программирования Универсальные функции БСП (Библиотека стандартных подсистем)

Описание различных способов добавления общих и контекстных отчетов в конфигурации 1С, построенные на базе БСП. Основные моменты и нюансы.

07.03.2019    26036    ids79    33       

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

Статья Программист Нет файла v8 v8::СКД Бесплатно (free) Практика программирования Разработка

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

17.02.2019    4570    srub    10       

Информирование пользователя. Работа с объектом «СообщениеПользователю» 252

Статья Программист Нет файла v8::УФ 1cv8.cf Бесплатно (free) Практика программирования Разработка

Различные варианты и нюансы использования объекта СообщениеПользователю и другие способы информирования пользователя: без привязки к какой-либо форме и с выводом сообщения в отдельном окне.

15.02.2019    19027    ids79    34       

Вывод результата компоновки в таблицу и дерево значений 29

Статья Программист Нет файла v8::СКД 1cv8.cf Бесплатно (free) Практика программирования Разработка

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

14.02.2019    4442    kasper076    5       

Ещё раз о суммировании группировок в СКД 60

Статья Программист Нет файла v8 v8::СКД 1cv8.cf УУ Производство готовой продукции (работ, услуг) Бесплатно (free) Практика программирования Разработка

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

11.02.2019    7232    Dioneo    17       

Еще раз о расшифровке для СКД 23

Статья Программист Нет файла v8 v8::СКД Бесплатно (free) Практика программирования

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

27.12.2018    5354    scientes    2       

Заголовок с параметром в отчете СКД 30

Статья Программист Нет файла v8 v8::СКД 1cv8.cf Россия Бесплатно (free) Практика программирования

Статья, как сделать заголовок с параметром в отчете СКД.

19.12.2018    5881    user913680    16       

Новый подход к обмену данными EnterpriseData 207

Статья Программист Нет файла v8 v8::УФ Россия Бесплатно (free) Практика программирования Обмен через XML

Хочу предложить Вашему вниманию цикл статей, посвященных обмену данными через универсальный формат (EnterpriseData или ED).

14.12.2018    23069    ids79    72       

Установка собственных значений полей при программном выводе отчета СКД по имени поля (по принципу "как в макете") 16

Статья Программист Нет файла v8::СКД Бесплатно (free) Практика программирования

При программном выводе отчета на СКД возникает задача заполнить поля своими значениями. Но при поэлементном выводе отчета параметры "обезличены" как П1, П2, П3, ... Как узнать в какое "П" содержит нужное поле и куда устанавливать значение? Статья поможет программистам начинающим освоение СКД и перешедшим на СКД с "макета" ответить на эти вопросы на примере готового решения.

23.11.2018    5395    lmnlmn    0       

Дополнительные реквизиты в типовом отчете и их отсутствие 18

Статья Программист Нет файла v8::СКД 1cv8.cf Бесплатно (free) Практика программирования

Пара Лайфхаков, случайно найденных, когда было лень запускать конфигуратор. Отбор при отсутствии дополнительного реквизита.

18.11.2018    5300    dyuha    0       

Программное заполнение пользовательских параметров и отборов СКД 136

Статья Программист Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования

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

13.11.2018    22084    Unk92    19       

Автоматические и управляемые блокировки применительно к типовым конфигурациям 1С 127

Статья Программист Нет файла v8 v8::blocking 1cv8.cf Бесплатно (free) Математика и алгоритмы Практика программирования

Основные принципы работы с режимами автоматических и управляемых блокировок в 1С Предприятие 8. Теория и применение в типовых конфигурациях: БП, УТ, ЕРП

10.11.2018    22206    ids79    40       

Перевод конфигурации на 8.3.13 17

Статья Программист Нет файла v8 v8::СКД 1cv8.cf Россия Бесплатно (free) Практика программирования

Опыт решения проблем. 1. Проблема с СКД преобразованием запроса при отключении режима совместимости:

06.11.2018    5901    serferian    26       

Вспомогательные инструкции в коде 1С 105

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования

Помогаем редактору кода 1С помогать нам писать и анализировать код.

15.10.2018    21497    tormozit    100       

Приемы работы с СКД: делаем за 5 минут то, на что у других уйдет час 379

Статья Программист Нет файла v8::СКД Бесплатно (free) Практика программирования

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

03.09.2018    32622    SergeyN    26       

Как легко в СКД сделать переключатель: рубли, тыс. руб., млн. руб. 73

Статья Программист Нет файла v8::СКД 1cv8.cf Бесплатно (free) Практика программирования

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

07.08.2018    8801    SayDimas    15       

Повышаем эффективность разработки правил обмена 124

Статья Программист Нет файла v8 КД ОС Бесплатно (free) Практика программирования Перенос данных из 1C8 в 1C8

Как повысить скорость и качество разработки правил обмена? Как вести групповую разработку правил обмена? Как облегчить сопровождение правил обмена после передачи в эксплуатацию? Об этом и многом другом вы можете узнать из этой статьи.

25.06.2018    20145    olegtymko    47       

Как сделать запрос на изменение данных 75

Статья Программист Нет файла v8 v8::Запросы 1cv8.cf Бесплатно (free) Практика программирования

В статье приведены особенности внутренней архитектуры и примеры работы с расширением языка запросов 1С.

01.06.2018    22090    m-rv    21       

О важности псевдонимов полей во временных таблицах и отборах на СКД для производительности 26

Статья Программист Нет файла v8 v8::СКД Бесплатно (free) Практика программирования

Рассмотрена важность правильного указания псевдонимов полей временных таблиц запроса СКД, на которые могут накладываться отборы

29.05.2018    6140    tata_1211    17