Подчеркивание текста в макете

11.01.16

Разработка - Работа с интерфейсом

Часто возникала проблема с тем, что в макете нужно выводить частично подчеркнутый, "динамический" текст. То бишь с различного содержания, разной длины (пять слов или сто пять - неважно). Но всегда используется определенный текст, к примеру: "статья УК РФ №666 п.666".
И если в этом тексте еще и требуется подчеркнуть что-то отдельно, к примеру: "статья УК РФ №666 п.666", то это была просто трагедия. Приходилось корячить макет вдоль и поперек, чтобы все красиво отображалось.

Скачать файл

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

Наименование По подписке [?] Купить один файл
Подчеркивание
.epf 7,65Kb ver:1
10
10 Скачать (1 SM) Купить за 1 850 руб.

Если автовысота строк в таком случае спасает, то как быть с подчеркиванием строковой переменной подобной статье?

Как всегда, помогла смекалка.

Есть один символ, похожий на подчеркивание "_".  в 1С этот символ вставляется как Символ(863)

В итоге, программно вывожу текст в область макета, где часть текста обрабатываю вот такой функцией:

Функция ПодчеркнутьТекстВМакете(Строка)  
  Результат = "";
  Для Индекс = 1 По СтрДлина(Строка) Цикл
      Если Сред(Строка, Индекс, 1) <> " " И Сред(Строка, Индекс, 1) <> "_" И Сред(Строка, Индекс, 1) <> "-" Тогда 
          Результат = Результат + Символ(863);
      КонецЕсли;
  Результат = Результат + Сред(Строка, Индекс, 1);
 КонецЦикла;

Возврат Результат;
КонецФункции

На выходе получаем красивый текст с подчеркиванием нужных нам слов.

 

P.S. Не нашел здесь такой статьи, так как, может, плохо искал. Не серчайте, если продублировал.

В файле пример того же кода.

См. также

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

Богатый редактор картинок 1С предназначен для обработки изображений в режиме «Предприятие», с возможностью РИСОВАТЬ на них. Поддерживается работа как в обычных формах (толстый клиент) так и на управляемых формах (тонкий клиент). Обработка позволяет редактировать как картинки, хранимые в базе, так и графические файлы с диска на файловой системе. Помимо базовых функций (изменение размеров, преобразование формата, обрезание картинки, повороты и т.п.) – редактор имеет богатый набор инструментов для рисования. Доступна функция вставки изображения из буфера обмена. Объект может быть использован: на стороне клиента, на стороне сервера, из внешнего соединения. Обработка будет особенно полезна тем, кто вносит картинки в базу (изображения номенклатуры, фотографии физических лиц и т.п.). Функционал реализуется с использованием JavaScript и бесплатного ПО ImageMagick (без использования внешних компонент).

6000 руб.

16.01.2015    63014    44    59    

82

Работа с интерфейсом Программист Платформа 1С v8.3 Конфигурации 1cv8 1С:ERP Управление предприятием 2 Платные (руб)

Обработка предназначена для создания и управления дашбордами.

2400 руб.

29.06.2020    18880    26    6    

41

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

Редактор графов в 1С - внешний отчет, который формирует графы на основе таблицы значений, используя рисунки табличного документа. Есть возможность добавления, редактирования объектов графа и выгрузки результата в таблицу значений.

1500 руб.

06.10.2020    10255    7    7    

10

WEB-интеграция Универсальные функции Механизмы платформы 1С Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

При работе с интеграциями рано или поздно придется столкнуться с получением JSON файлов. И, конечно же, жизнь заставит проверять файлы перед тем, как записывать данные в БД.

28.08.2023    14825    YA_418728146    7    

166

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

Расширение для программ 1С:Управление торговлей, 1С:Комплексная автоматизация, 1С:ERP, которое позволяет распечатывать печатные формы для непроведенных документов. Можно настроить, каким пользователям, какие конкретные формы документов разрешено печатать без проведения документа.

