Как вывести отчет скд таблица

Содержание
  1. Как вывести отчет скд таблица
  2. Создание отчета в СКД с использованием данных из таблицы значений
  3. Как вывести отчет скд таблица
  4. Ставим цель
  5. Создаём новый отчёт
  6. Составляем запрос
  7. Сначала пробуем список
  8. Выводим в виде таблицы
  9. Забыли подвести итоги
  10. Вывод двух независимых таблиц в отчёте средствами СКД
  11. Платформа:
  12. Конфигурация:
  13. Полезные приемы для разработки отчетов на СКД
  14. Как вывести заголовок колонки вертикально, а значения в ячейках горизонтально
  15. Как сделать, чтобы в итогах кросс-таблицы выводилась только часть ресурсов, при этом в самой таблице отображались все ресурсы
  16. Как в отчете на СКД вывести колонку с расчетом процентов без создания отдельного поля компоновки
  17. Как управлять порядком выводимых в отчет ресурсов
  18. Как в отчете отфильтровать данные при помощи сложного выражения с использованием И, ИЛИ, НЕ
  19. Особенности расчета итогов при использовании нескольких наборов данных
  20. Хотите научиться грамотно создавать отчеты на СКД и дорабатывать отчеты в типовых конфигурациях?
  21. Комментарии / обсуждение (61):

Как вывести отчет скд таблица

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

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

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

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

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

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

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

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

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

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

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


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

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

Источник

Как вывести отчет скд таблица

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

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

Автор уроков и преподаватель школы: Владимир Милькин

На всех прошлых уроках мы выводили данные в отчет в виде списка. Сегодня разберёмся со вторым типом отчета: «Таблица».

Ставим цель

  • Написать отчёт, который выводит информацию о заказе еды клиентами в виде таблицы.
  • В строках таблицы должна выводиться еда, в колонках — клиенты, а на пересечении количество данной еды заказанной данным клиентом.
  • Информацию будем брать из документов «ЗаказКлиента».

Поехали!

Создаём новый отчёт

Открываем базу «Гастроном» в конфигураторе и через меню «Файл»->»Новый. » создаём новый отчёт:

Вид документа — «Внешний отчет»:

В новой форме отчёта указываем имя «Урок8» и нажимаем кнопку «Открыть схему компоновки данных»:

Имя схемы компоновки данных оставляем по умолчанию:

Составляем запрос

Добавляем новый набор данных — запрос:

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

Будем выбирать из табличных частей документа «ЗаказКлиента» следующие поля:

Получился следующий текст запроса:

Сначала пробуем список

Перейдём на закладку «Настройки» и нажмём волшебную палочку, чтобы вызвать конструктор:

Вначале попробуем по старинке выбрать тип отчета «Список. «:

Укажем поля, которые будут отображаться в отчете:

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

Получился привычный нам список с тремя колонками: Клиент, Еда и Количество.

Выводим в виде таблицы

Ах как замечательно было бы представить эти же самые данные в виде таблицы, в строках которой перечислена еда, в колонках — клиенты, а на пересечении количество данной еды, которое заказал данный клиент:

Сделать это действительно легко. Для этого вернёмся на закладку «Настройки» и вновь вызовем конструктор настроек через волшебную палочку:

На этот раз в качестве типа отчета выберем «Таблица..»:

Из полей, которые будут отображаться в отчёте уберём «Клиент» и «Еда», так как эти поля по нашей задумке уйдут в столбцы и строки соответственно:

Оставим только количество, которое будет отображаться на пересечении строк и столбцов:

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

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

Итоговая структура отчёта будет такой:

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

Вроде бы неплохо. Еда отображаться в строках, а клиенты — в столбцах. Но показатели количества, которые мы ожидали увидеть на пересечении строк и столбцов почему-то оказались все слепёшены в одном столбце.

А причина в том, что строки и столбцы у нас сгруппированы, а показатели нет! Поэтому и такой разлад.

Чтобы сгруппировать количество нужно подвести по нему итоги (вычислить ресурсы). Это мы уже делать умеем.

Забыли подвести итоги

Переходим на закладку «Ресурсы» и перетаскиваем поле «Количество» из левой колонки в правую:

