СКД: объединение 2-х отчетов в 1
1. Создал 2 макета СКД.
2. В каждом макете создал параметр со списком наименований макетов и вывел его в пользовательские настройки.
3. В модуль объекта добавил следующий код:
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
НаименованиеПараметра = "Продукт";
ИдентификаторПараметра = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти(НаименованиеПараметра).ИдентификаторПользовательскойНастройки;
НастройкаПараметра = КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Найти(ИдентификаторПараметра);
Параметр = ?(НастройкаПараметра <> Неопределено, НастройкаПараметра.Значение, КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти(НаименованиеПараметра).Значение);
Схема = ПолучитьМакет(Параметр);
ПользовательскиеНастройки = КомпоновщикНастроек.ПользовательскиеНастройки;
КомпоновщикНастроек.ЗагрузитьНастройки(Схема.НастройкиПоУмолчанию);
КомпоновщикНастроек.ЗагрузитьПользовательскиеНастройки(ПользовательскиеНастройки);
Вроде бы работает. Всем спасибо за внимание).
Обнаружил еще способ: использование вложенных схем.
1. Создал новую схему без данных, добавил в неё необходимые параметры.
2. Создал необходимые вложенные схемы (через сохранить/загрузить).
3. Параметры вложенных схем привязал к основным параметрам.
4. В настройках (в структуре отчета) добавил 2 вложенных (в виде схем) ранее отчета.
5. Включение/отключение необходимых флагов структуры делаю следующим образом:
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
НаименованиеПараметра = "Продукт";
ИдентификаторПараметра = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти(НаименованиеПараметра).ИдентификаторПользовательскойНастройки;
НастройкаПараметра = КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Найти(ИдентификаторПараметра);
Параметр = ?(НастройкаПараметра <> Неопределено, НастройкаПараметра.Значение, КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти(НаименованиеПараметра).Значение);
Для каждого Эл из КомпоновщикНастроек.Настройки.Структура Цикл
Эл.Использование = Эл.ИдентификаторОбъекта = Параметр;
КонецЦикла;
Не знаю, какой из этих способов лучше. Хотелось бы обойтись совсем без кода.
Как объединить два отчета в 1с
Можно ли вывести два запроса в одном?
можно ли вывести строки двух таблиц с помощью запроса, к примеру: select row1, row2 from tab1;.
Вывести строку в два столбца: в одном строчные буквы, во втором прописные
помогите нубу написать программу) Вводные данные: 20 букв Представление выводных данных: два.
Два массива расположить в одном массиве по возрастанию, вывести массив в Edit
Помогите пожалуйста, два массива расположить в одном массиве по возрастанию, вывести массив в.
Написать программу, создающую два потока, которые выполняются в одном адресном пространстве (в одном процессе)
Здравствуйте! Есть задание: Написать программу, создающую два потока, которые выполняются в одном.
Секреты «1С:ЗУП»: как одновременно показать на экране два документа
Мы продолжаем нашу серию «Секреты 1С:ЗУП», в которой регулярно рассказываем об интересных «фишках» в программе.
В программе «1С:Зарплата и управление персоналом 8» ред. 3 предусмотрена возможность одновременного отображения двух открытых документов или отчетов в одном рабочем окне.
Для одновременного просмотра двух открытых документов или отчетов необходимо установить курсор на окно документа или отчета на панели открытых, нажать правой клавишей мыши и выбрать в списке Показать вместе с другим. Отобразить два документа можно вертикально или горизонтально (рисунок).

Рисунок. Настройка одновременного отображения списка документов «Начисление зарплаты и взносов» и «Ведомость в кассу (создание)» горизонтально в одном рабочем окне в программе «1С:Зарплата и управление персоналом 8» ред. 3
Другие открытые документы или отчеты будут отображаться по умолчанию отдельно, не закрывая друг друга. Их также можно объединить в единое окно между собой.
Внимание! Одновременное отображение двух открытых документов или отчетов является персональной настройкой, и каждому пользователю программы настраивается отдельно. После завершения работы с программой настройка сбрасывается. При повторном запуске программы все открытые окна документов или отчетов будут отображаться по умолчанию отдельно.
Другие материалы этой серии можно найти по тэгу секреты 1С:ЗУП. Или просто следите за нашими новостями!
Вывод двух независимых таблиц в отчёте средствами СКД
Возникла задачи создать отчёт по взаиморасчётам с контрагентами в валюте взаиморасчётов с выводом таблицы курсов валют на текущую дату. Отчёт, разумеется, должен быть реализован с помощью системы компоновки данных.
Ниже приведён алгоритм создания подобного отчёта.
1. Создать новый отчёт, открыть основную схему компоновки данных.
2. Добавить 2 набора данных типа «запрос». В первом наборе данных будем получать данные по взаиморасчётам, во втором — курсы валют.
Важно! Псевдонимы полей запросов не должны повторяться.



