Итоги по иерархии #733856


#0 by Kleopatra2803
Добрый день! Передаю в скд в набор данных объект таблицу значений вида номенклатура - период - расход. в скд на закладке вычисляемые поля рассчитываю поле дефицит. при выводе данные считаются правильно... но! мне нужно номенклатуру выводить в иерархии. Для этого в группировке задаю номенклатура(иерархия). В результате итоги по иерархии считаются неправильно. Думаю, что можно сделать через ресурсы с использованием вычислитьвыражение, но пока не получается. Помогите, пожалуйста, разобраться Скриншот:
#1 by rabbidX
Попробуйте через рассчитывать по .. Номенклатура Иерархия в ресурсах.
#2 by Kleopatra2803
пыталась - не помогает
#3 by Kleopatra2803
Возможно проблема в том, что в скд я передаю таблицу значений с периодом, а когда достаются группировки - я так думаю, что он наверное считает этот период пустым. потом в скд информация у меня выводится по периодам
#4 by Kleopatra2803
не могу до конца разобраться, как работают вычисляемые поля. чувствую, что через них надо делать, но не получается верное количество. вообще непонятно, как количество для группировок считается.
#5 by Alexaha
не уверен но может быть это поможет если у тебя ресурс - вычисляемое поле, то попробуй через "рассчитать по", но! используй не агрегатную функцию а подредактированную формулу самого  вычиляемого поля например (упрощенно) формула вп А/Б тогда в рассчитать по будет Сумма(А) / Сумма(Б)
#6 by Kleopatra2803
так, как вы предложили - не помогло. Решила попробовать работать с таблицей "извращенным" способом. Заметила, что для колонки расход - расход нарастающий по группировкам номенклатуры считается правильно. остальные поля вычисляемые. Поэтому возникло предположение, что если колонки вычисляемые я передам, как уже готовые, то в группировках сумма тоже будет считаться верно. Для этого результат, полученный в скд, я выгрузила в таблицу значений (соответственно группировок там быть не должно, а могут быть только детальные записи). Потом хочу эту таблицу значений передать в новую схему компоновки данных. Заметила, что когда ту же самую таблицу вывожу без группировок, только по детальным записям, то нарастающий итог перестает считаться, хотя с группировками все хорошо считается. Есть вообще возможность рассчитать нарастающий итог через ВычислитьВыражение не по группировкам, а по детальным записям? Или ВычислитьВыражение работает только для группировок? Сейчас код для нарастающего расхода такой: ВычислитьВыражение("Сумма(Расход)","Период","Группировка","Первая","Текущая")
#7 by Alexaha
можно формулу вычисляемого поля?
#8 by Kleopatra2803
ВычислитьВыражение("Сумма(Расход)","Период","Группировка","Первая","Текущая")
#9 by Kleopatra2803
хотя вообще-то правильно, что он не считает нарастающий итог. я же указала там считать по периоду. Он по идее должен считать по номенклатуре и по периоду наверно. В общем я запуталась окончательно)
#10 by Alexaha
а порядок группировок как заголовке темы?
#11 by Kleopatra2803
Таблица: Строки Материал - Материал.Артикул - Остаток - ЦенаЗакупа Колонки: Период Остальные поля в ресурсах
#12 by Kleopatra2803
а если тот вариант попробовать, который вы предлагали с суммами, как мое вычисляемое поле просуммировать, если оно имеет такой вид:
#13 by Kleopatra2803
я пыталась там суммы ставить после "тогда", а внутрь вычисляемые выражения засовывать. и еще последнее поле Расход в сумму
#14 by Kleopatra2803
в общем вот так:
#15 by Kleopatra2803
может я что-то не так делаю
#16 by Kleopatra2803
а нет, я наврала там Таблица: Строки Материал(иерархия) - Материал.Артикул - Остаток - ЦенаЗакупа Колонки: Период Остальные поля в ресурсах
#17 by Alexaha
сделал простейший вариант, группировки Номенкатура (иерархия) - период внутри иерархии итог нормально, в самих группах итог получается как итог предыдущей группы + нарастающий итог текущей т.е примерно так (период не указываю): Номенклатура    количество   нараст итог Группа1            20            20    товар1          15            15    товар2           5            20 группа2            15            35    товар3          10            10    товар4           5            15
#18 by Kleopatra2803
проблема в том, что для колонки расход, которая у меня задана на входе, в группировках все хорошо считается, и для колонки расход нарастающий тоже все правильно. количество в группах едет на колонке дефицит, которая рассчитывается с помощью вычисляемого выражения. для сравнения: расход нарастающий: ВычислитьВыражение("Сумма(Расход)","Период","Группировка","Первая","Текущая") дефицит: Выбор Когда Расход > ВычислитьВыражение("Сумма(Расход)","Период","Группировка","Первая","Текущая")  - Остаток - ВычислитьВыражение("Сумма(Заказано)","Период","Группировка","Первая","Текущая") Тогда ВычислитьВыражение("Сумма(Расход)","Период","Группировка","Первая","Текущая")  - Остаток - Заказано Иначе Расход Конец боюсь, что проблема и правда в том, что программа не может рассчитать сумму для такого большого вычисляемого поля
#19 by Alexaha
я правильно понимаю формулу дефицита? расход - НИ расход - Остаток - НИ заказ
#20 by Kleopatra2803
не совсем. Пока без заказано посчитаем. У них пока 0 заказы НИРасход - Остаток, а если расход < НИРасход - Остаток, то расход
#21 by Kleopatra2803
а можешь по тим вьюеру посмотреть? может так, что-нибудь заметишь?
#22 by Kleopatra2803
Помогите, пожалуйста. Может еще какие-нибудь идеи есть. а то второй день сижу с отчетом, а проблема только в группировках
#23 by Kleopatra2803
на текущий момент добавила дефицит в вычисляемое поле(пустое). в ресурсах считаю сумму через вычислитьвыражение и делаю рассчитывать по материалам. по материалам рассчитывает правильно, в группировках номенклатуры пусто. если добавляю рассчитывать по материалам и по материалам иерархии, то по материалам считает правильно, а в группировке суммы неверные.
#24 by Alexaha
у меня есть подозрение, что проблема во вложенности вычисления НИ, т.е при вычислении дефицита для отдельновзятой строки используется НИ, и сам дефицит мы хотим получить как НИ может попробовать сделать два прохода? 1. вычилить Деф для каждой строки, выгрузить в ТЗ 2. обработать ТЗ, получив НИ деф еще можно попробовать использовать ТипРасчета - Иерархия
#25 by Kleopatra2803
"еще можно попробовать использовать ТипРасчета - Иерархия" это где такое можно найти?
#26 by Alexaha
ТипРасчета. Тип Строка. Если параметр имеет значение "Иерархия", то выражение нужно вычислять для родительской иерархической записи, если таковая имеется, и для всей группировки, если родительской иерархической записи не имеется. Компоновщик макета при генерации выражения для поля "% в группе иерархии" генерирует выражение, содержащее отношение выражения ресурса к функции ВычислитьВыражение для выражения ресурса, вычисляемого для текущей группировки с типом вычисления "Иерархия".
#27 by Alexaha
во строенной справке есть полное описание функции ВычислитьВыражение
#28 by Alexaha
попробуй эту формулу вставлять ее на закладке ресурсы на закладке вычисляемые поля только наименование Выбор Когда Сумма(Расход) < ВычислитьВыражение("Сумма(Расход)", , , "Первая", "Текущая") - Сумма(Остаток) Конец
#29 by Kleopatra2803
это как-то так? Сумма(ВычислитьВыражение("Сумма(Расход)","Период","Иерархия","Первая","Текущая"))  - Сумма(Остаток) а как параметр передать, не совсем понимаю
#30 by Kleopatra2803
рассчитывать по номенклатуре и номенклатуре.иерархии? или вообще это поле не заполнять?
#31 by Alexaha
вот как написал так и попробуй, у меня что то похожее на истину получилось (ну в моем понимании) :)
#32 by Alexaha
по номелкатуре у меня одна группировка с типом иерархии Иерархия
#33 by Kleopatra2803
в вычисляемых полях дефицит пусто или номенклатура?
#34 by Kleopatra2803
я справшиваю, потому что у меня не получается. очень близко результат, но не тот
#35 by Alexaha
тлько путь к данным и заголовок, выражение пустое
#36 by Alexaha
ап
#37 by Kleopatra2803
все, я сделала, но по-другому. домой приду, напишу, как
#38 by Kleopatra2803
В общем ничего не получилось с ресурсами. Числа очень близко получались, но не те все равно. Сделала все, как ты сказал. В результате не нашла более лучшего варианта, как сформировать нарастающие итоги заранее в таблице значений (т.е. бегала в цикле по таблице, которая задана на входе до передачи ее в скд и добавляла к ней дополнительные колонки, которые как раз и заполняла в цикле). затем передала готовую таблицу значений в скд и вывела результаты. Спасибо тебе огромное за помощь!
#39 by Alexaha
понятно, не стала пробовать с двумя схемами СКД? благодарить не за что, в сухом остатке я ничем не помог :)
#40 by Kleopatra2803
С двумя схемами СКД не получилось бы, потому что накопительный итог через ВычислитьВыражение считается только внутри группировок. У меня была настройка таблица, а ее нельзя выгрузить в таблицу и загрузить снова в СКД. Только детальные записи или примитивные группировки можно. А если поставит в настройки только группировку без таблицы, то накопительный итог считается по номенклатуре, а мне нужно, чтоб считался по периоду
#41 by Alexaha
а может тебе поможет ВычислитьВыражениеСГруппировкойМассив?
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С