Найденные решения
Вопрос старый, но все таки напишу свое решение:
дробление колонок при сохранении в Excel возникает из-за того, что в отчет выводится несколько разных областей (на скриншоте это область параметров и область самого отчета) и у каждой области своя ширина колонок.
Выхода тут два:
1) Выводить в отчет только одну область (т.е. не выводить параметры, отборы, заголовки и в группировках на верхнем уровне должна быть только одна группировка - подгруппировок может быть сколько угодно)
2) Сделать ширину колонок в каждой области одинаковой. Что бы добиться этого есть опять же два пути:
2.1 Изменить табличный документ после вывода отчета (или до сохранения в Excel)
2.2 Программно доработать МакетКомпоновки присвоив каждой области одинаковую ширину.
минус этого подхода - нужно заранее определить ширину колонок отчета
дробление колонок при сохранении в Excel возникает из-за того, что в отчет выводится несколько разных областей (на скриншоте это область параметров и область самого отчета) и у каждой области своя ширина колонок.
Выхода тут два:
1) Выводить в отчет только одну область (т.е. не выводить параметры, отборы, заголовки и в группировках на верхнем уровне должна быть только одна группировка - подгруппировок может быть сколько угодно)
2) Сделать ширину колонок в каждой области одинаковой. Что бы добиться этого есть опять же два пути:
2.1 Изменить табличный документ после вывода отчета (или до сохранения в Excel)
2.2 Программно доработать МакетКомпоновки присвоив каждой области одинаковую ширину.
// Для того, чтобы таб. документ сохранялся в Excel c тем же количеством колонок
// установим фиксированную ширину колонок во всех макетах.
Для Каждого ОписаниеМакета Из МакетКомпоновки.Макеты Цикл
Для Каждого СтрокаТаблицыОбласти Из ОписаниеМакета.Макет Цикл
ЭтоПерваяЯчейка = Истина;
Для Каждого Ячейка Из СтрокаТаблицыОбласти.Ячейки Цикл
Если ЭтоПерваяЯчейка Тогда
Ячейка.Оформление.УстановитьЗначениеПараметра("МинимальнаяШирина", 47); //ширина первой колонки
Ячейка.Оформление.УстановитьЗначениеПараметра("МаксимальнаяШирина", 47);
ЭтоПерваяЯчейка = Ложь;
Иначе
Ячейка.Оформление.УстановитьЗначениеПараметра("МинимальнаяШирина", 22); //ширина второй и последующих колонок
Ячейка.Оформление.УстановитьЗначениеПараметра("МаксимальнаяШирина", 22);
КонецЕсли;
КонецЦикла;
КонецЦикла;
КонецЦикла;
Показатьминус этого подхода - нужно заранее определить ширину колонок отчета
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Зависит от настроек отчета. Иногда помогает этот способ:
- запретить вывод отборов и параметров;
- создать группировку с детальными записями. Удалить из нее все поля выбора. Нужные группировку вложить в эту группировку.
- запретить вывод отборов и параметров;
- создать группировку с детальными записями. Удалить из нее все поля выбора. Нужные группировку вложить в эту группировку.
Вопрос старый, но все таки напишу свое решение:
дробление колонок при сохранении в Excel возникает из-за того, что в отчет выводится несколько разных областей (на скриншоте это область параметров и область самого отчета) и у каждой области своя ширина колонок.
Выхода тут два:
1) Выводить в отчет только одну область (т.е. не выводить параметры, отборы, заголовки и в группировках на верхнем уровне должна быть только одна группировка - подгруппировок может быть сколько угодно)
2) Сделать ширину колонок в каждой области одинаковой. Что бы добиться этого есть опять же два пути:
2.1 Изменить табличный документ после вывода отчета (или до сохранения в Excel)
2.2 Программно доработать МакетКомпоновки присвоив каждой области одинаковую ширину.
минус этого подхода - нужно заранее определить ширину колонок отчета
дробление колонок при сохранении в Excel возникает из-за того, что в отчет выводится несколько разных областей (на скриншоте это область параметров и область самого отчета) и у каждой области своя ширина колонок.
Выхода тут два:
1) Выводить в отчет только одну область (т.е. не выводить параметры, отборы, заголовки и в группировках на верхнем уровне должна быть только одна группировка - подгруппировок может быть сколько угодно)
2) Сделать ширину колонок в каждой области одинаковой. Что бы добиться этого есть опять же два пути:
2.1 Изменить табличный документ после вывода отчета (или до сохранения в Excel)
2.2 Программно доработать МакетКомпоновки присвоив каждой области одинаковую ширину.
// Для того, чтобы таб. документ сохранялся в Excel c тем же количеством колонок
// установим фиксированную ширину колонок во всех макетах.
Для Каждого ОписаниеМакета Из МакетКомпоновки.Макеты Цикл
Для Каждого СтрокаТаблицыОбласти Из ОписаниеМакета.Макет Цикл
ЭтоПерваяЯчейка = Истина;
Для Каждого Ячейка Из СтрокаТаблицыОбласти.Ячейки Цикл
Если ЭтоПерваяЯчейка Тогда
Ячейка.Оформление.УстановитьЗначениеПараметра("МинимальнаяШирина", 47); //ширина первой колонки
Ячейка.Оформление.УстановитьЗначениеПараметра("МаксимальнаяШирина", 47);
ЭтоПерваяЯчейка = Ложь;
Иначе
Ячейка.Оформление.УстановитьЗначениеПараметра("МинимальнаяШирина", 22); //ширина второй и последующих колонок
Ячейка.Оформление.УстановитьЗначениеПараметра("МаксимальнаяШирина", 22);
КонецЕсли;
КонецЦикла;
КонецЦикла;
КонецЦикла;
Показатьминус этого подхода - нужно заранее определить ширину колонок отчета
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот