Вывод части текста жирным в табличном документе

27.09.17

Разработка - Инструментарий разработчика

Иногда бывает необходимо выделить часть текста в ячейке табличного документа жирным шрифтом, например ФИО или контрагента, но стандартными методами 1С этого не поддерживают. Весть текст в ячейке содержит единое оформление. Может, когда-нибудь форматированная строка станет доступна и для табличного документа... Ну, а пока приходится делать "костыли" для реализации данного функционала.

Скачать файлы

Наименование Файл Версия Размер
Шрифт и демо обработка для управляемых форм
.zip 203,80Kb
99
.zip 203,80Kb 99 Скачать

Проблема была решена использованием измененного шрифта (шрифт и демо обработка для управляемых форм во вложении). Часть ненужных символов в кириллице была заменена на жирные. Сам шрифт 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...). Надеюсь, этот недостаток будет в ближайшее время все же исправлен разработчиком.

Часть текста жирным в табличном документе

См. также

SALE! 20%

Infostart Toolkit: Инструменты разработчика 1С 8.3 на управляемых формах

Инструментарий разработчика Роли и права Запросы СКД Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

13000 10400 руб.

02.09.2020    121569    670    389    

710

SALE! 25%

Infostart PrintWizard

Пакетная печать Печатные формы Инструментарий разработчика Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:Конвертация данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

Инструмент, позволяющий абсолютно по-новому взглянуть на процесс разработки печатных форм. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и "прозрачность" разработки, а также навести порядок в многообразии корпоративных печатных форм.

18000 15300 руб.

06.10.2023    7257    21    6    

39

SALE! 20%

Infostart УДиФ: Управление данными и формами

Инструменты администратора БД Инструментарий разработчика Роли и права Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

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

10000 8000 руб.

10.11.2023    3492    11    1    

33

SALE! 30%

PowerTools

Инструментарий разработчика Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

3600 2520 руб.

14.01.2013    177720    1073    0    

849

Многопоточность. Универсальный «Менеджер потоков» 2.1

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    99336    239    97    

296

[ЕХТ] Фреймворк для Расширений 1С

Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Платные (руб)

"Фреймворк для Расширений 1С" это универсальное и многофункциональное решение, упрощающее разработку и поддержку создаваемых Расширений. Поставляется в виде комплекта из нескольких Расширений с открытым исходным кодом. Работает в любых Конфигурациях в режиме Управляемого приложения с режимом совместимости 8.3.12 и выше без необходимости внесения изменений в Конфигурацию.

3000 руб.

27.08.2019    18097    6    8    

39

1С HTML Шаблоны / HTML Templates

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Быстрая и удобная обработка для работы с шаблонами HTML. Позволяет легко и быстро формировать код HTML.

2040 руб.

27.12.2017    28089    3    10    

15

Выполнение произвольного кода или запроса с параметрами через Web-сервис (замена COM-подключений)

Инструментарий разработчика Обмен между базами 1C Платформа 1С v8.3 Платные (руб)

В процессе работы в 1С часто возникает потребность получить данные из другой базы.  Обычно это делается через COM-соединение, и время выполнения запроса при этом оставляет желать лучшего. В данной публикации представлено универсальное решение, позволяющее практически моментально выполнить произвольный код или запрос с параметрами в другой информационной базе через Web-сервис.

2400 руб.

24.09.2019    23592    15    15    

32
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. DJDUH 17 27.09.17 11:00 Сейчас в теме
Костиль по-проще - это "Текст" но тогда нужно играть в тетрис блд)
6. Alien_job 190 29.09.17 14:18 Сейчас в теме
(1) Можете пояснить? непонятно что за "Текст", блд)
7. DJDUH 17 30.09.17 07:10 Сейчас в теме
(6)ну шейпами. Фигурами с текстом
2. davealone 165 27.09.17 11:12 Сейчас в теме
Лучше уж на ячейки разбить и оформление поменять. Ну или макет в Word.
Если я захочу потом выделить жирный текст и погуглить его?
Rudnik_91; Mechanik21; user600603_v.soldatova; Orlando Skibraves; NazarovV; 1Cuser38; h00k; kraynev-navi; emakei; Darklight; sasha777666; +11 1 Ответить
3. kiruha 388 28.09.17 19:14 Сейчас в теме
Плюс за интересную идею, но как только кому то пошлют накладную...
Дмитрий74Чел; ivangrant; krosaf4eg; shard; JohnyDeath; +5 Ответить
4. h00k 50 28.09.17 20:37 Сейчас в теме
(0)
New York Times

