Как использовать форматированную строку в ячейках табличного документа 1С?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

Долгое время разработчики 1С сталкивались с серьезными ограничениями при оформлении печатных форм. Если возникала необходимость в одной ячейке вывести текст, содержащий фрагменты с разным начертанием, цветом или размером шрифта, приходилось прибегать к сложным обходным путям: верстке HTML, генерации внешних файлов или использованию сторонних компонентов. Начиная с версии платформы 8.3.24, ситуация кардинально меняется благодаря внедрению полноценной поддержки типа ФорматированнаяСтрока непосредственно в ячейках табличного документа.

Разберем суть нововведения

Ранее форматированный текст был доступен только в определенных элементах управления управляемых форм. Теперь же платформа позволяет использовать его внутри макетов ТабличныйДокумент. Это значит, что мы можем программно конструировать текст, в котором каждый символ или слово могут иметь свои атрибуты форматирования, и выводить этот текст в любую ячейку таблицы без потери качества при печати.

Для создания такой строки в коде используется объект ФорматированнаяСтрока. Рассмотрим основные шаги по формированию подобного контента.

Шаг 1: Конструирование форматированной строки

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


// Создаем фрагменты текста с разным оформлением
Фрагмент1 = Новый ФорматированнаяСтрока("Цена: ", , , , );
ШрифтДляЦены = Новый Шрифт(,,Истина,,,,,); // Жирный шрифт
Фрагмент2 = Новый ФорматированнаяСтрока("100 руб.", ШрифтДляЦены, WebЦвета.Красный, , );

// Объединяем фрагменты
Результат = Новый ФорматированнаяСтрока(Фрагмент1, Фрагмент2);

После того как объект Результат сформирован, мы можем присвоить его свойству Значение соответствующей области ячейки табличного документа. Это открывает перед нами широчайшие возможности для создания сложных этикеток и ценников.

Шаг 2: Работа с макетами и позиционированием

Одной из вечных проблем разработчиков остаются размеры макетов. В 1С традиционно используется система координат, которую в сообществе называют «попугаями». Чтобы добиться корректного вывода на печать, особенно когда требуется точность в миллиметрах, мы анализируем текущие настройки макета.

Важно помнить, что при работе с макетами:

Шаг 3: Особенности вывода

При использовании ФорматированнаяСтрока в ячейках, платформа берет на себя рендеринг шрифтов. Это избавляет нас от проблем, возникающих при попытке «скрестить» 1С с HTML-версткой, где перенос строк или отображение глифов на разных принтерах могло вести себя непредсказуемо. Теперь, когда мы работаем с нативными объектами 1С, процесс становится более предсказуемым.

Рекомендации по реализации

Проанализировав ситуацию, мы можем выделить несколько советов для успешного внедрения:

  1. Не злоупотребляйте сложностью: Несмотря на возможности форматирования, старайтесь сохранять читаемость документов. Избыток цветов и стилей может затруднить восприятие информации пользователем.
  2. Используйте СКД для подготовки данных: Если необходимо выводить форматированный текст массово, используйте ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент. Обратите внимание, что для реализации сложных шаблонизаторов иногда выгоднее подготовить структуру данных в Структура или Массив, а затем сформировать ФорматированнаяСтрока в цикле при обходе результата запроса.
  3. Учитывайте версию платформы: Убедитесь, что ваша инфраструктура готова к обновлению на 8.3.24. Данная функциональность является новой, и обратная совместимость с более старыми версиями платформы в плане отображения таких ячеек не предусмотрена.

Подводя итог, можно сказать, что появление поддержки форматированной строки в табличных документах — это долгожданный качественный скачок. Теперь нам больше не нужно изобретать сложные костыли для простых задач по оформлению печатных форм. Мы можем сосредоточиться на логике учета, а визуальную часть доверять штатным инструментам платформы, которые стали значительно гибче.

← На главную