СКД. Поле данных через "ВЫЧИСЛИТЬВЫРАЖЕНИЕ" и группировка по нему #810086


#0 by mzelensky
Доброго времени суток! Платформа 1С 8.2.19. Имеется отчет на СКД. В вычисляемых полях имеется вычисляемое поле "ГруппаABC" - в зависимости от величины нарастающего итога проставляется класс (строкой): Выбор когда ВЫЧИСЛИТЬВЫРАЖЕНИЕ("Сумма(ДоляОтСуммыПродажи)", , ,"Первая", "Текущая") <= &ОбъемКласса_A Тогда "A-класс" когда ВЫЧИСЛИТЬВЫРАЖЕНИЕ("Сумма(ДоляОтСуммыПродажи)", , ,"Первая", "Текущая") > &ОбъемКласса_A И ВЫЧИСЛИТЬВЫРАЖЕНИЕ("Сумма(ДоляОтСуммыПродажи)", , ,"Первая", "Текущая") <= &ОбъемКласса_B Тогда "B-класс" Иначе "C-класс" Конец Далее хочу вывести отчет вида: Класс     (1 уровень) При попытке это сделать платформа вылетает с фатальной ошибкой и закрывается. Если Просто вывести детальные записи или только группировку по товару, то все отрабатывает нормально. Т.е. система не может построить группировку и этому моему вычисляемому полю. Вопрос - как решить проблему? Я где-то накосячил в постоении отчета или это ограничение платформы?
#1 by Гипервизор
Попробуйте использовать агрегатную функцию КлассификацияABC
#2 by mzelensky
Это откуда такая?
#3 by Гипервизор
Это из СКД. Появилась в 8.2.14.
#4 by mzelensky
Сделал вычисляемое поле "АБС": При формировании получаю: {Форма.Форма.Форма}: Ошибка при вызове метода контекста (Следующий)         ЭлементРезультатаКомпоновкиДанных = ПроцессорКомпоновкиДанных.Следующий; по причине: Ошибка компоновки данных по причине: Ошибка получения данных по причине: Ошибка в выражении по причине:
#5 by Гипервизор
А режим совместимости у вас какой? Вероятно нужен 8.2.16.
#6 by mzelensky
Видимо да. у меня он вообще 8.1 Да и нашел я видео, где объяснять по работе с этой функцией: Косяк в том, что в этом случае "Класс АБС" становится РЕСУРСОМ!!! И Группировку по нему уже не сделаешь. А мне нужно именно это
#7 by DrShad
можно и по ресурсам делать группировки
#8 by mzelensky
?
#9 by mzelensky
ап?
#10 by mzelensky
Мыслей на счет группировки нет?
#11 by тарам пам пам
ИМХО, здесь только в самом запросе вычислять классификацию, иначе что в варианте , что при использовании функции КлассификацияABC результат будет зависеть от настроек отчета.
#12 by mzelensky
Так он и должен зависить от настроек отчета. Я пробовал разные варианты. И чисто в отчете считать и как в предлагали. Но самый удачный вариант у меня получается именно, как описано в . Все считается правильно. Косяк только в выводе группировки. Если выводить как детальные записи или как ресурс, то проблемы нет, но тогда отчет выглядит немного не удобно.
#13 by тарам пам пам
падает у тебя, т. к. чтобы получить значение текущей группировки, тебе нужно рассчитать класс, а класс считается в разрезе текущей группировки - рекурсия получается. Попробуй тогда задать конкретную группировку в ВычислитьВыражение. Правда вангую, что все равно не поможет (разве что отчет перестанет падать), так как ВычислитьВыражение не может спуститься "вниз" - оно работает только в контексте текущей/родительской группировки.
#14 by mzelensky
Пробовал указывать Группировку - все равно падает
#15 by mzelensky
Уже подумываю об изврате вроде сделать расчет в одном макете скд, выгрузить в ТЗ, загнать тут же эту ТЗ в другой макет СКД и вывести пользователю. НО встает гемор с настройкой схемы СКД.
#16 by mzelensky
В общем не нашел ничего более лучшего ,чем реализовать вариант из . Самое забавное, что ОНО работает.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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