Выражение «Сумма(Про. » оставляем без изменения:

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

То, что надо! Мы хорошо поработали. А на следующем уроке — мы модифицируем этот отчёт (вернее его копию) и представим эти же данные в виде диаграммы.

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

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

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

На вопросы учеников — отвечаю по почте, но прежде загляните в ЧАВО (ссылка) .

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

Источник

Вывод двух независимых таблиц в отчёте средствами СКД

Платформа:

Конфигурация:

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

Ниже приведён алгоритм создания подобного отчёта.

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

2. Добавить 2 набора данных типа «запрос». В первом наборе данных будем получать данные по взаиморасчётам, во втором — курсы валют.

Важно! Псевдонимы полей запросов не должны повторяться.

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

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

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

6. Сохранить отчёт.

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

Источник

Полезные приемы для разработки отчетов на СКД

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

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

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

Как вывести заголовок колонки вертикально, а значения в ячейках горизонтально

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

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

Тайминг ключевых моментов в видео:

00:39 – Какой параметр в настройках условного оформления необходимо использовать для горизонтального вывода текста.
01:14 – Как сделать, чтобы условное оформление применялось только к заголовкам полей.
01:38 – Как ограничить список полей, к которым применяется условное оформление.

Как сделать, чтобы в итогах кросс-таблицы выводилась только часть ресурсов, при этом в самой таблице отображались все ресурсы

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

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

Тайминг ключевых моментов в видео:

00:40 – Как настроить структуру отчета для вывода в виде кросс-таблицы.
02:22 – Как отключить вывод общих итогов.
02:55 – Как добавить группировку для вывода итогов по одному ресурсу.

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

Отчеты на СКД часто сравнивают с Excel: «там же просто: добавил колонку, протянул формулу – и всё готово» 🙂

А на СКД может быть даже ещё проще! Например, для расчета процентов по числовым показателям не надо прописывать никаких формул. Это можно сделать при помощи настроек компоновки. В видео покажем, как именно.

Тайминг ключевых моментов в видео:

00:30 – Какие «виртуальные» вложенные поля доступны в настройках компоновки для числовых ресурсов.
02:05 – Чем отличается поле «процент общий» от «процент в группировке».
02:35 – Как в отчете пронумеровать строки и вывести процент проданного количества без создания отдельного поля компоновки.

Как управлять порядком выводимых в отчет ресурсов

Часто встречается следующая ситуация. Разработчик в отчете настроил выбранные поля, указал, в каком порядке поля должны следовать в отчете. Но в отчет они выводятся совсем в другом порядке.

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

Тайминг ключевых моментов в видео:

00:35 – Какие настройки нужно установить, чтобы вывести в отчете ресурсы после всех полей.
01:10 – Какие настройки нужно установить, чтобы поля выводились в порядке, указанном в списке выбранных полей.

Как в отчете отфильтровать данные при помощи сложного выражения с использованием И, ИЛИ, НЕ

Часто пользователям в отчетах нужно отбирать данные по условиям, намного сложнее, чем просто “Номенклатура = Стол”. Система компоновки позволяет конструировать такие фильтры, используя группы логических условий И, ИЛИ, НЕ. В видео мы покажем, как можно реализовать такие отборы.

Тайминг ключевых моментов в видео:

00:32 – Как в настройках компоновки создать группу отборов (И, ИЛИ, НЕ).
01:52 – Как назначить представление для группы отборов и включить группу отборов в пользовательские настройки.

Особенности расчета итогов при использовании нескольких наборов данных

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

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

Отличия расчета итогов в запросах и СКД

Тайминг ключевых моментов в видео:

02:41 – Почему отличаются итоги при использовании запроса и при использовании соединения наборов данных.
04:05 – Как можно изменить текст запроса набора данных для корректного расчета итогов.

Вывод табличной части документа и корректного итога по сумме документа

Тайминг ключевых моментов в видео:

00:30 – Как решить задачу при помощи одного запроса.
04:14 – Как решить задачу при помощи соединения двух наборов данных.
07:01 – В каких случаях использование запроса приводит к некорректному расчету итогов.

Хотите научиться грамотно создавать отчеты на СКД и дорабатывать отчеты в типовых конфигурациях?

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

Разница между ними просто огромная, в том числе и в заработке.

И если Вы хотите не просто «слышать про СКД», а на самом деле знать возможности и особенности системы компоновки данных и уверенно применять их на практике, рекомендуем пройти курс Профессиональная разработка отчетов в 1С 8.3 на Системе Компоновки Данных (СКД)

Комментарии / обсуждение (61):

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

Добрый день!
Можно в наименовании характеристики перед записью добавлять суффикс, например, “(доп. реквизит)” или “(доп. свойство)“, чтобы не было путаницы.

Уже ничего не добавишь, ни в реквизит, ни в характеристику, необозримо внешних отчетов

Что-то менять всё равно придется – или имена полей, или в отчетах способ получения данных (например, вместо механизма характеристик явно использовать в запросе соединение с ТЧ ДополнительныеРеквизиты, где хранятся значения). Смотря, какой способ окажется менее трудозатратным.

Да так и сделал, соединил. Прописал бы кто, что не надо дублей делать, а еще лучше, будь возможность уточнять раз”именование

Отлично, что получилось решить задачу!

В Вашем комментарии нет текста или вложенных файлов.

Обращаем Ваше внимание, что Вы мoжете добавить к комментарию:
– изображение (JPG, PNG, GIF)
– архивы (ZIP, RAR)
– документы и текст (TXT, DOC, DOCX, XLS, XLSX, PPT, PPTX или PDF).

Из соображений безопасности максимальный размер файла установлен в 10 МБ.

Проверьте, пожалуйста, что Ваш комментарий соответствует этим требованиям, и опубликуйте его повторно.

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

Добрый день!
Можно реализовать поэлементный вывод:

СхемаКомпоновки = Отчеты.ОстаткиТоваровНаСкладах.ПолучитьМакет(«ОсновнаяСхемаКомпоновкиДанных»);
НастройкиКомпоновки = СхемаКомпоновки.НастройкиПоУмолчанию;

КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновки, НастройкиКомпоновки);

ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки);

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