2 стартмани

22.08.2023    3607    57    progmaster    8    

4

Работа с интерфейсом Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

"MVC плохо применима в 1С" - познакомьтесь с моделью состояния и, возможно, ваше мнение поменяется! Представленное решение является эволюционным развитием идеи реализации MVC для 1С. В новой версии добавлены DSL для описания модели состояния, а также параметризация свойств параметров и элементов формы.

1 стартмани

05.07.2022    5840    kalyaka    6    

33
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Synoecium 786 11.01.16 10:58 Сейчас в теме
Интересный способ, я уж думал кроме как корячиться вариантов нет, спасибо
2. Mr.Rm 11.01.16 22:04 Сейчас в теме
Точнее было бы использовать Символ(818) - UNICODE 0332 COMBINING LOW LINE.
3. papa_harlo 161 13.01.16 10:16 Сейчас в теме
спасибо за скачивание, коплю sm )))
Merkalov; teseii; +2 Ответить
4. bulpi 217 13.01.16 10:43 Сейчас в теме
Молодец, но где ж ты раньше был ?
5. ZloyProger 8 13.01.16 10:55 Сейчас в теме
мм.. не совсем понял, но по идее поглядел код и разве не будет так: имеем строку "строка" получим "с_т_р_о_к_а"? Проверить пока негде, конфигуратора под рукой нет..
6. vikad 131 13.01.16 11:08 Сейчас в теме
(5) ZloyProger, проверить можно и в ворде. Нажимайте по порядку клавиши {с}, {Alt+8+6+3} (или Alt+8+1+8 - главное, не отпускать Alt), {т} и т.д.
7. LadyMara 13.01.16 11:15 Сейчас в теме
(6) vikad, проверила в ворде: при {Alt+8+6+3} из "строка" получилось "ссттррооккаа", т.е. {Alt+8+6+3} повторял предыдущий символ. А вот {Alt+8+1+8} не получается вообще, т.к. {Alt+8+1} выводит диалог сохранения документа. Надо проверить все-таки в 1С (тоже пока не могу добраться).
8. vikad 131 13.01.16 11:17 Сейчас в теме
(7) LadyMara, главное, не отпускать Alt) и да, цифры должны набираться на цифровой клавиатуре
11. papa_harlo 161 13.01.16 15:17 Сейчас в теме
(5) ZloyProger, нет, разрывов не будет. в обработинке пример, в котором выводится введенный текст в различные элементы, чтобы посмотреть как будет отображаться в ТабДоке, поле, ну и на что фантазии хватит.
9. 7OH 70 13.01.16 13:50 Сейчас в теме
А с большой буквы тоже так же красиво ??
В ворде по крайней мере выходит разрыв в подчеркивании.
10. vikad 131 13.01.16 14:06 Сейчас в теме
(9) 7OH, так автор и предложил символ 863, у которого разрывов не возникает (разрыв возникает только при использовании символа 818)
12. papa_harlo 161 13.01.16 15:19 Сейчас в теме
(9) 7OH, и с больщой буквы и с маленькой и цыфры. все норм. проверял
13. 7OH 70 13.01.16 17:06 Сейчас в теме
(12) спасибо.
Набирал в ворде - там без разрыва было в обоих вариантах - но при вставке в макет 1С - у меня показывает разрывы после большой буквы.
14. papa_harlo 161 13.01.16 17:20 Сейчас в теме
(13) 7OH, вставлял прям такой функцией как описал? или Ctrl+C Ctrl+V ?
15. lrs 27 14.01.16 11:19 Сейчас в теме
А есть ли что-то подобное для выделения куска текста жирным шрифтом?
16. kiruha 388 14.01.16 13:20 Сейчас в теме
И что будет с таким текстом если например его копи пастить ?
Кто будет объяснять что это не "настоящий" ИНН
Вообщем прикольно , но не практично
17. papa_harlo 161 14.01.16 13:45 Сейчас в теме
(16) kiruha, а зачем его копипастить?
18. pentanom 25 18.01.16 17:23 Сейчас в теме
Из приведенного текста хотел подчеркнуть только УК РФ. Не получается :(
А если подчеркивается весь текст, то можно использовать настройку шрифта.
19. papa_harlo 161 18.01.16 18:14 Сейчас в теме
(18) pentanom, что-то сделали не так. обработка работает?
30. tvssm 10.05.19 11:42 Сейчас в теме
(18)нужно просто строку разделить на части одну часть обработать этой функцией, другую не обрабатывать и соединить их вместе после.
"без подчеркивания " +ПодчеркнутьТекстВМакете("с подчеркиванием") + " без подчеркивания"

если пофантазировать можно дополнить функцию ПодчеркнутьТекстВМакете() параметром в котором указывать какой символ подчеркнуть и сколько символов подряд подчеркивать.

Спасибо автору за лайвхак.
20. JetBrain 76 21.01.16 23:19 Сейчас в теме
не совсем понял речь идет о макете или о поле с типом строка?
21. Rus1k 15 22.02.17 08:26 Сейчас в теме
22. pallid 272 06.02.18 09:28 Сейчас в теме
А есть способ выделения жирным или курсивом таким образом?
23. papa_harlo 161 08.02.18 12:16 Сейчас в теме
(22) к сожалению пока не нашел такого костыля(((
24. pallid 272 08.02.18 15:08 Сейчас в теме
25. herfis 513 21.08.18 10:53 Сейчас в теме
Скачал. Думал, может что не так делаю. К сожалению, на 8.3.6 не работает. Буквы просто перемежаются "кубиками".
Оказалось дело в окружении, а не в платформе. На современной винде все ок. Кубиками отражалось на windows xp в виртуалке.
26. papa_harlo 161 24.08.18 12:11 Сейчас в теме
на win xp можно установить шрифт и попробовать использовать его
27. AlekseySipaev 11.03.19 12:43 Сейчас в теме
Некропост: а никто не пытался таким образом подчеркнуть текст в англ. раскладке?
У меня получается наложение подчеркивания и выходит ерунда...
28. papa_harlo 161 12.03.19 08:32 Сейчас в теме
(27)
образом
не пробовал. думаю там другие коды символов
29. AlekseySipaev 12.03.19 08:58 Сейчас в теме
(28) Согласен. Неплохо конечно подходит и 818 с разрывом, но все сбивается, когда, например, нужно подчеркнуть таким образом адрес сайта или адрес эл. почты...
Буду искать
31. Merkalov 11 10.07.19 03:38 Сейчас в теме
͟П͟р͟и ͟п͟р͟и͟е͟м͟е ͟в͟ы͟я͟в͟л͟е͟н ͟и͟з͟л͟и͟ш͟е͟к ͟т͟о͟в͟а͟р͟а͟: ͟Х͟о͟л͟о͟д͟и͟л͟ь͟н͟и͟к ͟С͟А͟Р͟А͟Т͟О͟В
С разрывами получается. В отладчике - всё хорошо, при выводе в табдок появляются разрывы.

upd: Т.к мне нужно подчеркнуть весь текст в параметре, то сделал это так:
ОбластьЗаключениеКомиссии.Области.ЗаключениеКомиссии.Шрифт = Новый Шрифт(,,,,Истина,,);
32. Walcker 27.08.19 09:01 Сейчас в теме
(31) А может проще было в коде убрать вот этот кусок:
Сред(Строка, Индекс, 1) <> " "
33. Шнурова 20.06.22 10:58 Сейчас в теме
863 дает разрывы для букв М, Ш, Ж...
34. EvgeniuXP 18.08.22 16:22 Сейчас в теме
(33)удлините линию в шрифте и всё нормально будет.
35. user712426 18.10.22 08:32 Сейчас в теме
(34)а как? подскажите пожалуйста
Оставьте свое сообщение