Проблема была решена использованием измененного шрифта (шрифт и демо обработка для управляемых форм во вложении). Часть ненужных символов в кириллице была заменена на жирные. Сам шрифт Liberation Serif является бесплатным (GNU GPLv2). Ниже приведен код из приложенной обработки для вывода части текста жирным. Тестировалось на платформе 1С:Предприятие 8.3 (8.3.10.2561) в конфигурации 1С:ERP Управление предприятием 2 (2.4.1.189).
&НаСервере
Функция ВывестиТабДокНаСервере()
ТабДок=Новый ТабличныйДокумент;
Макет = РеквизитФормыВЗначение("Объект").ПолучитьМакет("Макет");
Область=Макет.ПолучитьОбласть("Шапка");
Область.Параметры.Текст="Демонстрация части текста "+СделатьЖирным("жирным")+" в табличном документе";
ТабДок.Вывести(Область);
Возврат ТабДок;
КонецФункции
&НаСервере
Функция СделатьЖирным(ИсходнаяСтрока)
СтрокаПодмены="ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿāĂĄąĆćĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġ";
СтрокаПоиска="АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдужзийклмнопрстнфхцчшщъыьэюяё!#$%&()*+,-./0123456789:;<=>№";
НоваяСтрока="";
Для х=1 по СтрДлина(ИсходнаяСтрока) Цикл
ТекСимвол=Сред(ИсходнаяСтрока,х,1);
Если СтрНайти(СтрокаПоиска,ТекСимвол)>0 Тогда
НоваяСтрока=НоваяСтрока+Сред(СтрокаПодмены,СтрНайти(СтрокаПоиска,ТекСимвол),1);
Иначе
НоваяСтрока=НоваяСтрока+ТекСимвол;
КонецЕсли;
КонецЦикла;
Возврат НоваяСтрока;
КонецФункции
&НаКлиенте
Процедура ВывестиТабДок(Команда)
ВывестиТабДокНаСервере().Показать("Демо");
КонецПроцедуры
Правда, у этого метода есть и недостаток (помимо необходимостьи установки шрифта на клиенте и/или сервере). 1С в табличном документе не выравнивает шрифты по ширине, кроме нескольких стандартных (Arial, Tahoma, New York Times…). Надеюсь, этот недостаток будет в ближайшее время все же исправлен разработчиком.
Костиль по-проще — это «Текст» но тогда нужно играть в тетрис блд)
Лучше уж на ячейки разбить и оформление поменять. Ну или макет в Word.
Если я захочу потом выделить жирный текст и погуглить его?
Плюс за интересную идею, но как только кому то пошлют накладную…
(0)
Что за чудо шрифт такой?!
(4) О, это такой же как знаменитый шрифт Komsomolskaya pravda, только наклонен чуть в сторону запада.
(1) Можете пояснить? непонятно что за «Текст», блд)
(6)ну шейпами. Фигурами с текстом
Макет = РеквизитФормыВЗначение(«Объект»).ПолучитьМакет(«Макет»)
Где-то умер один хороший 1с-ник.
И, да,… нужно БОЛЬШЕ контекстных вызовов!
В аду есть котел специально для таких упырей, которые не соблюдают форматирование и херачат все в одну строку без пробелов и разделителей. Блевать хочется при чтении такого кода.
(8) Это упрёк или так… занудство? Что тут крамольного «Макет = РеквизитФормыВЗначение(«Объект»).ПолучитьМакет(«Макет»)»?!
(10) Если вы все еще считаете, что бесполезное создание объекта — это норма, тогда упрек.
РеквизитФормыВЗначение(«Объект») это стало почти рудиментом и используется совместимости с «обычноформенными» программистами. В программировании уже почти не встречается, только в очень особых случаях.
Здесь: почему бы макет не получить из менеджера и БЕЗ контекстного вызова?
Контекстные вызовы — основная проблема производительности УФ.
АП: И туда же, в копилку антипроизводительности, передача ТабличногоДокумента с сервера на клиент. Уж не знаю, почему 1с не оптимизировала это действие на уровне платформы, да еще и в типовых так же делает. Но большой таблдок может передаваться пару минут (даже на одном хосте), а если через временное хранилище — пролазит даже по сетке за секунду.
(11) [IS-QUOTE] >> Здесь: почему бы макет не получить из менеджера и БЕЗ контекстного вызова? <<
Из менеджера конечно можно, а если это внешняя печатная форма или обработка, тогда как?! Ваше решение?
>>И туда же, в копилку антипроизводительности, передача ТабличногоДокумента с сервера на клиент<<
Аналогично. Ваше решение для ВПФ…
(9)Каких именно вам не хватает разделителей. И для чего?
Вам важно какую-то строку или знак выделить? Он особенный? На нём важно сконцентрировать внимание? При чтении кода именно он должен бросаться в глаза?
(9), вам наверное тут разделителей и пробелов не хватает? :))))
опрстнфхцчшщъыьэюяё!#$%&()*+,-./0123456789:;<=>№»;
СтрокаПодмены=»ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿāĂĄąĆćĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġ»;
СтрокаПоиска=»АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдужзийклмн
Идея классная! Как раз для реализации своих «проблем» понадобилась. Попробую заточить под себя.
Есть две ошибки в строке (как минимум):
опрстнфхцчшщъыьэюяё!#$%&()*+,-./0123456789:;<=>№»;
опрстуфхцчшщъыьэюяё!#$%&()*+,-./0123456789:;<=>№»;
СтрокаПоиска=»АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдужзийклмн
я заменил на:
СтрокаПоиска=»АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмн
Но все равно автору огромное спасибо!
Спасибо автору, я тут смотрю некоторые против кода и тд. Мое личное мнение если есть замена текущему решению то показать его и уже потом можно сказать чем лучше новое решение и чем хуже старое а если нету чем заменить решение лучше не трогать текущее решение.