1с скд не выводить ресурс в детальных записях
Странности начались когда мы перешли на 8.3(8.3.3.687) Когда было 8.2 отчеты работали как часы, к ним никто не лез т.е. человеческий фактор можно исключить, после перехода на 8.3 отчеты выдают чистый лист, хотя данные есть (я запрос из СКД исполнял в консоле запросов). Как я это делал: В модуле объекта отчета в процедуре ПриКомпоновкеРезультата получаю код запроса который генерит СКД, беру его из "СхемаКомпоновкиДанных.НаборыДанных.НаборДанных1.Запрос" вставляю в консоль запросов, консоль выдает данные, почему же СКД выдает чистый лист? P.S. Отбор в СКД никакой не установлен
какие настройки (которые могут повлиять на результат) могли слететь, если б настройки группировки слетели я б данные видел в любом случаи, а тут вообще нет данных, отбор я специально убрал (для чистоты эксперемента)
на закладке настройки есть что нибудь? Если там ничего не будет - то и данных не будет выведено. Оставь там только детальные записи, без группировок, выведет что нибудь?
вот что на закладке "настройки" "Оставь там только детальные записи, без группировок" не понял где это сделать?
группировка задается программно на форме отчета пользователь проставляет галки как он хочет группировать. P.S. сорри за то что задержался с ответом
А где в Компоновщике настроек можно посмотреть данные ко каким производится группировка, я в отладчике смотрю отчет.КомпоновщикНастроек, но там куча всего, Настройки, ПользовательскиеНастройки, ФиксированыеНастройки
тут видно что просто есть группировка, а надо еще глянуть какие поля должны выводится под этой группировкой
тут проблема более глубокая, более местическая так сказать, т.к. есть база с такой же конфой, но там эти отчеты работают, отчеты 1 в 1 такие же (с точки зрения конфигурации)
Чисто "семёрочный" подход. Пора переучивать пользователей. Не изобретай велосипед. Сделай все нужные группировки предварительно. А затем пользователь пусть сам решает, через "Все действия - Изменить вариант".
согласен, но не я это решаю, да и не это является причиной поломки отчета. Я сейчас ковыряю "Все действия - Изменить вариант" все там нормально, как на форме выбрать группировку так в Изменить вариант и отображается, пробовал прям там редактировать, ему пофиг (( P.S. у нас на базе включено разделение данных, по идеи какая разница но я уже не знаю на что смотреть и что может быть причиной.
на скрине видно группировку. а если зайти дальше, то в поле выбор должны быть перечислены поля, которые выводить в отчет. Вы ж программно группировки создаёте
а если вариантов группировки 5 - 6 и разный порядок следования, то что для каждого варианта сохранять настройку
разве это "семёрочный" подход разместить на форме отчета список значений с группировками и исходя из отмеченного пользователем программно формировать отчет?
По-моему трабл в том что настроики варианта где-то кешируются, я убрал код который динамически сознает группировки, заполняет значение параметров, вообще все что не стандартно, изменяю макет, присваиваю значение параметра в макете и создаю там группировку, запускаю мне отчет орет что не заполнено значение параметра (вариант выбран основной), захожу в изменить вариант, и действительно не заполнен нужный параметр, а вот какого х он не заполнен, загадка, в макете для варианта "Основной" я параметр заполнен, кстате и группировки нет если смотреть в изменить вариант, как сказать отчету что бы он взял настройки макета такие как я задал в конфигураторе?
Есть ещё пользовательские настройки. Они сильнее, чем те, что заданы в схеме. Их-то СКД и подгружает из кэша.
так он не воспринимает ни фига если я вношу изменения в "изменить вариант" если выгрузить настройки в файл из конфигуратора и загрузить их в предприятии, то он съедает настройки и все ок, и дальше если я их правлю то изменения тоже видны, но это на корню рубит то что у нас в отчет натройки программно задаются
Я программно подставлял значения параметров в ПриЗагрузкеВариантаНаСервере. Если этого не делать, то параметры не инициализировались. К примеру, так:
Это правда для случая "своей" формы для отчёта на СКД. Для случая полностью программно нарисованного отчёта на СКД играют пользовательские настройки.
на третий день проблему удалось решить. У меня при загрузке варианта вызывались процедуры которые переносили настройки с формы в макет, там обращение было к Отчет.КомпоновщикНастроек.Настройки.Структура, а надо было к настройкам которые приходят праметром в ПриЗагрузкеВариантаНаСервере. 8.3 оказалась привередливой в этом вопросе.
От вас правильно заданный вопрос. Идеально - модельная база с тестовыми данными и отчет (обработка и т.п.).
Не обещаю, что смогу ответить прям на любой вопрос, но буду стараться :)
(0) Правильно заданный вопрос содержит половину ответа.
А ты попробуй на неверно заданный ответить!
Есть вопрос! Есть ЗУП. 3.1. В нём формирование запросов, например, по кадровому состоянию делается некими процедурами каких-то модулей.
Есть отчёт на СКД, куда вдруг стало необходимым добавить Должности и Подразделения физических лиц, если они когда-либо работали в компании.
Когда кто-то работал в компании, по физлицу НекаяПроцедура.КакоготоМодуля возвращает список всех мест работы (совместителей, уже уволенных, работающих), вертает это всё в виде ВТ_КадроваяЧтототам.
Как такое правильно сопрягать с отчётом на СКД?
(3) для меня простой и понятный вариант выгрузка в объект нужного набора (ВТ_КадроваяЧтототам) и подключение его в схеме СКД как набор Объект.
Вариант сложнее - модификация текста запроса.
И то и другое делается ПриКомпоновкеРезультата
+ к (4) при формировании данных для объекта, можно считать настройки из компоновщика (отборы и параметры), чтобы передать их в нужную процедуру. тем самым поработать чуть-чуть за СКД (в плане отборов).
Так выборка физлиц происходит в момент компоновки, т.е. нужно как-то использовать значения выборки отчёта и прикрутить доп соединение, выполняемое после, а результат дать в макет
Что-то мне подсказывается, что вариант в (6) всё же решается стандартными средствами СКД. По варианту (5), который вырождается в (7) - двойное выполнение отчёта, что излишне
(7) есть и такой подход. сейчас постараюсь найти ссылку, где отчет формируется через 2 схемы СКД. первая схема принимает запрос от юзера, далее идет программная обработка, затем данные помещаются во вторую схему.
(12) Реальный вопрос начинается с описания результата - какую проблему надо решить. Когда пишут, что надо в некий отчет добавить некие поля - это уже процесс решения.
Не понимая сути проблемы, и не разобравшись в предметной области, очень сложно дать правильный ответ - хотя в каких-то случаях и возможно.
Говорю это как человек, который сам регулярно пишет отчеты для ЗУП 3.
Бывают такие задачи, когда проще запилить свой отчет на СКД с использованием каких-то процедур ОМ или собственных запросов, чем модифицировать существующий.
(9) не понял где двойное выполнение отчета. функция формирует ВТ только по одному физ лицу? или туда можно передать список?
если можно передать список, то в схеме описываем набор Объект. в ПриКомпоновкеРезультата формируем этой функцией ТЗ (не ВТ), передаем ее в схему. Можно считать настройки отбора, чтобы функция отрабатывала с отборами. Ну и все - выполняем отчет.
Блин недавно читал на ИС хорошую статью где с помощью 2х СКД описывалась методика формирования. НАйти не могу.
(16)Есть вопрос. Самописный, простой отчет без использования всяких универсальных отчетов и общих форм.
В форме отчета, в процедуре ПриСозданииНаСервере в Отчет.КомпоновщикНастроек.ФиксированныеНастройки.Отбор добавляются некие отборы. Типа ограничение доступа к некоторым данным для пользователя.
На предыдущей платформе (8.3.10) этот отчет прекрасно работал.
На платформа 8.3.13.1644 вдруг перестало работать. Отчет выдает пустую таблицу. Помогло только в модуле объекта в процедуре ПриКомпоновкеРезультата отключить СтандартнуюОбработку и написать программное формирование отчета с получением настроек из компоновщика и загрузкой их в компоновщик макета.
Так вот вопрос, что нужно сделать чтобы фиксированные настройки компоновщика в форме применились сразу, без лишних телодвижений в модуле объекта?
Создавал отдельную тему по своему вопросу:
Два регистра "Продажи" и "ПродажиСебестоимость". В первом есть измерение "Менеджер", во втором нет. Надо отобрать данные Стоимости и Себестоимости продаж с детализацией по Менеджеру, но из-за отсутствия данного измерения во втором регистре записи в нем группируются, когда в продажах эти записи могут разбиваться на несколько строк, потому что для записей разные Менеджеры.
В результате следующего запроса данные в отчете по себестоимости неверные. Как получить корректную сумму по себестоимости с учетом того, что данные должны группироваться по Менеджеру?
Рассмотрим, как в СКД вывести ресурс только по нужным уровням иерархии.
Имеем отчет с вот такой структурой:
Структура СКД
У нас есть ресурс «Количество», который вычисляется для всей иерархии:
Задача: необходимо выводить «Количество» только в верхнем уровне иерархии. Сейчас получаемый отчет выглядит так (красным выделены поля, которые должны быть пустыми):
Текущий макет
Что нужно сделать?
Все очень просто, хоть и не совсем очевидно.
Заходим в условное оформление нужной нам группировки и добавляем новое условие:
Новое условное оформление
В поле Оформление ставим флажок напротив «текст» и НИЧЕГО не пишем в текст. Таким образом мы говорим СКД, что надо выводить пустое поле. Выглядеть настройка будет вот так:
Пустой текст в оформлении
В условии используем системное поле «УровеньВГруппировке» и ставим «Не равно» «1». Таким образом мы говорим СКД, что наше оформление распространяется на все уровни группировки, кроме первого (соответственно, если вам надо выводить итоги только для первого и второго уровня, то вид сравнения ставите «Не в списке»,а в значение: «1,2»)
В оформляемых полях выбираем наш ресурс:
Оформляемые поля СКД
Все, больше ничего делать не нужно. Сохраняем наш отчет и проверяем результат:
Результат СКД
Готово! Теперь вы знаете, как в СКД вывести ресурс только по нужным уровням иерархии
Всем доброго дня. Есть отчет на СКД. Настройка и внешний вид отчета на скрине. Никак не могу сделать так, чтобы у ресурсов "количество опрошенных клиентов" и "индекс" отображались общие итоги, хотя итоги по групповым полям отображаются. Также общие итоги отображаются и у колонок с вертикальной группировкой. Очень прошу помощи, уже голова пухнет от этих итогов.
У группировок "Ответственный" и "Бизнес-процесс" вообще нет галок на закладке "Другие настройки", кроме как "Авто позиция ресурсов".
Пробовал по-всякому, и заполнял "рассчитывать по" указывая все группировки кроме "Вопрос" (вертикальная группировка) и оставлял пустыми - все равно итоги пустые.
Проверок нет. но в примере по первой ссыллке и null'ов в значении столбца вообще нет. Еще интересно вот что: при установке флага "Авто позиция ресурсов" для других группировок, например "Ответственный" строка с общими итогами вообще пропадает.
Боюсь, что это фича СКД, которую можно побороть лишь вводом еще одного группировки Колонок <Детальные записи>, в которой перечислить выводимые поля ресурсов: - количество опрошенных. - индексДетальные>
А куда девать то, что все-таки остается слева + и самое главное - смогу ли я при такой компоновке отчета задавать произвольное выражение для общих итогов? Уж сильно меня не пинайте, я не гуру СКД
Не совсем понял. я понимаю, что для группировки "Вопрос" "Вывод общих итогов" - нет, так и было. А для остальных группировок это ничего не дает.
Да, закладка "Другие настройки", "Расположение общих итогов" - нет, изменение настройки для нее ничего не дает.
Я, если честно, уже почти разочарован - для казалось бы несложного отчета, нужно так сложно колхозить.
И только не говорите, что сейчас общие итоги мне нужно считать через вычисляемые поля, используя ВЫЧИСЛИТЬВЫРАЖЕНИЕ.
Давайте продублирую в посте Пробовал по-всякому, и заполнял "рассчитывать по" указывая все группировки кроме "Вопрос" (вертикальная группировка) и оставлял пустыми - все равно итоги пустые. Если делать отдельное выражение для общего итога - не работает.
Так наверное будет понятнее - разные формулы расчета для разных группировок, а в отчете - одинаковые цифры.
Гуру СКД, отзовитесь! Можно ли в варианте из для детальных записей сделать заполнение общих итогов с помощью "рассчитать по. " ?
Система компоновки данных – весьма удобная система создания отчётов без написания программного кода. Однако для того чтобы научиться в ней работать, необходимо иметь хотя бы элементарные представления о встроенных в систему функциях.
Что такое ресурсы и группировки в СКД
При создании отчёта в СКД из набора данных извлекаются записи. Эти детальные записи, которые возвращает сам запрос, обычно представляют собой набор элементов, связанных между собой иерархическими связями. Поэтому, для удобочитаемости отчёта его данные можно сгруппировать. Группировка отчёта в СКД – это операция размещения данных по группам, однородных по какому-либо признаку.
После того, как записи будут сгруппированы, СКД добавляет их в итоговый отчёт. Это такие данные, которых нет в готовом виде в базе, и создаются они только путём обработки детальных записей. Итоговые наборы данных, полученные путём группировки, называют ресурсами СКД.
Настройка ресурсов, группировка и сортировка данных
Чтобы выполнить настройки СКД и наглядно показать процесс группировки, сортировки и выведение итоговых ресурсов, рассмотрим создание внешнего отчёта. Отчёт будет результатом решения задачи, в которой будет рассчитываться расстояние между двумя остановками выбранного маршрута.
Итак, создаём периодический регистр сведений в СКД. Назовём его “Остановки по маршруту”. Добавляем сюда два измерения: Маршрут, Остановка и итоговый ресурс Расстояние. Зададим для них соответствующие типы данных: строковый и числовой. Все изменения сохраняем в новой конфигурации регистра сведений.
Создаём внешний отчёт в СКД. Для этого заходим в Меню, выбираем Файл ? Новый, находим вкладку «Внешний отчёт», даём ему имя «Расстояние между остановками». Далее, жмём кнопку «Открыть схему компоновки данных»:
В появившемся конструкторе СКД находим команду «Добавить набор данных – запрос»:
Чтобы решить поставленную задачу и по результатам её решения построить отчёт, находим в конфигураторе таблицу “ОстановкиПоМаршруту”
Так как наш отчёт рассчитывает расстояние между двумя, выбранными пользователем, остановками, то на вкладке «Наборы данных» формируем запрос. Требуемый запрос будет предоставлять данные в виде таблицы по осям X и Y с использованием полного внешнего соединения таблицы регистра:
ВЫБРАТЬ
ОстановкиПоМаршрутуX.Маршрут КАК Маршрут,
ОстановкиПоМаршрутуX.Остановка КАК ОстановкаX,
ОстановкиПоМаршрутуY.Остановка КАК ОстановкаY,
ОстановкиПоМаршрутуX.Расстояние КАК РасстояниеX,
ОстановкиПоМаршрутуY.Расстояние КАК РасстояниеY,
ВЫБОР
КОГДА ОстановкиПоМаршрутуX.Расстояние – ОстановкиПоМаршрутуY.Расстояние >= 0
ТОГДА ОстановкиПоМаршрутуX.Расстояние – ОстановкиПоМаршрутуY.Расстояние
КОГДА ОстановкиПоМаршрутуX.Расстояние – ОстановкиПоМаршрутуY.Расстояние < 0
ТОГДА ОстановкиПоМаршрутуY.Расстояние – ОстановкиПоМаршрутуX.Расстояние
КОНЕЦ КАК Расстояние
ИЗ
РегистрСведений.ОстановкиПоМаршруту КАК ОстановкиПоМаршрутуX
ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ОстановкиПоМаршруту КАК ОстановкиПоМаршрутуY
ПО ОстановкиПоМаршрутуX.Маршрут = ОстановкиПоМаршрутуY.Маршрут
Выполняем настройки СКД. Для этого на вкладке «Ресурсы» указываем поля для системы компоновки данных. Из окна со всеми доступными полями таблицы перекидываем поля Расстояние,РасстояниеX и РасстояниеY. Задаём выражения, которые нам необходимо вычислить:
Проводим дальнейшую настройку отчёта СКД. Для этого переходим на вкладку «Настройки», жмём «Открыть конструктор настроек», выделяем тип отчёта «Таблица»:
Далее выбираем поля для отчёта:
Нажав кнопку «Далее», выбираем поля для группировки:
Выбираем поля для сортировки отчёта:
Нажимаем кнопку ОК. Создаём пользовательские настройки, а также указываем, как будут располагаться ресурсы:
Отчёт готов. Если регистр сведений ещё не заполнен, то заходим в Предприятие и заполняем его:
На вкладке Меню выбираем Файл, находим наш сохранённый отчёт, жмём “Сформировать” и видим готовое решение задачи:
СКД позволяет упрощать процедуру создания отчётов с помощью использования настроек СКД. К таким настройкам относятся: создание ресурсов, группировка, сортировка, настройка заголовка в отчёте. Настройки СКД производятся в режиме конфигуратора 1С на вкладке «Настройки» и на вкладке «Ресурсы». Данные операции позволяют привести отчёт к более удобному для чтения виду, а также упростить в нём поиск необходимых записей.
Читайте также: