Доброго дня, коллеги!
Одна из часто решаемых задач на внедрениях – доработка отчетов в типовых конфигурациях.
Сегодня мы рассмотрим 3 приема работы с отчетами на СКД, которые позволят эффективно решать следующие задачи:
- Правильно встроить новый отчет в интерфейс типовой конфигурации на базе БСП
- Быстро понять логику формирования отчета (и что делать, если Вы не видите запроса в схеме компоновки)
- Подключить к собственным отчетам сегментирование клиентов и товаров – или сделать в СКД текст запроса динамическим
Казалось бы, там все просто?
Когда клиент просит о простой доработке, а внедренец начинает судорожные метания по конфигуратору, и в итоге задача берется в офис с формулировкой – “опять тут 1С наворотили, нужно время, чтобы разобраться” – это, согласитесь, “неловко”.
Такая ситуация точно не увеличивает авторитет в глазах клиента :)
Поэтому всегда есть смысл найти 15 минут и разобраться с новыми для себя вещами.
Заранее :))
Итак, поехали:
Видео 01. Как встроить отчет на СКД в типовую конфигурацию на базе БСП?
В видео рассмотрим пошаговый алгоритм для добавления нового отчета в интерфейс типовой конфигурации.
Чтобы решить эту задачу в современных типовых (на базе БСП), недостаточно добавить отчет в метаданные и отнести его к нужной подсистеме.
Потребуется выполнить ряд необходимых действий:
- Воспользоваться обработкой из состава БСП «Обновление вспомогательных данных»
- Исключить отчет из основного интерфейса подсистемы и оставить его только в панели отчетов
- Добавить описание варианта отчета
- Обеспечить возможность поиска отчета пользователем по ключевым словам…
Видео 02. Как быстро проанализировать формирование типового отчета на СКД?
В уроке мы рассмотрим задачу по доработке типового отчета по остаткам денежных средств.
Ключевой момент: если обратиться в схему компоновки в конфигураторе, мы не увидим ни одного запроса.
Это происходит в силу того, что многие отчеты в типовых построены на основе вложенных схем компоновки данных.
В этом видео мы покажем, как “разобрать” логику формирования подобных отчетов.
Видео 03. Как настроить в отчетах отборы по сегментам?
Сегменты номенклатуры и партнеров – универсальный механизм, встречающийся в нескольких типовых конфигурациях.
И если вам предстоит их внедрять, практически гарантировано, что появится потребность в новых отчетах по номенклатуре/партнерам.
Будет правильным сразу же добавлять в отчеты штатную функциональность – поэтому в этих видео мы покажем, как подключить к отчету такие механизмы отбора по сегментам:
- Как устроена фильтрация данных по сегментам
- Как СКД может формировать запрос динамически
- Как внедрить отбор по сегментам в собственные отчеты.
Приятного просмотра!
Эта тема детально раскрыта в курсе:
«Профессиональная разработка отчетов в 1С 8.3 на Системе Компоновки Данных (СКД)»
Поддержка – 2 месяца. Объем курса – 34 учебных часа.
Не откладывайте свое обучение!
Если товар находится в нескольких сегментах, а необходимо сделать отбор “не в сегменте”?
Добрый день!
В таком случае предлагаю воспользоваться консолью компоновки. В пользовательском режиме устанавливаете отбор в настройках компоновки, при помощи консоли просматриваете, какой запрос получился в макете компоновки, как Ваш отбор был транслирован в текст запроса.
Анализируете, что получилось, принимаете решение о необходимости доработок в типовой конфигурации.
Просмотрел 1-е видео.
Подумалось, что внешний отчет проще подключить. В конфигураторе описание дописывать не надо, обновлять обработкой ничего не надо.
Может после 2-го и третьего видео передумаю.
Добрый день!
Во внешнем отчете в модуле объекта нужно реализовать специальную функцию СведенияОВнешнейОбработке, которая содержит описание этого отчета. Тогда его можно будет подключить к УТ 11 (или другой конфигурации на базе БСП).
А при добавлении отчета в саму конфигурацию нужно выполнить ряд действий, чтобы вариант отчета отобразился в специальной панели. Если точно не знать, какие действия потребуются, то можно потратить много времени, разбираясь в хитростях БСП. Поэтому в видеоуроке показывается, какие шаги при этом нужно будет выполнить.
Сразу оговорюсь, что никоем образом не оспариваю материал, не подвергаю сомнению.
Просто мне как то удобнее с внешним отчетом. Пользуюсь шаблоном внешнего отчета. Там надо только идентификатор придумать и название отчета. Вся “рыба” функции готовая. С поддержки снимать не надо. Все остальное в программе (пользовательский режим) в помощнике подключения внешних обработок есть. Один раз понять логику помощника, какие функции как выполняются, потом несложно и быстро.
Да, такая заготовка внешнего отчета удобна при разработке.
Дмитрий, а подскажите, что за шаблон внешнего отчета вы используете?
Не поняла в 3м видео, зачем нам доп.поля?
Можно же просто написать в условии
“ГДЕ
&ИспользуетсяОтборПоСегментуНоменклатуры”
Добрый день!
В программном коде параметр ИспользуетсяОтборПоСегментуНоменклатуры устанавливается следующим образом:
Т.е. его значение всегда Истина, управляем только флагом Использование. В зависимости от этого выражение в предложении ГДЕ включается или не включается в итоговый запрос.
Если мы используем выражение
(ВЫБРАТЬ
ОтборПоСегментуНоменклатуры.Номенклатура,
ОтборПоСегментуНоменклатуры.Характеристика
ИЗ
ОтборПоСегментуНоменклатуры
ГДЕ
&ИспользуетсяОтборПоСегментуНоменклатуры
То получится такой же результат. Тоже можно использовать.
А каким образом определяется, какая часть условия в ГДЕ включается, а какая нет? Разбивается по И?
Например, в таком выражении:
(Условие1 или &УсловиеЗависящееОтНашегоПараметра) и Условие2
что останется при выключенном параметре?
В фигурных скобках в предложении ГДЕ отдельные выражения перечисляются через запятую:
Сегменты.Партнер КАК Партнер,
ИСТИНА КАК ИспользуетсяОтборПоСегментуПартнеров
ПОМЕСТИТЬ ОтборПоСегментуПартнеров
ИЗ
РегистрСведений.ПартнерыСегмента КАК Сегменты
{ГДЕ
Сегменты.Сегмент.* КАК СегментПартнеров,
Сегменты.Партнер.* КАК Партнер}
Так они и разделяются при составлении итогового запроса.
В вашем примере:
ПродажиОбороты.Контрагент КАК Контрагент,
ПродажиОбороты.Номенклатура КАК Номенклатура,
ПродажиОбороты.СуммаОборот КАК СуммаОборот,
ПродажиОбороты.КоличествоОборот КАК КоличествоОборот
{ВЫБРАТЬ
Контрагент.*,
Номенклатура.*,
СуммаОборот,
КоличествоОборот}
ИЗ
РегистрНакопления.Продажи.Обороты КАК ПродажиОбороты
{ГДЕ
((ПродажиОбороты.СуммаОборот > 10
ИЛИ &Парам1)
И ПродажиОбороты.КоличествоОборот > 2)}
Если выключаем использование параметра Парам1, то предложения ГДЕ в итоговом запросе не будет вообще. Если включаем использование, то это выражение полностью и попадет в результирующий запрос.
Наглядно это можно увидеть при помощи консоли компоновок, просматривая итоговый запрос в макете компоновки.
Спасибо! Действительно, интересный эффект.
На первый взгляд можно было бы сделать проще. Внутреннее необязательное соеденение с условием. Тогда если установили отобор соеденение будет добавлено а т.к. оно внутреннее произойдет фильтрация
Тоже вариант.
Спасибо вам за труды.
Ну наворачивают, конечно, они с СКД…. черезчур уже….
Спасибо!
3 раза пересмотрел 3е видео, пока врубился почему же пропадает условие. Помоему очень неочевидное поведение платформы, при отключении использования параметра..
Мне кажется возможны ситуации когда отключение использования параметра неверно изменит текст запроса. логика – “если параметр не используется то нужно удалить все условия в которых он участвует, и все зависимые запросы”. так что ли?
Добрый день!
Это особенность использования расширения языка запросов для системы компоновки данных. Если значения параметров не заданы, то предложение ГДЕ в итоговый запрос не включается. Соответственно получается, что не используется и временная таблица, содержащая состав сегмента. А поскольку поля временной таблицы не используются в следующих запросах пакета, то запрос на создание временной таблицы удаляется из итогового запроса в макете компоновки данных. Вот такая логика.
Здорово :-) но звук как из бочки :-(
Какие-то проблемы случились у Samson meteor mic – звук стал действительно сильно хуже.
Ждем AUDIO-TECHNICA AT 2020 USB+, тогда видео будут переписаны – в поставке курса будут видео с кристальным звуком :)
интересно будет услышать!
Только у меня видео подтупливает через каждые 5-10 секунд?
Пока аналогичных жалоб от подписчиков не поступало.
Но сервисы видеохостинга wistia.com немного подтормаживают, возможно проблема на их стороне.
Можете попробовать запустить видео с этой страницы – https://content.wistia.com/customer-stories/liveintent, будет ли оно подтормаживать?
Подтормаживает…
Значит проблема не конкретно с этим видео.
1. Либо проблемы у видеохостера, они решаются в течение нескольких часов.
2. Либо проблемы у Вашего провайдера. Чтобы проверить – запустите, например видео с Youtube.
Почему у роликов так различается уровень громкости? В полном курсе тоже так будет?
Добрый день!
Спасибо, что сообщили – громкость в роликах отрегулирована.
В основном курсе качество звука и видео значительно выше, так как используется другой формат видео.
Ужасный звук
По ошибке громкость в видео не была выровнена – уже исправили.