3. На вкладке «Настройки» создать новую группировку без заполнения значения «Поле».


4. Настроить список полей для вывода первой таблицы (Курсы валют).

5. Повторить пп.3 и 4 для второй таблицы (Взаиморасчёты).

6. Сохранить отчёт.
В результате сформированный отчёт будет иметь подобный вид:

Пример отчёта для конфигураций Управление торговлей 10.3 и Управление производственным предприятием 1.3
Несколько схем данных в одном отчете 1C СКД
Приветствую, мои маленькие любители длинных запросов … и отчетов 1C на СКД.
Сегодня мы на готовом примере рассмотрим следующую задачу: использовать несколько схем данных в одном отчете СКД.
Стоить заметить, что данная реализация не является единственно возможной и не претендует на «истину в последней инстанции». Выбор конкретного способа определяется нюансами конкретной задачи.
Синтетический пример будет реализован в демо-конфигурации Управление торговлей, редакция 11.
- Для начала создадим внешний отчет и добавим его реквизит ИмяМакета, тип Строка. В данном реквизите мы будем хранить имя текущего активного макета. Оно нам потребуется при формировании отчета.
- Добавим форму отчета. Она необходима для выбора активного макета. Данную форму можно (и нужно) скопировать из состава БСП, ОбщиеФормы — ФормаОтчета. Так мы получим все возможности типовых отчетов СКД с минимальным затратами (хотя и потребуются некоторые доработки), но автоматически генерируемая форма также подойдет.
- Добавим 2 макета, тип СхемаКомпоновкиДанных.
Первый макет СхемаПроизводственныйКалендарь, куда выберем данные из регистра ДанныеПроизводственногоКалендаря с отбором по параметру &Дата.
Второй макет СхемаФизЛица, куда выберем данные из справочника ФизическиеЛица с отбором по полу
Как видим, ни параметры, ни поля, ни данные в этих макетах не совпадают. Укажем использование обоих параметров «Всегда» и добавим их для наглядности в пользовательские настройки.
Стоит заметить, что мы не указываем основную схему в отчете.
Заготовка отчета готова. Теперь перейдем непосредственно к коду выбора, смены и формирования макета
Для начала необходимо в процедуре формы ПриСозданииНаСервере нарисовать кнопку, заполнить список макетов и выбрать один из макетов в качестве «начального».
Вот так это выглядит на форме:

Затем пропишем обработчик для команды «ВыбратьМакет».
Думаю, из построчного комментария к листингу кода все предельно понятно. Самый интересный момент, это «подмена» пользовательских настроек настройками по умолчанию из схемы. Для этого используется объект ИсточникДоступныхНастроекКомпоновкиДанных. В результате инициализации компоновщика настроек будут заменены все пользовательские настройки, а именно отборы, группировки, выбранные поля и т.д.
/>
Как видим, пользовательские отборы при смене макета так же изменились.
Остается лишь подменить стандартную процедуру формирования отчета. Для этого открываем модуль объекта и формируем СКД программно в процедуре ПриКомпоновкеРезультата.
Таким образом, мы получили два несвязанных макета СКД в одном внешнем отчете, между которыми пользователь может произвольно переключаться.
Как объединить два отчета в 1с
Войдите как ученик, чтобы получить доступ к материалам школы
Система компоновки данных 1С 8.3 для начинающих: объединяем наборы данных
Автор уроков и преподаватель школы: Владимир Милькин
На прошлом уроке мы познакомились с соединением наборов данных. Сегодня же мы научимся объединять различные наборы данных в один набор.
Ставим цель
- Создать новый отчёт, в котором будут выводиться закупки (дата, поставщик) и продажи (дата, клиент) одновременно.
- Для этого сделаем два отдельных набора данных с выборкой из таблиц документов «ПоступлениеЕды» и «ПродажаЕды», а затем объединим их в один набор.
Создаем новый отчет
Открываем базу «Гастроном» в конфигураторе и через главное меню «Файл->Новый. » создаём отчёт:
Вид документа — «Внешний отчет»:
В форме нового отчёта указываем имя «Урок7» и нажимаем кнопку «Открыть схему компоновки данных»:

