Есть типовой отчет "Динамика задолженности покупателей".

Изменили настройку варианта отчета "Динамика задолженности покупателей по договорам". Добавили верхнюю группировку по полю комментарий, чтобы группировать договоры по типам (аренда, заявки, парковка и т.д)

Решение конечно не ахти, но тогда не хотелось менять типовую конфигурацию.

Настройка и сам отчет на картинках во вложении.

Проблемы с расшифровкой.

По строке (даже ограниченной длины отбор с условием "равно" не работает)
Пишет
Отчет не сформирован! {(14, 222)}: Неверные параметры в операции сравнения. Нельзя сравнивать поля
 неограниченной длины и поля несовместимых типов.
РегистрБухгалтерии.Хозрасчетный.Обороты(&П, &П2, , Счет В (&СчетаБезДокументаРасчетов), &ВидыСубконтоКД, (((ВЫРАЗИТЬ(Субконто2 КАК Справочник.ДоговорыКонтрагентов).ВидДоговора В (&ВидыДоговоров)) И Субконто2.Комментарий <<?>>= &П5) И Субконто1 = &П6) И Субконто2 = &П7, , ) КАК ХозрасчетныйОбороты

А если условие "равно" по группировки комментарий меню на условие "содержит" то тогда расшифровка формируется.

Как лучше всего исправить этот косяк, подскажите...
---
В общем после долгих мучений вышел из ситуации следующим образом
Добавил в процедуру общего модуля БухгалтерскиеОтчетыВызовСервера.Подготовить Отчет()

после строки НастройкиДляКомпоновкиМакета = КомпоновщикНастроек.ПолучитьНастройки();

следующий блок проверяющий есть ли поле компоновки "Договор.Комментарий" и заменяющая "равно" на "содержит"

```1c
    //Отбор
    ЭлементыОтбора = НастройкиДляКомпоновкиМакета.Отбор.Элементы;
    Для каждого ЭлементОтбора Из ЭлементыОтбора Цикл

    Если ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных ("Договор.Комментарий")
    И ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно Тогда

    ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Содержит;

    КонецЕсли;

    КонецЦикла;
```
---
а так пробовали
... и выразить(Субконто2.Комментарий как Строка(100)) = &П5
---
Это условие отбора для расшифровки я так понимаю система создает автоматически. В какой момент перехватывать управления и менять запрос?
---
у результата отчета, табличный документ, есть событие: ОбработкаРасшифровки
---
Только проблема в этом отчете Нет ОбработкиРасшифровки
А при компоновке результата используется следующая конструкция

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)

 // Отключаем стандартную обработку, т.к. формировать отчет будем "вручную".
 СтандартнаяОбработка = Ложь;
 БухгалтерскиеОтчетыВызовСервера.ОбработкаСобытияПриКомпоновкеРезультата(ЭтотОбъект, ДокументРезультат, ДанныеРасшифровки);

КонецПроцедуры

И используется стандартная расшифровка общего модуля БухгалтерскиеОтчетыКлиент.ОбработкаРасшифровкиСтандартногоОтчета

Что будет если я в форме отчета пропишу свою обработку расшифровки?
---
Разобрался, что нужно пилить процедуру общего модуля БухгалтеркиеОтчетыВызовСервера.ИнициализацияРасшифровкиПоВиду()
---
Строки сравниваются через "Подобно"
---
Отказаться от поля Комментарий в пользу доп. реквизита договора.
---
это да. Но конфа уже доработанная. Поэтому все-таки хочу отследить, где при обработке расшифровки происходит инициализация отбора по полю "Комментарий" и поменять условие с "равно" на "содержит", чтобы не писать обработку по замене комментария на реквизит по всем договорам.
---
В общем после долгих мучений вышел из ситуации следующим образом
Добавил в процедуру общего модуля БухгалтерскиеОтчетыВызовСервера.Подготовить Отчет()

после строки НастройкиДляКомпоновкиМакета = КомпоновщикНастроек.ПолучитьНастройки();

следующий блок проверяющий есть ли поле компоновки "Договор.Комментарий" и заменяющая "равно" на "содержит"

```1c
    //Отбор
    ЭлементыОтбора = НастройкиДляКомпоновкиМакета.Отбор.Элементы;
    Для каждого ЭлементОтбора Из ЭлементыОтбора Цикл

    Если ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных ("Договор.Комментарий")
    И ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно Тогда

    ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Содержит;

    КонецЕсли;

    КонецЦикла;
```