Пока Истина Цикл

ЭлементРезультата = ПроцессорКомпоновки.Следующий();
Если ЭлементРезультата = Неопределено Тогда
Прервать;
Иначе
ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата);
КонецЕсли;

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

Другой вариант – вывести результат компоновки в таблицу значений, затем обходить ее, выводить в табличный документ по 100 строк.

Добрый день!
Несколько лет назад проходил Ваш курс.
Но как часто бывает, со сложными вопросами столкнулся только сейчас.
Если сможете ответить, буду очень признателен.
1. Автопозиция ресурсов – прекрасно работает, когда в отчете только детальные записи. Но когда есть несколько уровней группировки, в том числе без детальных записей, вывести ресурсы и группировочные поля в произвольном порядке – непонятно как. То есть, допустим, “через один” группировочное поле, ресурс и тд. Пробовал добавлять в нужном порядке все поля на вкладке Выбранные поля – не помогает, система выводит поля как ей вздумается. Даже письмо в 1с написал. Вы с такой проблемой не сталкивались?
2. Можно ли, используя язык системы компоновки данных, организовать следующий расчет ресурса в такой задаче: нужно посчитать количество листов прикрепленных файлов (в бп 3, к договорам, поступлениям и счетам-фактурам). Само количество у каждого файла посчитано и хранится отдельным реквизитом. При этом у каждого файла также есть реквизиты Вид, дата и номер файла (например, УПД, 1, 01.01.20). С одной стороны, к договору прикреплен Договор и доп. соглашение и оба помечены как “договор” от одной даты. С другой стороны, один и тот же УПД прикреплен к поступлению товаров и к счет фактуре и посчитать количество страниц по такому файлу нужно только один раз. То есть, я сначала бы рассмотрел файлы каждого отдельного документа, там сгруппировал их по полям вид, номер и дата, а количество страниц просуммировал (решается проблема договор+доп. соглашение). Дальше, на уровне контрагент+договор я бы взял максимум по каждому виду, номеру и дате (решается проблема двух одинаковых упд, количество страниц посчитается один раз). А затем, на уровне других группировок и общего итога, снова бы просуммировал количество страниц. Задать два выражения для ресурса (у вида, номера, даты, контрагента и договора как Максимум, в другой группировке у остальных полей – как Сумма) не получается – пишет Неоднозначное выражение. Хочется написать “вычислить с группировкой таблица значений”, а потом эту таблицу значений передать в следующее выражение и еще раз, чтобы посчитать сумма+максимум+сумма. Но похоже такое выражение не составить. Тут можете помочь? Спасибо.

Источник

Оцените статью