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

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

Чтобы объединить два или более набора данных в СКД, необходимо на закладке Наборы данных предварительно создать специальный набор данных — объединение


Получаем вот такую картину


И уже в этот созданный объект добавляем наборы, которые будут непосредственно объединяться. Давайте добавим два набора данных. Один из которых будет запрос, а второй для разнообразия — объект (внешний источник данных). Вот так:


В качестве примера рассмотрим объединение наборов данных с остатками товаров.

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


Для набора данных где используется запрос будем получать данные с использованием остатков вот из такого регистра накопления:


Делаем простейший запрос

ВЫБРАТЬ ОстаткиТоваров.Товар.Представление КАК Товар, ОстаткиТоваров.КоличествоОстаток КАК Остатки {ВЫБРАТЬ Товар, Остатки} ИЗ РегистрНакопления.ТоварыОстатки.Остатки КАК ОстаткиТоваров

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

Теперь обратимся непосредственно к данным
В регистре накопления у меня хранятся следующие остатки товаров

а во внешнем источнике данных вот такая картина

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


В результате выполнения отчета с такими настройками СКД получаем вот такую таблицу

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


И теперь получаем результат без задвоенных строк.

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

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

Внутри этой процедуры будем собирать данные и формировать отчет.
В процедуре ПриКомпоновкеРезультата отключаем стандартную обработку. СтандартнаяОбработка = Ложь;
Затем формируем таблицу значений произвольным образом. Имена колонок таблицы значений должны совпадать с будущими полями набора данных в СКД.:


Для примера добавим три строки данных. Далее по шагам создаем вывод отчета.

  • Из схемы получаем настройки по умолчанию.

  • В соответствующую переменную отправляем данные о расшифровке.

  • Формируем макет с помощью компоновщика макета.

  • Передаём в макет компоновки схему, настройки и данные расшифровки.

  • Выполняем компоновку с помощью процессора компоновки. Для этого выполняем метод процессора компоновки данных Инициализировать(). В качестве параметров передаём макет компоновки данных, внешние наборы данных (тип: Структура, ключ структуры должен совпадать с именем объекта в схеме компоновки данных, значение - сформированная таблица значений), данные расшифровки.

  • Очищаем поле табличного документа.

  • Выводим результат в табличный документ.
В итоге получается следующий код:
СхемаКомпоновкиДанных = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных" ); //Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию; // - Если сделать так, как показано выше(рекомендуют на некоторых ресурсах), то при изменении настроек в режиме клиента // этих изменений Вы не увидите, потому что настройки всегда будут по умолчанию. Как правильно - вариант ниже Настройки = КомпоновщикНастроек. ПолучитьНастройки(); ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных; КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета. Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки); ВнешнийНаборДанных = Новый Структура("ПримерТаблицыЗначений" , ТЗВывод); ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных. Инициализировать(МакетКомпоновки, ВнешнийНаборДанных, ДанныеРасшифровки); ДокументРезультат. Очистить(); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода. УстановитьДокумент(ДокументРезультат); ПроцессорВывода. Вывести(ПроцессорКомпоновкиДанных); Добавляем макет схемы компоновки. Название можем оставить по умолчанию.

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

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

В закладке Настройки с помощью конструктора настроек формируем вариант отчета по умолчанию

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


Вот и все. Достаточно просто, не правда ли?

Получившийся отчет для примера можно скачать

Внимание! Перед вами ознакомительная версия урока, материалы которого могут быть неполными.

Войдите на сайт как ученик

Войдите как ученик, чтобы получить доступ к материалам школы

Система компоновки данных 1С 8.3 для начинающих: представление отчёта в виде диаграммы

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

Ставим цель

  • Сделать копию отчёта с прошлого урока.
  • Вывести те же самые данные в виде диаграммы.
  • При этом сериями (столбцами, ось Y) должны являться продукты, а точками (ось X) - клиенты. Значения столбцов (по оси Y) и будет количество еды, которое заказал данных клиент.

Меняем копию прошлого отчёта

Делаем копию отчёта из прошлого урока под именем "Урок9" и открываем эту копию в конфигураторе базы "Гастроном".

Меняем имя отчёта на "Урок9" и нажимаем кнопку "Открыть схему компоновки данных":

Мы не будем менять наборы данных - наша задача изменить их представление для пользователя.

Поэтому сразу переходим на закладку "Настройки" и обращаем наше внимание на левую колонку с вариантами отчёта.

Мы раньше не работали с этой колонкой, но сегодня я расскажу вам в чём её смысл.

Все настройки которые мы делаем на этой вкладке (при помощи конструктора волшебной палочки или вручную в нижней части) они относятся к одному из вариантов отчёта, который выделен в левой части окна.

По умолчанию этот вариант всегда один и называется "Основной". Вся фишка в том, что в режиме пользователя можно легко переключаться между этими вариантами.

И вот у нас сейчас есть основной вариант, в настройках которого указано - выводить данные в виде таблицы:

Давайте так переименуем этот вариант (двойным щелчком) и основного в "Таблица":

Добавляем новый вариант отчёта

Теперь при помощи плюсика добавим ещё один вариант (куда мы запихаем настройка вывода данных в виде диаграммы):

Сразу назовём этот вариант "Диаграмма":

Настраиваем новый вариант отчёта

Как видите справа от этого варианта (мы его выделили) пусто, то есть нет никаких настроек. Создадим их при помощи нашей волшебной палочки:

На этот раз выберем тип отчета "Диаграмма...":

В качестве полей для отображения выберем "Количество" (по аналогии с таблицей):