Что за чудо шрифт такой?!
user1706724; VKuser330779760; igee12; mrXoxot; +4 Ответить
5. &rew 49 29.09.17 07:38 Сейчас в теме
(4) О, это такой же как знаменитый шрифт Komsomolskaya pravda, только наклонен чуть в сторону запада.
Rudnik_91; user1706724; Bolnov; Sergafan10; Ali_q; ixijixi; Merkalov; Stipank; ivangrant; user688392_4kl; sm.artem; tsatsur; TeMochkiN; smilemanrus; CyberCerber; WellMaster; Vlad_2008; hornet_X; shard; BiTwaR; JohnyDeath; NazarovV; rujiy_kot; h00k; Muzik92; корум; mrXoxot; +27 Ответить
8. nvv1970 05.10.17 14:05 Сейчас в теме
&НаСервере
Макет = РеквизитФормыВЗначение("Объект").ПолучитьМакет("Макет")
Где-то умер один хороший 1с-ник.
И, да,... нужно БОЛЬШЕ контекстных вызовов!
10. fomix 33 10.10.17 18:44 Сейчас в теме
(8) Это упрёк или так... занудство? Что тут крамольного "Макет = РеквизитФормыВЗначение("Объект").ПолучитьМакет("Макет")"?!
11. nvv1970 10.10.17 21:36 Сейчас в теме
(10) Если вы все еще считаете, что бесполезное создание объекта - это норма, тогда упрек.
РеквизитФормыВЗначение("Объект") это стало почти рудиментом и используется совместимости с "обычноформенными" программистами. В программировании уже почти не встречается, только в очень особых случаях.
Здесь: почему бы макет не получить из менеджера и БЕЗ контекстного вызова?
Контекстные вызовы - основная проблема производительности УФ.

АП: И туда же, в копилку антипроизводительности, передача ТабличногоДокумента с сервера на клиент. Уж не знаю, почему 1с не оптимизировала это действие на уровне платформы, да еще и в типовых так же делает. Но большой таблдок может передаваться пару минут (даже на одном хосте), а если через временное хранилище - пролазит даже по сетке за секунду.
user712426; Jarold; maksal; +3 Ответить
12. fomix 33 11.10.17 10:09 Сейчас в теме
(11) [IS-QUOTE] >> Здесь: почему бы макет не получить из менеджера и БЕЗ контекстного вызова? <<
Из менеджера конечно можно, а если это внешняя печатная форма или обработка, тогда как?! Ваше решение?

