В общем ума не приложу как в СКД сделать тривиальную для бухгалтеров и непосильную для программиста вещь. А именно, объединить заголовок группировки разворачивающийся по горизонтали? Подробней проблему можно увидить на картинке.
Группировки примерно такие
Завтрак
__каша
__суп
__чай
Обед
__каша
__Суп
__Чай
Но чтобы Завтрак был написан одним словом над всеми блюдами.
(1) kosikov_oleg, вот тут я уже приводил решение похожего вопроса. Там нужно было объединить ячейки по вертикали. Но принцип можно использовать такой же
(5) kosikov_oleg,
чисто средствами СКД - ячейки не объединить, поэтому сначала надо подготовить табличный документ, потом кодом объединить нужные ячейки.
Вопрос в том, как узнать какие ячейки объединять. Для этого используется МаркерОбъединения - некоторая ключевая конструкция, которая дописывается в каждую объединяемую ячейку. В моем случае маркером объединения выступает строка "{ОБЪЕДИНИТЬ}"
(6) yurii_host,
в общем последовательность действий состоит из нескольких простых шагов:
1. При формировании СКД нужно в объединяемые ячейки добавить текст с маркером объединения. В моем примере это сделано через вычисляемые поля. см. прикрепленный рисунок
2. В обработчике ПриКомпоновкеРезультата() выставляем СтандартнаяОбработка = ЛОЖЬ и формируем табличный документ
3. Вызываем специальную функцию ОбъединтьЯчейкиВТабличномДокументе(ТабличныйДокумент, МаркерОбъединения), которая находит ячейки, содержащие указанный маркер и объединяет те их них, которые содержат маркер объединения, содержат одинаковый текст и находятся рядом друг с другом.
4. Удаляем маркер объединения с помощью функции ЗаменитьТекстВТабличномДокументе(ТабличныйДокумент, ПодстрокаПоиска, ПодстрокаЗамены), которая ищет подстроку поиска по всем ячейкам табличного документа и заменяет ее на подстроку замены. В нашем случае на пустую строку
(13) расшифровка отключается потому что в ячейке выводится строка, а не ссылка.
Также при СтандартнаяОбработка = Ложь, нужно передавать расшифровку в процедуру по выводу отчета:
(14) Спасибо автору за этот способ и отдельное спасибо за комментарий про расшифровку. Может кому-то поможет поэтому добавлю, что для корректной работы расшифровок и чтобы не добавлять дополнительных полей использовал "выражение представления" вместо "вычисляемых полей"
3. Все отлично работает. Поля объединяются (проверено для нескольких строк в разных столбцах). Расшифровка работает. Переход по ссылке работает. Скрины во вложении.
kosikov_oleg, 1C_Lab, спасибо за отличную идею и код!