В качестве серий (ось Y) укажем поле "Еда", а в качестве точек (ось X) - поле "Клиенты":

Получилось вот так:

Сохраним наш отчёт в конфигураторе и запустим его в режиме пользователя:

Мы видим таблицу... что такое?! А дело в том, что нужно просто выбрать другой вариант отчёта. Нажимаем на кнопку "Выбрать вариант..." и выбираем вариант "Диаграмма":

Диаграмма готова

Ещё раз формируем отчёт:

Отлично, какая красота

Эталонная обработка, после выполнения всех шагов этого урока

В заключении модуля

На этом мы заканчиваем рассмотрение основ системы компоновки данных. Я постарался рассказать и объяснить на простых примерах фундаментальные основы, необходимые новичкам для работы с СКД.

Если у вас в будущем (я советую делать это уже после окончания всей школы ) возникнет потребность в более глубоком изучении системы компоновки данных - есть замечательная книга Е. Ю. Хрусталёвой "Разработка сложных отчётов в 1С:Предприятие 8".

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

Мы отлично поработали, пора отдохнуть!

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

Различают несколько видов наборов данных:

  • Запрос;
  • Объект;
  • Объединение .

Запрос – это обычный 1с-запрос только язык запросов немного расширен. Для удобства можно использовать конструктор запроса.

Объект – внешний набор данных, например таблица значений.

Объединение – объединение нескольких наборов данных типов запрос и объект.

В данной статье мы кратко пробежимся по всем вкладкам конструктора схемы компоновки данных. Наборы данных На данной вкладке можно создать неограниченное количество наборов данных. Набор данных – это источник получения данных. Различают несколько видов наборов данных: Запрос; Объект; Объединение. Запрос – это обычный 1с-запрос только язык запросов немного расширен. Для удобства можно использовать конструктор запроса. Объект – внешний набор данных, например таблица значений. Объединение – объединение нескольких наборов данных типов запрос и объект. Связи наборов данных На данной вкладке описываются связи наборов данных. Тут можно указать какие наборы данных связывать и по каким полям и с какими параметрами. Самое главное, что нужно запомнить: в схеме компоновки данных, при связывании наборов всегда используется Левое соединение! Вычисляемые поля На данной вкладке можно создавать дополнительные поля, не описанные на вкладке Наборы данных. В качестве выражений для расчета можно использовать язык выражений компоновки данных, поля из основных наборов данных, а также функции не глобальных общих модулей. Ресурсы Ресурсы – это итоговые данные по группировкам. На вкладке можно назначить ресурсом поля из наборов данных, а также из вычисляемых полей. Также для ресурсов указывается выражение, по которому они рассчитываются, и возможно указание группировки по которой будет рассчитываться выражение для ресурсов. На основании значений ресурсов также рассчитываются общие итоги отчета. Параметры Параметры данных, как правило, используются в наборе данных запрос. Все параметры, описанные в запросе, появляются на вкладке Параметры. На данной вкладке можно указать заголовок, доступные типы, доступные значение и некоторые другие вещи. Подробнее о параметрах чуть позже. Макеты По умолчанию макет сформированного отчета генерируется автоматически системой компоновки данных. Но в системе также имеется возможность разработчику самому оформлять отдельные области отчета(полей, группировок, ресурсов…). Все макеты отдельных областей, созданные на данной вкладке, привязаны только к текущему отчету. Вложенные схемы Вложенные схемы используются в случаях когда данные одного отчета необходимо использовать в другом. Другими словами мы “встраиваем” одну схему компоновки данных в другую, указывая связь по общему полю. Пример использования вложенных схем можно посмотреть в этой статье. Настройки На данной вкладке разработчик создает стандартные настройки формирования отчета. В верхней части окна задается иерархическая структура. Структура формирования отчета может состоять из следующих элементов: Группировка; Таблица; Диаграмма; Вложенная схема В нижнем части окна задаются настройки для всего отчета и для каждого элемента структуры отчета. Кратко в вкладках настроек: Выбранные поля – список полей выводимых в отчет; Отбор – всевозможные отборы записей отчета; Порядок – сортировка записей в отчете; Параметры данных – значение параметров отчета; Пользовательские поля – дополнительные поля отчета, создаваемые пользователем; Условное оформление – задается условное оформление записей отчета; Другие настройки – всевозможные дополнительные настройки такие как: заголовок отчета, макет оформления, расположение полей и тд....
 
Статьи по теме:
Скачать клавиатурный тренажер для детей на русском бесплатно
Основные возможности уникальный альтернативный вариант для расположения рук на клавиатуре; поддержка различных раскладок и языков; звуковые эффекты для музыкального сопровождения работы; специальные уроки, которые помогают запоминать расположение клави
Не работает тачпад: советы и способы их решения
Сенсорная панель ноутбука (также известная как тачпад) является большим преимуществом данного устройства. Она позволяет обходиться без дополнительного оборудования, занимающего место в сумке, а также решает вопрос свободных портов USB. Однако достаточно ч
Конвертер ватт в амперы Что такое мАч
Мощность – это скорость расходования энергии, выраженная в отношении энергии ко времени: 1 Вт = 1 Дж/1 с. Один ватт равен отношению одного джоуля (единице измерения работы) к одной секунде. Практически каждый человек слышал про параметры электричества как
Стамбул - это город превосходных степеней…
Шесть тысяч лет прошло с тех пор, как реки Алибей-су и Кягытхане слились с проливом Босфор после разлома литосферных плит и образовали естественную заводь. Позже она получила название Золотой Рог. Рогом ее назвали, видимо, из-за своей формы. Золотым, по в