Скд вывести свою таблицу

Скд вывести свою таблицу

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

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

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

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

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

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

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

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

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

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

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


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

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

Источник

Скд вывести свою таблицу

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

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

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

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

Ставим цель

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

Поехали!

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Источник

Вывод вариантов СКД в таблицы на управляемой форме

Забегая вперед: если бы подобный запрос с компоновщиком был всего один, то задача бы существенно упростилась:

  1. Создаем новый внешний отчет
  2. В нем формируем нужную основную СКД
  3. Далее на форме используем стандартный компоновщик, который уже имеет свой набор вариантов отчета, и самое главное: стандартную интерактивную «рулилку вариантов»: когда можно добавить/удалить/сохранить вариант.
  1. Создаем отчет с СКД
  2. Создаем новую форму, либо пользуемся конструктором и выкидываем ненужные элементы
  3. На форме выкладываем то, что нужно для отбора СКД: это могут быть «параметры данных» и «отбор» СКД:
  4. Для управления вариантами отчета можно сделать подменю и перетянуть в него стандартные команды:
  5. В режиме 1С-предприятия результат будет примерно таким:
  6. Создаем ТЗ в конфигураторе на форме: предположим, что это простая таблица с 1-ой стандартной колонкой «Пометка» (на форме будет таблица с галочкой)
  7. Для вывода в ТЗ Используется «нехитрый» код, исполняющий результат СКД в объект ТЗ, а затем выводящий полученное ТЗ на форму отчета

Далее можно сохранять/создавать варианты отчета и на основании этих настроек заполнять данные в ТЗ на форме.

Как говорится: это была присказка, а теперь сказка 😉

Отбор СКД на форме для нескольких запросов

Создаем новую обработку, назовем например «ВариантыТест»; предположим что 2 нужных запроса ранее были составлены в консоли запросов и помещены в СКД. Названия СКД «МакетСКДдляДДС», «МакетСКДдляНачисления»

  1. Для начала определимся с переменными обработки
  • ДатаРасчета: дата сбора остатков в запросах. Чтобы не загромождать форму, параметры данных решено на нее не «вывешивать», достаточно 1-ой даты: реквизита обработки. В дополнение донастроим СКД, добавив в нее 1 параметр «ДатаРасчета», дабы не мучаться с установкой дат вида «31.12.2018 23:59:59», а устанавливать начало/конец дня без времени. В данном случае остатки берутся на начало месяца (01.01.2019):
  • Таблицы значений на форме по СКД. называться могут произвольным образом, нужны только чтобы по окончанию установки всех отборов по специальной кнопке вида «Сформировать» «залить» в них результат СКД. Допустим что мы хотим каждую строку отметить флагом: добавляем 1 колонку «Пометка», остальные колонки создадутся динамически из запроса:
  • Набор реквизитов на каждую СКД. При этом каждый реквизит состоит из префикса и наименования СКД, название реквизита строго соотвествует шаблону » _ »
    • a) Компоновщики настроек — префикс «Компоновщик»
    • b)Таблицы с ранее сохраненными вариантами настроек — префикс «Варианты»
    • c) Описание состояния настроек СКД — префикс «Изменения»: -ничего не делать, «Изменено» — отбор изменен (нужно сохранить), «Сохранить» — признак сохранения варианта перед закрытием.
  • «СКДСписок»: вспомогательный списочек макетов СКД по обработке для программных дейсвий на стороне клиента или сервера и исключения дублей кода.

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

2. Действия при открытии формы обработки. При открытии сначала заполняются вспомогательные данные, после чего идет инициализация ранее сохраненных настроек компоновщиков. Если это 1-ый запуск обработки, то по сути ничего не сохранено, только считываются настройки из конфигуратора.

Общий принцип: в стандартное хранилище настроек пользователя по имени обработки и имени СКД сохраняется некая ТЗ, которая содержит список вариантов настроек, 1 из них «активный».

ПРИМЕЧАНИЕ: Полный программный код будет приведен в конце статьи.

3. Отбор СКД на форме. С целью удобства на форме использована отдельная закладка для отбора. Как ранее было упомянуто, параметры данных на форме не размещаем, параметр всего 1: дата Расчета. А отбор компоновки — это главный элемент, размещен на форме путем перетягивания из компоновщика-реквизита формы. Пример:

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

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

Если нажать «Продолжить редактирование«, то форма основная закрыта не будет, редактирование будет продолжено.

4. Выбор вариантов. Также по каждому отбору предусмотрен выбор ранее сохраненных вариантов, для этого создана специальная кнопка «Варианты. — Открыть», которая открывает форму просмотра, выбора, удаления сохраненных вариантов настроек.

По умолчанию на форме активен последний сохраненный/выбранный вариант, но если нужно выбрать другой вариант настроек — достаточно указать его в списке и нажать «Выбрать«. После этого в компоновщике установятся настройки выбранного варианта.

5. Удаление вариантов. Если выясняется, что какие-то варианты отбор были черновые, или просто по ошибке созданы: можно аналогично выбрать в меню «Варианты. — Открыть», затем выбрать «ненужный» вариант в списке и нажать «Удалить«. После этого из оставшихся вариантов выбрать любой, который станет активным. ПРИМЕЧАНИЕ: удалить можно только пользовательские варианты, стандартные, заданные в конфигураторе механизм удалить не позволяет.

6. Сохранение вариантов. Для сохранения варианта, который «только что отредактировали» сделано специальное меню «Варианты. — Сохранение», по которому открывается та же форма, которая появляется по кнопке «Открыть» или при закрытии формы.

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

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

В частности для управления выбором/сохранением/изменением настроек СКД на форме использованы всего 4 команды, простое подменю «Варианты. » на форме. А действия по сохранению/изменению осуществляют всего 2 команды, которые получают имя используемой СКД из названия команды:

Форма для управления настройками содержит 2 элемента управления «Список вариантов», «текущий вариант», 2 команды «Выбрать», «Продолжить редактирование».

Источник

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