Соглашаемся с именем макета по умолчанию:
Создаем первый набор данных
Создаём новый набор данных — запрос (через зелёный плюсик), выделяем его и вызываем конструктор запроса:

Делаем выборку из таблицы документов «ПоступлениеЕды» следующих полей:
Вот он, текст нашего запроса к таблице по закупкам:

Создаем второй набор данных
Выделяем мышкой пункт «Наборы данных».

. и добавляем ещё один набор данных — запрос:

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

Делаем выборку из таблицы документов «ПродажаЕды» следующих полей:
Текст запроса будет таким:

Сделаем имена более читабельными. Для этого двойным щелчком переименуем «НаборДанных1» в «Покупки» и поле «Дата» в «ДатаПокупки»:

Второй же набор «НаборДанных2» переименуем в «Продажи», а поле «Дата» переименуем в «ДатаПродажи»:

Мы получили два набора данных. В первом — информация по покупкам (дата покупки и поставщик), во втором- информация по продажам (дата продажи и клиент). Давайте попробуем теперь вывести всё это в отчет.
Проверяем результат
Переходим на закладку «Настройки» и нажимаем волшебную палочку для вызова конструктора:

Тип отчета — «Список. «:
Выбираем поля для отчёта из обоих наборов:
Сохраняем отчёт и формируем в режиме пользователя:

Получилось не совсем то, что ожидали. Получилось перекрёстное соединение одного набора данных с другим. А нам нужно именно объединение. Исправим.
Создаем объединение наборов данных
Для этого переходим на закладку «Наборы данных».
Снова выделяем мышкой пункт «Наборы данных».

. и добавляем туда набор данных — объединение:
Видим, что этот набор добавился и у него совершенно другая картинка (не таблица, как у двух других, а два объединяющихся круга):

Затем перетаскиваем мышкой наборы «Покупки» и «Продажи» в «НаборДанных1»:

Вот это и значит, что теперь «Покупки» и «Продажи» будут не соединяться, а именно объединяться в отчёте.
Сохраним отчёт и сформируем в режиме пользователя:

Отлично. То, что надо.
А давайте зададимся целью объединить столбцы «Поставщик» и «Клиент» в один? И пусть этот новый столбец будет называться «Контрагент».
Для этого заходим на закладку «Наборы данных» и меняем имя поля «Поставщик» в наборе «Покупки» на имя «Контрагент»:

Затем в наборе «Продажи» меняем имя поля «Клиент» на имя «Контрагент»:

Переходим на закладку «Настройки», выделяем пункт «Отчет», переходим внизу на закладку «Выбранные поля», удаляем уже не существующие поля «Поставщик» и «Клиент» и перетаскиваем из первой колонки во вторую новое поле «Контрагент»:

Должно получится вот так:

Готово
Сохраняем отчёт и проверяем в режиме пользователя:

Замечательно всё получилось.
Войдите на сайт как ученик
Авторизуйтесь, чтобы получить доступ ко всем материалам школы
Для учеников
Прибегайте к изучению эталонного варианта только после самостоятельного выполнения всех шагов.
На вопросы учеников — отвечаю по почте, но прежде загляните в ЧАВО (ссылка) .
Вывод двух независимых таблиц в отчёте средствами СКД
Возникла задачи создать отчёт по взаиморасчётам с контрагентами в валюте взаиморасчётов с выводом таблицы курсов валют на текущую дату. Отчёт, разумеется, должен быть реализован с помощью системы компоновки данных.
Ниже приведён алгоритм создания подобного отчёта.
1. Создать новый отчёт, открыть основную схему компоновки данных.
2. Добавить 2 набора данных типа «запрос». В первом наборе данных будем получать данные по взаиморасчётам, во втором — курсы валют.
Важно! Псевдонимы полей запросов не должны повторяться.



3. На вкладке «Настройки» создать новую группировку без заполнения значения «Поле».


4. Настроить список полей для вывода первой таблицы (Курсы валют).

5. Повторить пп.3 и 4 для второй таблицы (Взаиморасчёты).

6. Сохранить отчёт.
В результате сформированный отчёт будет иметь подобный вид:

Пример отчёта для конфигураций Управление торговлей 10.3 и Управление производственным предприятием 1.3