Форматированная строка

В этой статье мы научимся работать с форматированной строкой. Форматированная строка позволяет разукрасить Ваше 1С приложение.
С её помощью вы сможете показать вот такой вопрос

Или вот такое предупреждение

Сейчас мы научимся с ней работать.

И первым делом научимся создавать самую простую форматированную строку, делается это при помощи конструктора Новый.
В самом простом виде форматированная строка будет выглядеть так:

ФормСтрока = Новый ФорматированнаяСтрока("Это новая форматированная строка");

В этом случае она ни чем не будет отличаться от обычной строки.
Ознакомимся с её синтаксисом. У форматированной строки, два вида конструктора.
Конструктор первый:

Новый ФорматированнаяСтрока(<Содержимое>, <Шрифт>, <ЦветТекста>, <ЦветФона>, <Ссылка>)

Где:
Содержимое – содержимое форматированной строки, может быть строка, форматированная строка (да-да, форматированную строку можно сделать на основании форматированной строки), картинка и массив, который должен состоять из строк, форматированных строк и картинок.
Шрифт – это шрифт форматированной строки (тип Шрифт, что понятно);
ЦветТекста , ЦветФона – цвет текста и цвет фона форматированной строки (Тип Цвет, что тоже понятно);
Ссылкатип строка, можно задать ссылку на какой-то объект и тогда форматированная строка станет в виде гиперссылки.
Конструктор второй:

Новый ФорматированнаяСтрока(<Содержимое1,…,СодержимоеN>)

Где Содержимое 1 и т.д это или строка, или форматированная строка, или картинка или массив, который должен состоять из строки, форматированной строки или картинки.
Поскольку к форматированной строке, в отличие от обычной строки, нельзя применить операцию конкатенации (сложение строк), то складывать форматированные строки можно при помощи конструктора второго вида.
Научимся работать с форматированными строками. Для этого создадим обработку, создадим команду, и в обработчике команды на клиенте будем писать наши эксперименты.
Напишем, простой вариант форматированной строки:

&НаКлиенте
Процедура ВывестиПредупреждение(Команда)

      ФормСтрока1 = Новый ФорматированнаяСтрока("Очередное предупреждение!!!");
      ПоказатьПредупреждение(,ФормСтрока1);

КонецПроцедуры


В этом случае наше предупреждение ни чем не будет отличаться от предупреждения с обычной строкой.
Изменим цвет, но попробуем не просто написать какой-то цвет, а взять цвет из стиля. Дело в том, что тип ЦветСтиля доступен только на сервере, поэтому нам придется использовать безконтекстный серверный вызов.
В этом случае код будет следующим

&НаСервереБезКонтекста
Функция ВернутьЦветОсобогоТекстаНаСервере()

      Возврат ЦветаСтиля.ЦветОсобогоТекста;

КонецФункции

&НаСервереБезКонтекста
Функция ВернутьШрифтИзСтиляНаСервер()

      Возврат ШрифтыСтиля.ОченьКрупныйШрифтТекста

КонецФункции

&НаКлиенте
Процедура ВывестиПредупреждение(Команда)

      ЦветСтиль = ВернутьЦветОсобогоТекстаНаСервере();
      ШрифтСтиль= ВернутьШрифтИзСтиляНаСервер();
      ШрифтДляСтроки = Новый Шрифт(ШрифтСтиль,,,,,Истина);

      ФормСтрока1 = Новый ФорматированнаяСтрока("Очередное предупреждение!!!",
                                                                               ШрифтДляСтроки,
                                                                               ЦветСтиль);
      ПоказатьПредупреждение(,ФормСтрока1);

КонецПроцедуры

И результат его работы:

Пойдем дальше, добавим еще и шрифт, тоже возьмем его из стиля, а потом немного подправим: подчеркнем.

&НаСервереБезКонтекста
Функция ВернутьЦветОсобогоТекстаНаСервере()

      Возврат ЦветаСтиля.ЦветОсобогоТекста;

КонецФункции

&НаСервереБезКонтекста
Функция ВернутьШрифтИзСтиляНаСервер()

      Возврат ШрифтыСтиля.ОченьКрупныйШрифтТекста

КонецФункции

&НаКлиенте
Процедура ВывестиПредупреждение(Команда)

      ЦветСтиль = ВернутьЦветОсобогоТекстаНаСервере();
      ШрифтСтиль= ВернутьШрифтИзСтиляНаСервер();
      ШрифтДляСтроки = Новый Шрифт(ШрифтСтиль,,,,,Истина);

      ФормСтрока1 = Новый ФорматированнаяСтрока("Очередное предупреждение!!!",
                                                                                ШрифтДляСтроки,
                                                                                ЦветСтиль);
      ПоказатьПредупреждение(,ФормСтрока1);

