Имя: Пароль:
1C
1С v8
Ошибка "Поле не может быть использовано в группировке" ☑
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
Основная теорема систематики: Новые системы плодят новые проблемы.