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

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С.

12000 руб.

02.09.2020    171680    960    403    

924

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

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

8400 руб.

20.08.2024    14247    108    46    

108

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

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

9360 руб.

17.05.2024    27239    96    48    

137

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

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

22200 руб.

06.10.2023    17251    43    15    

75

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

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

15000 руб.

10.11.2023    11886    45    27    

67

SALE! %

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

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

4800 3840 руб.

14.01.2013    191149    1152    0    

920

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

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

3600 руб.

27.12.2024    1112    2    0    

5

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

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

5000 руб.

07.02.2018    104111    244    100    

307
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
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 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 Сейчас в теме
Разобралась) В ячейке использовала шаблон, квадратные скобки тоже нужно было выделить жирным
Оставьте свое сообщение