|
Ошибка "Поле не может быть использовано в группировке" | ☑ | ||
|---|---|---|---|---|
|
0
tripledot
02.07.21
✎
08:49
|
Здравствуйте. Столкнулся с ошибкой "Поле не может быть использовано в группировке".
https://ibb.co/njQgLyX Ошибка появляется в измененной ОСВ, при ее формировании с выбранным полем для сортировки (если выбран ресурс, например Начислено, то ошибки нет). https://ibb.co/bJ1411P Была поставлена задача доработать стандартную ОСВ проф, а именно добавить шапку и подвал в отчет, а также вычисляемые поля "Количество лицевых счетов", и Сумма нескольких полей (Начисленно + Корректировка + Перерасчет - Скидки)). Шапку и подвал реализовал с помощью макетов в СКД https://ibb.co/9bh4x7R https://ibb.co/c1Z7669 Соответственно отключил вывод стандартной шапки [CODE] //++ФАМ //Отключение вывода ПараметровДанных и Отбора в шапку отчета ПараметрВыводитьПараметрыДанных = Отчет.КомпоновщикНастроек.Настройки.ПараметрыВывода.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("ВыводитьПараметрыДанных")); ПараметрВыводитьПараметрыДанных.Значение = ТипВыводаТекстаКомпоновкиДанных.НеВыводить; ПараметрВыводитьПараметрыДанных.Использование = Истина; ПараметрВыводитьОтбор = Отчет.КомпоновщикНастроек.Настройки.ПараметрыВывода.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("ВыводитьОтбор")); ПараметрВыводитьОтбор.Значение = ТипВыводаТекстаКомпоновкиДанных.НеВыводить; ПараметрВыводитьОтбор.Использование = Истина; //Записываем значения в параметры СКД ПараметрПериодОтчета = Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("ПериодОтчета")); ПараметрПериодОтчета.Значение = Формат(Период.ДатаНачала, "ДФ=dd.MM.yyyy; ДП=...") + " - " + Формат(Период.ДатаОкончания, "ДФ=dd.MM.yyyy; ДП=..."); ПараметрПериодОтчета.Использование = Истина; //--ФАМ[/CODE] Разрешил использование общих модулей, т.к. необходимо было определить ответственного пользователя (ТекущийПользователь) [CODE]//++ФАМ 4ый параметр - Истина (разрешить использование общих модулей) //ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,Новый Структура("Характеристики",Характеристики),ДанныеРасшифровки; ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,Новый Структура("Характеристики",Характеристики),ДанныеРасшифровки, Истина); //--ФАМ [/CODE] Также в Модуле Формы Отчета, Модуле Формы Настроек, Модуле Менеджера, Модуле Объекта необходимо было поменять индекс в строке обращения к Структуре: Эту: [CODE]Колонки = КомпоновщикНастроек.Настройки.Структура[0].Колонки;[/CODE] На эту: [CODE]Колонки = КомпоновщикНастроек.Настройки.Структура[1].Колонки;[/CODE] Т.к. первым элементом структуры теперь является добавленная мною Шапка, а не таблица. https://ibb.co/DpbSTzG В СКД создал новые вычисляемые поля и затем добавил в Ресурсы. https://ibb.co/sJ6Xv02 После внесения изменений работает все, кроме сортировки. Может быть кто-то сталкивался с данной проблемой и сможет подсказать в чем ее суть? В гугле нашел похожие темы, но они не применимы к моей ситуации. Прикладываю архив с кодом стандартной ОСВ проф и с кодом измененной. Первый пишу на форум, поэтому извиняюсь если что-то не так. Любую недостающую информацию уточню при необходимости. |
|||
|
1
tripledot
02.07.21
✎
08:52
|
||||
|
2
tripledot
02.07.21
✎
10:28
|
Если убрать шапку и подвал, то сортировка работает. Думаю, что проблема в КомпоновщикНастроек.Настройки.Структура[0].Колонки;
Я уже несколько раз перепроверил, все подобные обращения в коде к ...Структура[0]; Я уже заменил на ...Структура[1]; |
|||
|
3
Ёпрст
гуру
02.07.21
✎
10:40
|
выбранное поле в сортировке не участвует в основном селекте
|
|||
|
4
Ёпрст
гуру
02.07.21
✎
10:40
|
добавь его группировку
|
|||
|
5
tripledot
02.07.21
✎
11:06
|
(3) (4) Он уже присутствует в группировке, если я правильно понял https://ibb.co/YtL0nw0
|
| Форум | Правила | Описание | Секции | Поиск |