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

11.01.16

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

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

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

Наименование Файл Версия Размер
Подчеркивание
.epf 7,65Kb
10
.epf 1 7,65Kb 10 Скачать

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

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

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

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

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

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

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

 

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

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

См. также

Богатый редактор картинок, хранимых в базе, с возможностью РИСОВАНИЯ. Редактор внешних файлов картинок. Объект, расширяющий возможности работы с картинками из встроенного языка (Три в одном) + Обработка «Стандартизация картинок»

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

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

6000 руб.

16.01.2015    61797    43    59    

80

[Расширения] Динамическое управление видимостью и доступностью элементов форм (УФ) (8.3.6+)

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

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

5000 руб.

14.01.2016    54403    16    21    

42

Управление дашбордами

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

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

2400 руб.

29.06.2020    16698    21    4    

35

Печать непроведенных документов для УТ, КА, ERP. Настройка печати по пользователям, документам и печатным формам

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

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

2 стартмани

22.08.2023    2071    21    progmaster    7    

3

Модель состояния для MVC

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

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

1 стартмани

05.07.2022    3666    kalyaka    2    

27

Табло очереди заказов на экран телевизора

WEB-интеграция Работа с интерфейсом Платформа 1С v8.3 1С:Розница 2 Платные (руб)

Связка из веб-приложения и расширения для 1С: Розница 2.3.

3600 руб.

29.04.2022    12082    1    5    

10

Условное оформление элементов форм в пользовательском режиме 1С (управление видимостью и доступностью элементов форм)

Работа с интерфейсом Платформа 1С v8.3 Платные (руб)

Подсистема условного оформления элементов форм (далее подсистема) предназначена для настройки оформления элементов форм (видимость, доступность, цвет фона, цвет текста и прочее) в пользовательском режиме 1С. Также подсистему возможно использовать для ограничения доступа к реквизитам формы для определенных пользователей (или групп пользователей).

6000 руб.

18.01.2022    8810    1    2    

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

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

Спасибо автору за лайвхак.
20. JetBrain 78 21.01.16 23:19 Сейчас в теме
не совсем понял речь идет о макете или о поле с типом строка?
21. Rus1k 15 22.02.17 08:26 Сейчас в теме
22. pallid 270 06.02.18 09:28 Сейчас в теме
А есть способ выделения жирным или курсивом таким образом?
23. papa_harlo 154 08.02.18 12:16 Сейчас в теме
(22) к сожалению пока не нашел такого костыля(((
24. pallid 270 08.02.18 15:08 Сейчас в теме
25. herfis 498 21.08.18 10:53 Сейчас в теме
Скачал. Думал, может что не так делаю. К сожалению, на 8.3.6 не работает. Буквы просто перемежаются "кубиками".
Оказалось дело в окружении, а не в платформе. На современной винде все ок. Кубиками отражалось на windows xp в виртуалке.
26. papa_harlo 154 24.08.18 12:11 Сейчас в теме
на win xp можно установить шрифт и попробовать использовать его
27. cassper 11.03.19 12:43 Сейчас в теме
Некропост: а никто не пытался таким образом подчеркнуть текст в англ. раскладке?
У меня получается наложение подчеркивания и выходит ерунда...
28. papa_harlo 154 12.03.19 08:32 Сейчас в теме
(27)
образом
не пробовал. думаю там другие коды символов
29. cassper 12.03.19 08:58 Сейчас в теме
(28) Согласен. Неплохо конечно подходит и 818 с разрывом, но все сбивается, когда, например, нужно подчеркнуть таким образом адрес сайта или адрес эл. почты...
Буду искать
31. Merkalov 8 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)а как? подскажите пожалуйста
Оставьте свое сообщение