На работе используем достаточно сложные табличные макеты документов, где не обойтись без сгруппированных текстовых блоков, поскольку это удобно. Пока их просто печатали с печатной формы все было нормально, а вот сохранение в PDF поставило проблему: текст сгруппированных текстовых блоков не печатается, иногда даже и после разгруппировки. Выяснилось, что на управляемых формах мы бы заметили эту проблему гораздо раньше, поскольку там она распространяется и на элемент формы ТабличныйДокумент. Также проявляется проблема, если использовать метод Табличного документа Показать().
Если взглянуть на проблему изнутри, то окажется, что для обычных блоков прописана общая кодировка текста, заданная как # в начале описания табличного макета, а для сгруппированных указывается ru - в итоге, их текст не обрабатывается корректно и не отображается. Исправить это не сложно, достаточно исправить все такие объявления:
Процедура СкорректироватьТабличныйДокумент(ТабДокумент) Экспорт
ИмяФайла = ПолучитьИмяВременногоФайла("mxl");
ТабДокумент.Записать(ИмяФайла, ТипФайлаТабличногоДокумента.MXL);
Читатель = Новый ЧтениеТекста(ИмяФайла, КодировкаТекста.UTF8);
ТекстТабДока = Читатель.Прочитать();
Читатель.Закрыть();
ТекстТабДока = СтрЗаменить(ТекстТабДока, """ru""", """#""");
// чтобы записать без BOM
ЗТ = Новый ЗаписьТекста(ИмяФайла, КодировкаТекста.ANSI);
ЗТ.Закрыть();
Писатель = Новый ЗаписьТекста(ИмяФайла, КодировкаТекста.UTF8, , Истина);
Писатель.Записать(ТекстТабДока);
Писатель.Закрыть();
ТабДокумент = Новый ТабличныйДокумент;
ТабДокумент.Прочитать(ИмяФайла);
УдалитьФайлы(ИмяФайла);
КонецПроцедуры
Единственное ограничение такого метода, что на элемент Табличный документ для Обычных форм эти сгруппированные блоки, наоборот не выведутся, а для остальных сценариев - победа!)
К публикации прилагаю обработку с демонстрацией. Работает как на обычных, так и на управляемых формах. Баг зарегистрирован, исправление ожидается в версии 8.5.2. На версии 8.5.1.960 и более ранних проблема присутствует (а если покопаться в памяти, то на УФ проблема появилась версии 8.3.18 или чуть раньше - тогда обошлись пересозданием сгруппированных блоков)
P.S. Поясню картинку: оказалось, что, по крайней мере, на версии 8.5, если создать блоки и сохранить макет, то нужный атрибут блока пропишется и его можно будет группировать без проблем. А вот с разгруппированным блоком такая история обычно не прокатывает.
Проверено на следующих конфигурациях и релизах:
- 1С:Библиотека стандартных подсистем, редакция 3.1, релизы 3.1.11.335
Вступайте в нашу телеграмм-группу Инфостарт