>>И туда же, в копилку антипроизводительности, передача ТабличногоДокумента с сервера на клиент<<
Аналогично. Ваше решение для ВПФ...
user1835472; almierm; unknown181538; Raskad; user1135816; SlavaKron; +6 Ответить
9. artemusII 07.10.17 20:12 Сейчас в теме
В аду есть котел специально для таких упырей, которые не соблюдают форматирование и херачат все в одну строку без пробелов и разделителей. Блевать хочется при чтении такого кода.
vlasin; moiseeves; kyrasol; avk_avk; Сто27001; +5 1 Ответить
13. SuperSpade 13.02.18 14:08 Сейчас в теме
(9)Каких именно вам не хватает разделителей. И для чего?
Вам важно какую-то строку или знак выделить? Он особенный? На нём важно сконцентрировать внимание? При чтении кода именно он должен бросаться в глаза?
14. igee12 16.08.18 11:34 Сейчас в теме
(9), вам наверное тут разделителей и пробелов не хватает? :))))
СтрокаПодмены="ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿāĂĄąĆćĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġ";
СтрокаПоиска="АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдужзийклмн­опрстнфхцчшщъыьэюяё!#$%&()*+,-./0123456789:;<=>№";
kislitsin; e.kogan; +2 Ответить
15. Nickon 26.09.18 21:51 Сейчас в теме
Идея классная! Как раз для реализации своих "проблем" понадобилась. Попробую заточить под себя.
16. researcher01 105 28.07.19 10:26 Сейчас в теме
Есть две ошибки в строке (как минимум):
СтрокаПоиска="АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдужзийклмн­опрстнфхцчшщъыьэюяё!#$%&()*+,-./0123456789:;<=>№";
я заменил на:
СтрокаПоиска="АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмн­опрстуфхцчшщъыьэюяё!#$%&()*+,-./0123456789:;<=>№";
maksa2005; igee12; +2 Ответить
17. researcher01 105 28.07.19 10:26 Сейчас в теме
Но все равно автору огромное спасибо!
18. aybek 05.12.19 08:20 Сейчас в теме
Спасибо автору, я тут смотрю некоторые против кода и тд. Мое личное мнение если есть замена текущему решению то показать его и уже потом можно сказать чем лучше новое решение и чем хуже старое а если нету чем заменить решение лучше не трогать текущее решение.
19. Slypower 2 17.02.20 09:18 Сейчас в теме
Скажите, а подчеркнутым часть теста сделать как? Какая строка подмены?
20. Bienko 212 25.02.20 08:03 Сейчас в теме
(19) Доброе утро! Нужен редактор шрифтов и в шрифте поменять одни символы на другие. Я заменил символы старой кириллицы (они уж точно не используются) на жирные и потом подменой выводил их. Потом делаешь строку замены.
21. VALENTINA__8 16.02.21 17:50 Сейчас в теме
Добрый день, купила у вас. Какая то после замены тарабарщина вмсето русского языка( Это означает шрифт не подключился? У меня баха sql-ная.
22. Bienko 212 16.02.21 21:14 Сейчас в теме
Добрый вечер! Да, если "тарабарщина", то в системе не зарегистрирован шрифт или он не выбран в макете.
23. VALENTINA__8 17.02.21 14:12 Сейчас в теме
(22) все поняла))) Спасибо большое))) Разобралась)))
37. user1036607 10.11.22 20:32 Сейчас в теме
(23)Добрый день! А не помните, как разобрались? Тоже тарабарщина, хотя шрифт установил
38. Bienko 212 14.11.22 07:47 Сейчас в теме
(37) Вы, скорее всего, установили шрифт на локальном компьютере, а печать происходит на сервере. Установить шрифт на сервере.
39. user1036607 16.11.22 14:39 Сейчас в теме
(38)Эх чот никак(( на серваке тоже добавил этот шрифт. В макете этой ячейке тоже поставил этот шрифт, все равно краказябра
24. kova 11.06.21 08:56 Сейчас в теме
Добрый день! Установила шрифт Liberation Serif, все равно "тарабарщина". Платформа 8.3.16.
25. Bienko 212 11.06.21 12:18 Сейчас в теме
(24) Добрый день! Платформа на это не влияет. Тут два варианта, - в системе не зарегистрирован шрифт или он не выбран в макете. Причем, если вы работаете под сервером, например через RemoteAPP, то шрифт должен быть установлен на сервере.
26. kislitsin 13.08.21 09:10 Сейчас в теме
Приветствую коллеги.
В принципе у меня все работает , но есть неудобство если копировать текст из ячейки с этим шрифтом в буфер и вставлять то получаются так называемы крякозябы, подскажите может кто в курсе как с этим бороться ?
27. mikl79 118 13.01.22 10:05 Сейчас в теме
крутая штука, большое спасибо!
других решений не нашел!
28. mikl79 118 13.01.22 10:11 Сейчас в теме
у меня например, ФИО и название организации вышло нормально
29. AJIekceuT 17.01.22 12:18 Сейчас в теме
Эх, дождемся ли форматированную строку в ячейках табличного документа? Очень не хватает конечно
30. Romario_ 13.02.22 13:25 Сейчас в теме
Где найти строку подмены для других шрифтов, например TimeNewRoman?
31. Romario_ 13.02.22 13:37 Сейчас в теме
За обработку спасибо. Купил, но при использовании шрифта TimesNewRoman не работает выводит кириллицу строки подмены. Со шрифтом в обработки работает нормально. В чем может быть причина?
32. Bienko 212 13.02.22 16:47 Сейчас в теме
Так шрифт специальный для подмены. В описание было указано, что "Проблема была решена использованием измененного шрифта". С другими шрифтами (не измененными) это работать не будет. При желании можете сами сделать свой шрифт на основании TimesNewRoman. Суть в том, что неиспользуемые символы шрифта заменяются на жирные. Потом, когда нужно вывести жирные текст вы выводите, по факту, эти неиспользуемые символы. Правда, с юридической точки зрения, у вас нет лицензионного права на изменения этого шрифта. Я использовал свободный шрифт, а Times New Roman принадлежит Monotype Imaging и у него проприетарная лицензия.
33. Romario_ 13.02.22 17:34 Сейчас в теме
(32)Спасибо большое! Можете объяснить детальней, каким образом система знает что нужно неиспользуемые символы менять на жирные? Подскажите как сделать свой шрифт?
34. Romario_ 13.02.22 19:27 Сейчас в теме
(32)Вроде разобрался)) Какой редактор использовали для корректировки шрифта?
41. user1036607 17.11.22 13:50 Сейчас в теме
(34) (34) Приветствую! Решили вопрос? Какой в итоге редактор использовали чтобы изменить TimesNewRoman?
42. Romario_ 17.11.22 14:39 Сейчас в теме
(41) Здравствуйте! Не стал заморачиваться с TimesNewRoman, оставил шрифт данного решения. Но для интереса пробовал менять вроде на этом редакторе FontCreator, найдите как-то бесплатный и пробуйте. Главное правильно выполнить подмену. Я копировал нужный символ и вставлял вместо подменного. А вообще если есть какой-то офис, не стал более заморачиваться с табличным документом и делаю шаблон двоичные данные, загружаю туда шаблон офиса (в нем как хочешь корректируй строки). Благо вроде сейчас 1С с ними норм. дружит)
43. user1036607 17.11.22 15:01 Сейчас в теме
35. Bienko 212 13.02.22 20:55 Сейчас в теме
Уже не помню. Давно это было. Какой-то бесплатный.
36. stas4tor 26.05.22 16:19 Сейчас в теме
(35) Спасибо. Все работает. Но, все таки, поправьте в статье и обработке строку на такую:
СтрокаПоиска = "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъ­ыьэюяё!#$%&()*+,-./0123456789:;<=>?№";

У вас ошибка в символах "е" и "у" (нижний регистр), а так же в конце строки не хватает знака "?" и получается 94 символа вместо 95 как в строке подмены.
frob_st; mikl79; +2 Ответить
45. frob_st 50 17.02.24 12:50 Сейчас в теме
(36) истину говоришь.... обратите внимание на этот комментарий, иначе вместо "руб" у вас будет выводиться "реб".
40. Bienko 212 16.11.22 20:08 Сейчас в теме
(39) Если кракозябры, то система не видит шрифта. Скорее всего, если действительно установили на сервере, нужно перезапустить сервер 1С. Если обычные формы, то еще и на клиенте, как я понимаю, нужно поставить. Я, например, сталкивался с тем, что программа на клиенте не видела установленного принтера. Установили при открытой программе. После перезапуска все заработало.
44. angabanga5 06.07.23 21:45 Сейчас в теме
не , короче шрифт работает только на том сервере или клиенте, на котором утсановлен никак иначе, если клиентское приложение на другом ПК - сосите весла. ничего не работает, выводится билиберда, мало того, сам шрифт по какой-то причине устанавливается не на всех компах и ругается на то, что не верный. отпишу, если разберусь в чем дело
Оставьте свое сообщение