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

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

Для чего может применяться СКД?

Устоявшееся мнение – для отчетов.

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

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

Для каких задач это будет полезно?

Приведем примеры из типовых конфигураций :

  • Обработка «Выгрузка данных на сайт»
  • Формирование прайс-листа
  • Выгрузка данных в ТСД (терминал сбора данных)
  • Сегментирование товаров, партнеров
  • Формирование заказов (клиентов, поставщикам) по потребностям
  • Планирование ремонтов в 1C:ERP.

То есть инструмент полезен везде, где нужно предоставить пользователю широкие возможности отбора.

Создание произвольного отбора в управляемой форме с использованием СКД

В уроке рассмотрена работа с компоновщиком настроек схемы компоновки данных:

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

Получение данных из базы с фильтрацией по отбору СКД

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

Используется “страшный” объект – ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений .

На самом деле, не все так сложно – за 8 минут мы решаем поставленную задачу.

Хранение отборов СКД в информационной базе

В уроке рассмотрим сохранение настроек компоновщика СКД с помощью Хранилища значений.

Разбираемся, как решить эту задачу в конфигурации “1С:Управление производственным предприятием 1.3”.

Приятного просмотра! :)

Вообще, СКД предоставляет массу возможностей.

Вот несколько “фишечек”, которые мы даже не успели описать на странице курса.

Если нужно собрать данные из разных источников , есть три варианта.

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

При этом важно получить корректные итоги – в этом есть особенности, если источников несколько

При помощи СКД можно просто получить срез последних на каждую дату в отчете .

Или, для наглядности, – получить цену товара на каждую дату продажи .

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

С помощью СКД можно организовать вложенные группировки с дополнением периодов (год/квартал/месяц и т.д.)

Произвольно оформить отчет, например, вывести заголовок колонки вертикально, а данные в этой колонке – горизонтально.

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

Как в отчете соединить несколько условий по ИЛИ? Такой возможности, например, в построителе отчета нет – но есть в СКД

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

Безусловно, здесь есть и нюансы, на которые нужно обращать внимание

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

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

При добавлении в отчет детализации до документа-регистратора система иногда выдает “некорректные” начальные и конечные остатки.

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

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

Если Вы хотите профессионально освоить СКД и ежедневно применять в своей работе , записывайтесь на курс:

Поддержка – 2 месяца . Объем курса – 34 учебных часа .

Не откладывайте свое обучение!

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

Из функций:
1. Работает в любой конфигурации
2. Возможность создания произвольной иерархии с удобным переносом элементов
3. Расширенное редактирование параметров (периоды, насл. параметры)
4. Выполнение в фоне (без модификации конфигурации)
5. Сравнение текстов запросов и результатов запроса
6. СКД
Гибкость удобство и настраиваемость. Код открыт.
Регистрация пожеланий и исправление ошибок через http://www.1cpp.ru/bugs/ проект Консоль запросов для 1С 8.1 (желательно)

О разработке На данный момент, пожалуй лучшая консоль СКД и не только. Огромнейший функционал. Автором проделана просто невероятная работа! Позволяет в режиме предприятия создать отчет на СКД и экспортировать его во внешний отчет с выбором шаблона. Универсальная консоль отчетов (тек. версия 2.7.7). Автор разработки Evg-Lylyk. Из функций: 1. Работает в любой конфигурации 2. Возможность создания произвольной иерархии с удобным переносом элементов 3. Расширенное редактирование параметров (периоды, насл. параметры) 4. Выполнение в фоне (без модификации конфигурации) 5. Сравнение текстов запросов и результатов запроса 6. СКД Гибкость удобство и настраиваемость. Код открыт. Регистрация пожеланий и исправление ошибок через http://www.1cpp.ru/bugs/ проект Консоль запросов для 1С 8.1 (желательно) Основные возможности 1. В списке запросов можно создавать группы и выделять элементы. 2. Вывод в таблицу, дерево, макет, сводный отчет. 3. Подсчет итогов в по колонке в таблице и дереве. 4. Подсчет суммы выделения в макете. 5. Выполнение в фоне. 6. Функция показать последний результат. 7. В меню файл есть список последних открытых файлов. 8. Сравнение текстов запросов и результатов запроса. 9. Формат полей 10. Замер времени выполнения. 11. Drag & Drop в дереве и в настройках построителя. 12. Вывод копии в Excel, HTML, CSV. 13. Генерация текста на встроенном языке. 14. Более удобный ввод параметра списка и составного параметра. 15. Группировка параметров НачПериода,КонПериода и аналогичных в группу. 16. Наследованный параметр значение которого берется из другого запроса. 17. Заполнение параметров из другого запроса. 18. Параметры и их значения запоминаются и подставляются при использовании одноименного параметра. 19. Многократное выполнение запроса для теста. 20. Можно открыть консоль в режиме отладки при этом автоматически будут получены параметры для отладки необходима вызвать процедуру “ОткрытьДляОтладки” из модуля обработки передав ей в качетве параметра объекты “Запрос” Или “ПостроительОтчета”, “ПостроительЗапроса”, “СхемаКомпоновкиДанных” для объекта ПостроительОтчета будут также получены настройки построителя. Когда консоль открыта для отладки в заголовке добавляется текст (отладка). Пример: Выражение= ВнешниеОбработки.Создать (“C:д_КонсольОтчетов2.3.epf”).ОткрытьДляОтладки(ЗапросТовары); 21. Подсказки в трее в случае окончания долгого запроса или фонового выполнения. 22. Групповая обработка данных 23. Редактируемы макет 24. Параметр значение которого получается выполнением текста на встроенном языке 25. Переименование параметров без ипользования констроктора прямо из Таблицы параметры 26. СКД 27. Интуитивное заполнение значений параметров 28. Контекстная подсказка 29. Есть возможность импортировать rcf файлы от стандартной консоли 1С и dcf файлы стандартной консоли компоновки от 1С и sel формат консоли ИР. 30. Конвертация текста запроса в TSQL 31. Анализ данных 32. Пользователский режим 33. Экспорт в CSV 34. Функции менеджера обработок 35. В таблице и дереве результата значения типа NULL выделяются цветом и текстом “Null” 36. Генерация внешней обработки на основе СКД (Статья “Удобный конструктор внешних отчетов на СКД”) Скриншоты Скачать Универсальная консоль отчетов 2.7.7.rar(1.54 Мб)...

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

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

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

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

  • Написать отчёт, который выводит клиентов и их любимые продукты. У каждого клиента есть любимый цвет, а у каждого продукта свой цвет - вот на основании этих цветов и нужно определять "любимость" продукта. К примеру, если у Андрея любимый цвет красный, то одним из его любимых продуктов будут помидоры (они красного цвета).
  • Применить в отчёте два набора данных. Первый набор - это данные из таблицы справочника "Клиенты". Второй - данные из таблицы справочника "Еда".
  • Осуществить связь этих двух наборов , чтобы в отчёте остались только любимые продукты для каждого из клиентов.

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