КонецПроцедуры

Результат будет следующий:

Теперь научимся объединять строки – создадим три разные строки, объединим и выведем в уже знакомом предупреждении.

&НаСервереБезКонтекста
Функция ВернутьЦветОсобогоТекстаНаСервере()
      Возврат ЦветаСтиля.ЦветОсобогоТекста;
КонецФункции

&НаСервереБезКонтекста
Функция ВернутьШрифтИзСтиляНаСервер()
      Возврат ШрифтыСтиля.ОченьКрупныйШрифтТекста;
КонецФункции

&НаКлиенте
Процедура ВывестиПредупреждение(Команда)

     ЦветСтиль = ВернутьЦветОсобогоТекстаНаСервере();
     ШрифтСтиль= ВернутьШрифтИзСтиляНаСервер();
     ШрифтДляСтроки1 = Новый Шрифт(ШрифтСтиль,,,Истина);
     ШрифтДляСтроки2 = Новый Шрифт(ШрифтСтиль,,,,Истина);
     ШрифтДляСтроки3 = Новый Шрифт(ШрифтСтиль,,,,,,Истина);

     ФормСтрока1 = Новый ФорматированнаяСтрока("Последнее",ШрифтДляСтроки1,ЦветСтиль);
     ФормСтрока2 = Новый ФорматированнаяСтрока("китайское",ШрифтДляСтроки2,ЦветСтиль);
     ФормСтрока3 = Новый ФорматированнаяСтрока("предупреждение!",ШрифтДляСтроки3,ЦветСтиль);

     Массив = Новый Массив;
     Массив.Добавить(ФормСтрока1);
     Массив.Добавить(Символы.ПС);
     Массив.Добавить(ФормСтрока2);
     Массив.Добавить(Символы.ПС);
     Массив.Добавить(ФормСтрока3);

     ФормСтрока = Новый ФорматированнаяСтрока(Массив);

     ПоказатьПредупреждение(,ФормСтрока);

КонецПроцедуры

 

Результат этого кода будет следующим:

А теперь вставим ссылку.

 

&НаКлиенте
Процедура ВывестиПредупреждение(Команда)

ЦветСтиль = ВернутьЦветОсобогоТекстаНаСервере();
ШрифтСтиль= ВернутьШрифтИзСтиляНаСервер();
ШрифтДляСтроки1 = Новый Шрифт(ШрифтСтиль,,,Истина);

ФормСтрока = Новый ФорматированнаяСтрока("Прочитать информацию о платформе 1С",
                                                                        ШрифтДляСтроки1,
                                                                        ЦветСтиль,,
                                                                       "http://v8.1c.ru/overview/");

ПоказатьПредупреждение(,ФормСтрока);

КонецПроцедуры

 

Точно так же можно вставить любую навигационную ссылку

Книга «Программировать в 1С за 11 шагов»

Изучайте программирование в 1С в месте с моей книги «Программировать в 1С за 11 шагов»

  1. Книга написана понятным и простым языком — для новичка.
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Научитесь понимать архитектуру 1С;
  4. Станете писать код на языке 1С;
  5. Освоите основные приемы программирования;
  6. Закрепите полученные знания при помощи задачника;

Книга «Основы разработки в 1С: Такси»

Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.

  1. Очень доступный и понятный язык изложения
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Поймете идеологию управляемого приложения 1С
  4. Узнаете, как разрабатывать управляемое приложение;
  5. Научитесь разрабатывать управляемые формы 1С;
  6. Сможете работать с основными и нужными элементами управляемых форм
  7. Программирование под управляемым приложением станет понятным

Промо-код на скидку в 15% — 48PVXHeYu


Если Вам помог этот урок решить какую-нибудь проблему, понравился или оказался полезен, то Вы можете поддержать мой проект, перечислив любую сумму:

можно оплатить вручную:

Яндекс.Деньги — 410012882996301
Web Money — R955262494655

Вступайте в мои группы:

Вконтакте: https://vk.com/1c_prosto
Фейсбуке: https://www.facebook.com/groups/922972144448119/
ОК: http://ok.ru/group/52970839015518
Твиттер: https://twitter.com/signum2009

4 Replies to “Форматированная строка”

  1. Добрый день. А в ячейку табличного макета форматированную строку можно вставлять как — то?

Добавить комментарий

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