Есть отчет с иерархической группировкой. При выводе отчета необходимо при выводе детальных записей количество умножить на коэффициент из группы-родителя. Подскажите как его получить?
(1) 1) Для основного отчета нет выбранных полей, только для группировки.
Не делайте дополнительное поле коф. а добавьте ВычислитьВыражениеСГруппировкойМассив в ресурсы, тогда для каждой группировки у Вас будет выводится свой коэффициент.
(9) У меня через 2 внешних источника. Проблема в том что я не могу добраться до коэффициента родительской группировки из детальных записей. В детали я не могу сразу засунуть нужный коэффициент так как одна и та же детальная запись может входить в группировки с разным коэффициентом.
Так название конфигурации даже не было описано в которой выполняешь, я просто скинул пример , в котором в ресурсе берется количество детальной записи и умножается на результат ВычислитьВыражение по группировке . Если вычислить выражение что-то не то возвращает , то может быть поможет ВычислитьВыражениеСГруппировкойВМассив . Ну это надо смотреть на конфе, т.к я не знаю какие данные он возвращает
(4) Конфигурация не причем. Специально сделал внешний отчет с примером без привязки к конфе. Надо количество в детальной записи умножить на коэффициент из родителя. Или сделать чтоб в поле "Коэффициент родителя" у детальной записи заполнялся с родительской группировке. "ВычислитьВыражение..." в упор не видит родителей, хотя по родительской иерархии вполне себе считает, но в деталях не берет.
А проще сделать не пробовали: виртуальную таблицу с коэффициентами и объединение по родителю, тогда в каждой строке будет нужный коэффициент для вычисления. Подробнее в личку.
(13) Спасибо за разъяснение, но такой вариант не пройдет так как одна и та же деталь из ТЗДанные может входить в неограниченное количество узлов, а коэффициент задается именно у узла. Если бы не требовалось использовать иерархическую группировку в СКД, то то был бы рабочий вариант. А так по вашему набору при построении иерархии в СКД получаться дубликаты детальных записей кратно их вхождению в узлы. Я нечто подобное уже пробовал делать.
Хорошо, последний вариант, у нас была построена группировка на кодах, т.е. у каждого иерархического уровня свой код уникальный, если у Вас иерархия будет таким образом организовано, то это будет работать. Либо думайте и придумывайте, у меня больше мыслей пока нет.
(16) Склоняюсь к такому варианту. Есть только одна загвоздка - отчет содержит десятки тысяч записей и при таком подходе количество записей в таблице детальных данных драматически увеличивается что снижает скорость построения отчета в несколько раз.
(18) У меня не получилось по этому и создал тему. "Вычислить выражение" работает если группировка не иерархическая. В моем случае не получается получить значения по родительской группировке.
ТипРасчета. Тип Строка. ..........................
Если параметр имеет значение "Иерархия", то выражение нужно вычислять для родительской иерархической записи, если таковая имеется, и для всей группировки, если родительской иерархической записи не имеется.
..........................
Посмотреть бы на то, из чего Вы это делаете, может мысли бы и появились)
И еще Вы таблицы руками, которые пишете, выбираете из каких ресурсов? Вернитесь вначал0....
(24) Таблицы формируются руками. Основа для них документы "Заказ на производство" в 1С: УПП. Упрощенно, если номенклатура из вкладки "Продукция" одного заказа встречается во вкладке "Материалы" другого, то это означает что одно изделие является составной частью другого. Про коэффициент. Часть изделий может является оснасткой и определен коэффициент ее использования при изготовлении продукции. Причем определен он только для первого изделия в подсборке, а надо чтоб он применялся ко всем дочерним узлам при формировании отчета.
В последней, по крайней мере, версии отчета в настройках нет детальных записей, следовательно выражение для вычисляемого поля нужно делать в ресурсе. Там можно попробовать просто Минимум(Коэффициент) и указать расчет по КлючДетали Иерархия. Но по идее бы разделить поля коэффициентов для разных наборов, сделать детальные записи и вычисляемое поле коэффициента родителя.
Действительно вычисляемые поля в данном случае не сработают, т.к детальные записи у вас в группировке и существуют сами по себе не привязаны к основному набору Иерархия. Если бы данные были в одном наборе то сработала бы след функция
Выбор
Когда Уровень() > 0
Тогда ВычислитьВыражение("Коэффициент", , "Иерархия")
Иначе Null
Конец
Сейчас она вычисляет так только Родительскую главную иерархию. Попробуйте объединить в один набор с помощью начального заполнения иерархического спуска, либо тогда уже программно обрабатывать в модуле объекта. Возможно вам также поможет статья https://start1c.blogspot.com/2017/01/blog-post.html