Открываем базу "Гастроном" в конфигураторе и через главное меню создаём новый отчет:

Вид документа - "Внешний отчет":

В форме нового отчёта указываем имя "Урок6" и нажимаем кнопку "Открыть схему компоновки данных":

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

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

В открывшейся схеме переходим на закладку "Наборы данных" и через зелёный плюсик выбираем "Добавить набор данных - запрос":

Вызываем конструктор запроса:

Указываем таблицу "Клиенты" и поля, которые требуется получить из запроса:

Добавляем второй набор данных

Добавляем второй набор данных:

Выделяем его (НаборДанных2) и снова вызываем конструктор запроса:

Указываем таблицу справочника "Еда" и поля, которые требуется получить из запроса:

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

Обратите внимание, что у нас сейчас в отчёте присутствуют два набора данных: НаборДанных1 и НаборДанных2. У каждого свой текст запроса и свои данные.

Делаем имена более наглядными

Для наглядности, давайте переименуем НаборДанных1 в Клиенты, а НаборДанных2 в Еда.

Сделайте это двойным щелчком по каждому из наборов:

Данные каждого из наборов мы сможем использовать в нашем отчёте. К этим данным мы будем обращаться через поля.

В данный момент у набора "Клиенты" следующие поля: "Наименование" и "ЛюбимыйЦвет", а у набора "Еда": "Наименование" и "Цвет".

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

Выделяем набор "Клиенты" и меняем имена полей так:

Затем выделяем набор "Еда" и меняем имена полей так:

Вызываем конструктор настроек

Наконец, переходим на закладку "Настройки" и нажимаем волшебную палочку, чтобы вызвать конструктор настроек:

Тип отчета - "Список...":

Выбираем поля для отчета из обоих наборов:

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

Проверяем отчёт

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

Ага. Хорошо, но не совсем. Произошло так называемое перекрёстное соединение двух наборов (вам это должно быть хорошо знакомо по соединениям в запросах, которые мы изучали в прошлых модулях). Каждой записи из таблицы "Клиенты" сопоставлена запись из таблицы "Еда".

Но нам нужно из всех этих записей оставить только те у которых поле "ЛюбимыйЦветКлиента" равно полю "ЦветЕды":

Осуществляем связь двух наборов данных

Для этого осуществим связь двух наборов данных (Клиенты и Еда) по полям ЛюбимыйЦветКлиента и ЦветЕды.

Переходим на закладку "Связи наборов данных" и нажимаем на кнопку-плюсик, чтобы добавить новую связь:

Настраиваем параметры как на рисунке ниже:

Сделаю пояснения.

Источник и приёмник связи. Ну тут всё понятно. Указываем первый набор (Клиенты) и второй набор (Еда) данных. Хочу обратить особое внимание, что связь будет осуществляться по принципу внешнего левого соединения (мы его проходили в теме запросов в прошлых модулях). Исходя из этого и нужно выбирать какой набор будет источником, а какой приёмником.

Выражение источник. Указываем здесь выражение или просто поле из набора данных источника (мы здесь указали поле ЛюбимыйЦветКлиента из набора Клиенты).

Выражение приемник. Указываем здесь выражение или просто поле из набора данных приёмника (мы здесь указали поле ЦветЕды из набора Еда).

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

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

Отлично!

Сделаю пояснение про поле "Условие связи ", об которое так часто бьют свои копья начинающие программисты.

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

В этом случае для всех строк из источника связи перед осуществлением связи будет проверяться это выражение (условие связи). И если это выражение равно ИСТИНА, то будет предприниматься попытка установить связи этой строки со строками из приемника связи. Если же выражение равно ЛОЖЬ, то таких попыток предприниматься не будет.