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

27.09.17

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

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Шрифт и демо обработка для управляемых форм
.zip 203,80Kb
107
107 Скачать (1 SM) Купить за 1 850 руб.

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

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

См. также

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

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

15500 руб.

02.09.2020    175025    973    403    

931

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

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку сразу нескольких баз данных и выполнять их автоматически без непосредственного участия пользователя. Решение в Реестре отечественного ПО

8400 руб.

20.08.2024    16617    113    52    

115

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

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

22200 руб.

06.10.2023    18057    49    18    

81

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

Инструмент для написания и отладки кода в режиме «1С:Предприятие». Представляет собой консоль кода с возможностью пошаговой отладки, просмотра значений переменных любых типов, использования процедур и функций, просмотра стека вызовов, вычисления произвольных выражений на встроенном языке в контексте точки останова, синтаксического контроля и остановки по ошибке. В консоли используется удобный редактор кода с подсветкой, контекстной подсказкой, возможностью вызова конструкторов запроса и форматной строки.

9360 руб.

17.05.2024    28229    97    48    

141

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

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

15000 руб.

10.11.2023    12389    49    33    

70

Инструментарий разработчика Программист 8.3.14 Россия Платные (руб)

Расширение для конфигурации “Конвертация данных 3”. Добавляет подсветку синтаксиса, детальную контекстную подсказку, глобальный поиск по коду.

20000 руб.

07.10.2021    18368    7    32    

43

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

Разработка Конструктор автоматизированных рабочих мест "Конструктор АРМ" реализована в виде расширения и является универсальным инструментом для создания АРМ любой сложности в пользовательском режиме.

3600 руб.

27.12.2024    1470    2    0    

5
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. DJDUH 17 27.09.17 11:00 Сейчас в теме
Костиль по-проще - это "Текст" но тогда нужно играть в тетрис блд)
6. Alien_job 192 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 51 28.09.17 20:37 Сейчас в теме
(0)
New York Times

Что за чудо шрифт такой?!
user1706724; VKuser330779760; igee12; mrXoxot; +4 Ответить
5. &rew 53 29.09.17 07:38 Сейчас в теме
(4) О, это такой же как знаменитый шрифт Komsomolskaya pravda, только наклонен чуть в сторону запада.
Rettro; user1530844; Elf77; Teplotrassamen; 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; +31 Ответить
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] >> Здесь: почему бы макет не получить из менеджера и БЕЗ контекстного вызова? <<
Из менеджера конечно можно, а если это внешняя печатная форма или обработка, тогда как?! Ваше решение?

>>И туда же, в копилку антипроизводительности, передача ТабличногоДокумента с сервера на клиент<<
Аналогично. Ваше решение для ВПФ...
scarl1n; user1835472; almierm; unknown181538; Raskad; user1135816; SlavaKron; +7 Ответить
9. пользователь 07.10.17 20:12
Сообщение было скрыто модератором.
...
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 108 28.07.19 10:26 Сейчас в теме
Есть две ошибки в строке (как минимум):
СтрокаПоиска="АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдужзийклмн­опрстнфхцчшщъыьэюяё!#$%&()*+,-./0123456789:;<=>№";
я заменил на:
СтрокаПоиска="АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмн­опрстуфхцчшщъыьэюяё!#$%&()*+,-./0123456789:;<=>№";
maksa2005; igee12; +2 Ответить
17. researcher01 108 28.07.19 10:26 Сейчас в теме
Но все равно автору огромное спасибо!
18. aybek 05.12.19 08:20 Сейчас в теме
Спасибо автору, я тут смотрю некоторые против кода и тд. Мое личное мнение если есть замена текущему решению то показать его и уже потом можно сказать чем лучше новое решение и чем хуже старое а если нету чем заменить решение лучше не трогать текущее решение.
19. Slypower 3 17.02.20 09:18 Сейчас в теме
Скажите, а подчеркнутым часть теста сделать как? Какая строка подмены?
20. Bienko 214 25.02.20 08:03 Сейчас в теме
(19) Доброе утро! Нужен редактор шрифтов и в шрифте поменять одни символы на другие. Я заменил символы старой кириллицы (они уж точно не используются) на жирные и потом подменой выводил их. Потом делаешь строку замены.
21. VALENTINA__8 16.02.21 17:50 Сейчас в теме
Добрый день, купила у вас. Какая то после замены тарабарщина вмсето русского языка( Это означает шрифт не подключился? У меня баха sql-ная.
22. Bienko 214 16.02.21 21:14 Сейчас в теме
Добрый вечер! Да, если "тарабарщина", то в системе не зарегистрирован шрифт или он не выбран в макете.
23. VALENTINA__8 17.02.21 14:12 Сейчас в теме
(22) все поняла))) Спасибо большое))) Разобралась)))
37. user1036607 10.11.22 20:32 Сейчас в теме
(23)Добрый день! А не помните, как разобрались? Тоже тарабарщина, хотя шрифт установил
38. Bienko 214 14.11.22 07:47 Сейчас в теме
(37) Вы, скорее всего, установили шрифт на локальном компьютере, а печать происходит на сервере. Установить шрифт на сервере.
39. user1036607 16.11.22 14:39 Сейчас в теме
(38)Эх чот никак(( на серваке тоже добавил этот шрифт. В макете этой ячейке тоже поставил этот шрифт, все равно краказябра
user1835472; +1 Ответить
24. kova 11.06.21 08:56 Сейчас в теме
Добрый день! Установила шрифт Liberation Serif, все равно "тарабарщина". Платформа 8.3.16.
25. Bienko 214 11.06.21 12:18 Сейчас в теме
(24) Добрый день! Платформа на это не влияет. Тут два варианта, - в системе не зарегистрирован шрифт или он не выбран в макете. Причем, если вы работаете под сервером, например через RemoteAPP, то шрифт должен быть установлен на сервере.
26. kislitsin 13.08.21 09:10 Сейчас в теме
Приветствую коллеги.
В принципе у меня все работает , но есть неудобство если копировать текст из ячейки с этим шрифтом в буфер и вставлять то получаются так называемы крякозябы, подскажите может кто в курсе как с этим бороться ?
27. mikl79 120 13.01.22 10:05 Сейчас в теме
крутая штука, большое спасибо!
других решений не нашел!
28. mikl79 120 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 214 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 214 13.02.22 20:55 Сейчас в теме
Уже не помню. Давно это было. Какой-то бесплатный.
36. stas4tor 26.05.22 16:19 Сейчас в теме
(35) Спасибо. Все работает. Но, все таки, поправьте в статье и обработке строку на такую:
СтрокаПоиска = "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъ­ыьэюяё!#$%&()*+,-./0123456789:;<=>?№";

У вас ошибка в символах "е" и "у" (нижний регистр), а так же в конце строки не хватает знака "?" и получается 94 символа вместо 95 как в строке подмены.
Santa1; frob_st; mikl79; +3 Ответить
45. frob_st 51 17.02.24 12:50 Сейчас в теме
(36) истину говоришь.... обратите внимание на этот комментарий, иначе вместо "руб" у вас будет выводиться "реб".
40. Bienko 214 16.11.22 20:08 Сейчас в теме
(39) Если кракозябры, то система не видит шрифта. Скорее всего, если действительно установили на сервере, нужно перезапустить сервер 1С. Если обычные формы, то еще и на клиенте, как я понимаю, нужно поставить. Я, например, сталкивался с тем, что программа на клиенте не видела установленного принтера. Установили при открытой программе. После перезапуска все заработало.
44. angabanga5 06.07.23 21:45 Сейчас в теме
не , короче шрифт работает только на том сервере или клиенте, на котором утсановлен никак иначе, если клиентское приложение на другом ПК - сосите весла. ничего не работает, выводится билиберда, мало того, сам шрифт по какой-то причине устанавливается не на всех компах и ругается на то, что не верный. отпишу, если разберусь в чем дело
46. splxgf 30.07.24 01:39 Сейчас в теме
Актуальный релиз платформы уже эту фишку поддерживает нативно в виде форматированной строки в ячейке.
47. user659302_cheb73 03.09.24 14:20 Сейчас в теме
(46) Платформа 1С:Предприятие 8.3 (8.3.25.1374) , в конфигураторе делаю форматированную строку в ячейке, меняю часть слов на жирный шрифт, но при выводе на печать , текст остается без изменений. Кто -нибудь сталкивался с такой проблемой?
48. user659302_cheb73 03.09.24 14:39 Сейчас в теме
Разобралась) В ячейке использовала шаблон, квадратные скобки тоже нужно было выделить жирным
Оставьте свое сообщение