Выделение текста в 1С 8.3 — от мыши до форматированной строки

· 10 мин

Содержание

Выделить слово в 1С можно тремя способами, и выбор зависит от цели. Чтобы скопировать или заменить фрагмент, его выделяют мышью или клавишами Shift + стрелки. Чтобы строки в списке или отчёте бросались в глаза, настраивают условное оформление. Чтобы слово было жирным или цветным в печатной форме или на форме обработки, текст форматируют в макете или в коде через ФорматированнаяСтрока и объект Шрифт.

Обычное поле ввода в 1С хранит простую строку. Выделить в нём одно слово жирным нельзя — для этого нужен другой элемент формы. Ниже разобраны все варианты, от пользовательских до программных.

Какой способ выделения текста выбрать

ЗадачаГдеСпособНужен конфигуратор?
Скопировать, удалить, заменить словоЛюбое поле вводаМышь, Shift + стрелки, двойной щелчокНет
Подсветить строки списка по условиюЖурнал документов, справочникУсловное оформление спискаНет
Выделить итоги или суммы в отчётеОтчёты на СКДУсловное оформление отчётаНет
Сделать слово жирным в одном документеОткрытая печатная формаРежим редактирования табличного документаНет
Сделать слово жирным во всех печатных формахМакет печатной формыИзменение макета или расширениеИногда
Подсветить найденное слово в текстеФорма обработкиФорматированнаяСтрока в кодеДа
Смешанное оформление в одном текстеПисьмо, заметкаПоле форматированного документа или HTMLДа
Что вам нужно сделать со словом?

Выделение текста мышью и клавиатурой в полях 1С

Поля ввода 1С 8.3 ведут себя как обычные текстовые поля Windows. Работают привычные приёмы:

  • 🖱️ Двойной щелчок по слову — выделяет это слово.
  • ⌨️ Shift + стрелки — расширяют выделение посимвольно.
  • ⌨️ Ctrl + Shift + стрелки влево/вправо — выделяют по словам.
  • ⌨️ Shift + Home / End — от курсора до начала или конца строки.
  • ⌨️ Ctrl + A — весь текст поля, например весь комментарий.

После выделения действуют Ctrl + C, Ctrl + X, Ctrl + V. Если начать печатать, выделенный фрагмент заменится новым текстом.

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

В отчётах и печатных формах текст лежит в ячейках табличного документа. Здесь логика другая:

  1. Щелчок по ячейке выделяет ячейку целиком, а не слово в ней.
  2. Shift + щелчок выделяет прямоугольную область.
  3. Щелчок по заголовку строки или колонки выделяет всю строку или колонку (если заголовки показаны).
  4. Ctrl + C копирует выделенную область. В Excel она вставится таблицей.

Чтобы выделить одно слово внутри ячейки, нужен режим редактирования: двойной щелчок по ячейке или F2. Он доступен только когда документ не защищён от изменения.

В отчётах БП 3.0 при выделении нескольких ячеек с числами в шапке отчёта показывается их сумма. Это быстрый способ сверить итог, не выгружая отчёт в Excel.

Поиск слова в отчёте

Длинный отчёт удобнее не пролистывать, а искать в нём. Нажмите Ctrl + F, введите слово — 1С выделит первую ячейку, где оно встречается. Для следующего совпадения повторите поиск.

Цветное выделение строк в списках и отчётах

Условное оформление — главный пользовательский инструмент выделения. Оно меняет цвет текста, цвет фона и шрифт строки, если строка отвечает условию. Код писать не нужно.

Как настроить условное оформление списка

Пример: в журнале «Счета покупателям» нужно выделить красным все документы, где в комментарии есть слово «срочно».

  1. Откройте журнал.
  2. В меню Ещё откройте настройку списка.
  3. Перейдите на вкладку условного оформления и нажмите «Добавить».
  4. В поле «Оформление» задайте цвет текста — красный, шрифт — жирный.
  5. В поле «Условие» выберите поле Комментарий, вид сравнения «Содержит», значение срочно.
  6. В «Оформляемых полях» оставьте пусто, чтобы выделялась вся строка, или выберите конкретные колонки.
  7. Нажмите «Завершить редактирование».

Настройка сохранится за вашим пользователем. У коллег список останется прежним.

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

Условное оформление в отчёте на СКД

Большинство отчётов в БП 3.0, ЗУП 3.1 и УТ 11 построены на системе компоновки данных. Выделение в них настраивается так:

  1. Откройте отчёт и нажмите «Настройки».
  2. Переключите вид настроек на расширенный.
  3. На вкладке условного оформления добавьте правило: условие и оформление, как в списке.
  4. Сформируйте отчёт заново.

Типичные сценарии:

  • 🔴 отрицательные остатки — красным цветом текста;
  • 🟡 просроченная задолженность — жёлтым фоном;
  • 🟢 итоги по группам — жирным шрифтом;
  • ⚪ нулевые значения — серым, чтобы не отвлекали.

Чтобы настройка не пропала, сохраните вариант отчёта под своим именем. Иначе при следующем открытии загрузится стандартный вариант.

Как выделить слово жирным или цветом в печатной форме

Печатная форма — это табличный документ, собранный из макета. Есть два уровня правки: разовая и постоянная.

Разовое выделение в открытой печатной форме

Подходит, когда нужно один раз подчеркнуть сумму или условие в счёте перед отправкой.

  1. Сформируйте печатную форму.
  2. Включите режим редактирования — кнопка с карандашом в командной панели формы печати.
  3. Выделите ячейку со словом.
  4. Через контекстное меню (правая кнопка мыши) откройте свойства ячейки и задайте шрифт, цвет текста или цвет фона.
  5. Сохраните или отправьте документ.

Правка живёт только в этом экземпляре. При следующем формировании печатной формы оформление вернётся к исходному.

Если выделить нужно часть текста в ячейке, проще сохранить форму в .xlsx или .docx и отформатировать там. Платформа хранит шрифт на уровне ячейки, а не отдельного слова.

Постоянное выделение через макет

Если слово должно быть выделено в каждом документе, правят макет. В типовых конфигурациях на БСП для этого не нужен конфигуратор:

  1. Откройте Администрирование → Печатные формы, отчеты и обработки → Макеты печатных форм.
  2. Найдите макет по названию формы, например «Счет на оплату».
  3. Откройте его на изменение.
  4. Выделите ячейку, в свойствах задайте шрифт: жирный, курсив, размер, цвет.
  5. Сохраните макет.

Изменённый макет используется вместо поставляемого. При обновлении конфигурации он не затирается, но новые правки разработчиков в нём не появятся. Поэтому после крупных обновлений сравнивайте свой макет с поставляемым — там же есть команда, которая возвращает стандартный вариант.

Если макет правит программист в конфигураторе, делайте это в расширении конфигурации, а не в основной конфигурации. Иначе типовая база снимается с поддержки, и обновления усложняются.

Свойства ячейки, которые отвечают за выделение

СвойствоЧто меняетПример значения
ШрифтНачертание, размер, жирность, курсив, подчёркиваниеArial, 10, жирный
ЦветТекстаЦвет буквКрасный
ЦветФонаЗаливка ячейкиСветло-жёлтый
Рамка... / линииОбводка ячейкиСплошная линия
ЗаполнениеТекст, параметр или шаблонШаблон Итого: [Сумма]

Программное выделение текста в коде 1С

Когда выделение должно зависеть от данных — сумма больше лимита, найдено слово, просрочен срок, — пишут код. Три основных инструмента: свойства области табличного документа, ФорматированнаяСтрока и условное оформление.

Жирный шрифт и цвет в табличном документе

Область макета получают через ПолучитьОбласть, а свойства ячеек меняют до вывода:

ОбластьСтрока = Макет.ПолучитьОбласть("Строка");
ОбластьСтрока.Параметры.Заполнить(ДанныеСтроки);

Если ДанныеСтроки.Сумма > 100000 Тогда
    Ячейка = ОбластьСтрока.Область("R1C5");
    Ячейка.Шрифт = Новый Шрифт(Ячейка.Шрифт, , , Истина); // жирный
    Ячейка.ЦветТекста = WebЦвета.Красный;
    Ячейка.ЦветФона = WebЦвета.СветлоЖелтый;
КонецЕсли;

ТабДок.Вывести(ОбластьСтрока);

Конструктор Новый Шрифт принимает исходный шрифт первым параметром. Остальные: имя, размер, жирный, наклонный, подчёркнутый, зачёркнутый. Так шрифт ячейки сохраняет имя и размер, а меняется только жирность.

Адрес R1C5 указан относительно области. Если в макете поменяют колонки, адрес съедет. Надёжнее дать ячейке имя в макете и обращаться к ней по имени.

ФорматированнаяСтрока: одно слово жирным внутри текста

ФорматированнаяСтрока позволяет выделить именно слово, а не весь текст. Её выводят в декорацию «Надпись» на управляемой форме:

ЖирныйКрасный = Новый ФорматированнаяСтрока("не проведён",
    Новый Шрифт(, , , Истина), WebЦвета.Красный);

Элементы.НадписьСтатус.Заголовок = Новый ФорматированнаяСтрока(
    "Документ ", ЖирныйКрасный, ": проверьте остатки.");

Конструктор склеивает части: обычные строки, другие форматированные строки и картинки.

Подсветка найденного слова в тексте

Частая задача — показать текст и подсветить в нём искомое слово, как в поисковике. Функция режет строку по совпадениям без учёта регистра:

Функция ПодсветитьСлово(Текст, Слово) Экспорт

    Если ПустаяСтрока(Слово) Тогда
        Возврат Новый ФорматированнаяСтрока(Текст);
    КонецЕсли;

    ДлинаСлова = СтрДлина(Слово);
    ШрифтВыделения = Новый Шрифт(, , , Истина);
    Части = Новый Массив;
    Остаток = Текст;
    Поз = СтрНайти(НРег(Остаток), НРег(Слово));

    Пока Поз > 0 Цикл
        Части.Добавить(Лев(Остаток, Поз - 1));
        Части.Добавить(Новый ФорматированнаяСтрока(Сред(Остаток, Поз, ДлинаСлова),
            ШрифтВыделения, , WebЦвета.Желтый));
        Остаток = Сред(Остаток, Поз + ДлинаСлова);
        Поз = СтрНайти(НРег(Остаток), НРег(Слово));
    КонецЦикла;

    Части.Добавить(Остаток);
    Возврат Новый ФорматированнаяСтрока(Части);

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

Вызов: Элементы.НадписьТекст.Заголовок = ПодсветитьСлово(Комментарий, СтрокаПоиска);

Проверим на примере. Текст «Счёт срочно, оплатить срочно», слово «срочно». Первое совпадение на позиции 6: в массив уйдут «Счёт », выделенное «срочно» и остаток «, оплатить срочно». Второе совпадение в остатке на позиции 12: уйдут «, оплатить » и второе «срочно». Остаток пуст — цикл закончен, в массиве пять частей.

В типовых конфигурациях на БСП есть готовая функция СтроковыеФункцииКлиентСервер.ФорматированнаяСтрока(). Она разбирает строку с тегами <b> и <a href> и превращает её в форматированную строку. Удобно, когда текст надписи хранится в одном месте и переводится.

Условное оформление динамического списка из кода

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

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

    Элемент = Список.УсловноеОформление.Элементы.Добавить();

    Отбор = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    Отбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Комментарий");
    Отбор.ВидСравнения = ВидСравненияКомпоновкиДанных.Содержит;
    Отбор.ПравоеЗначение = "срочно";

    Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", WebЦвета.Красный);
    Элемент.Оформление.УстановитьЗначениеПараметра("Шрифт", Новый Шрифт(, , , Истина));

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

В типовой конфигурации такой код кладут в расширение, в обработчик формы списка с аннотацией &После("ПриСозданииНаСервере"), чтобы не трогать основной модуль.

HTML и форматированный документ для сложного оформления

Когда в одном тексте нужно несколько стилей — жирный, курсив, цвет, списки, ссылки, — подходят два элемента формы.

Поле форматированного документа

Реквизит типа ФорматированныйДокумент, выведенный в поле формы, работает как простой текстовый редактор. Пользователь выделяет слово и меняет начертание. Чтобы были кнопки «Жирный», «Курсив», «Цвет», к полю добавляют командную панель редактирования форматированного документа.

Программно текст задают и читают через HTML:

ТекстHTML = "<p>Оплатить до <b>25 числа</b>, иначе <span style=""color:red"">пени</span>.</p>";
Объект.Заметка.УстановитьHTML(ТекстHTML, Новый Структура);

Метод ПолучитьHTML возвращает содержимое обратно в HTML — удобно для писем и выгрузки на сайт.

Поле HTML-документа

Поле HTML показывает произвольную разметку. Слово подсвечивают тегом <mark> или стилями:

<p>Найдено: <mark>ЕГАИС</mark> — 3 документа</p>

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

Сравнение элементов формы

ЭлементВыделение словаРедактирует пользовательГде применять
Поле ввода (строка)НетДаОбычные реквизиты
Декорация-надписьДа, через ФорматированнаяСтрокаНетСтатусы, подсказки, результаты поиска
Поле форматированного документаДаДаЗаметки, тексты писем
Поле HTML-документаДаНетОтчёты-справки, сложная вёрстка

Ошибки при выделении текста и как их избежать

  • ❌ Пытаются выделить слово жирным в обычном поле ввода. Строковый реквизит не хранит оформление. Нужна декорация с ФорматированнаяСтрока или поле форматированного документа.
  • ❌ Меняют шрифт через Новый Шрифт("Arial", 10, Истина). Порядок параметров другой: первым идёт исходный шрифт. Строка на месте исходного шрифта не задаст имя и размер так, как задумано.
  • ❌ Слишком много правил условного оформления. Пять цветов в одном журнале уже не выделяют, а рябят. Оставьте 2–3 правила с понятным смыслом.
  • ❌ Не сохраняют вариант отчёта. Оформление пропадает при следующем открытии.
  • ❌ Подсветка в цикле по тысячам строк на клиенте. Сборку форматированных строк и оформления делайте на сервере, а на клиент передавайте результат.
  • ❌ Цвет — единственный признак. Для печати на чёрно-белом принтере красный текст станет серым. Дублируйте важное жирным шрифтом.

Частые вопросы

Можно ли выделить слово жирным в комментарии документа?
Нет. Комментарий — строковый реквизит, он хранит только текст. Для оформленного текста нужен реквизит типа «Форматированный документ», а это доработка конфигурации.
Почему условное оформление не работает в веб-клиенте?
Оно работает и там. Если цвет не виден, проверьте, что правило сохранено и что тема оформления браузера не перекрывает цвета.
Как выделить цветом строку в табличной части документа?
Через условное оформление формы документа. Пользователь без конфигуратора этого не настроит — правило добавляет программист в расширении.
Сохранится ли изменённый макет печатной формы после обновления?
Да, пользовательский макет остаётся. Но правки разработчиков в поставляемом макете в него не попадут — после обновления сверьте их.
Можно ли подсветить слово в тексте модуля в конфигураторе?
Конфигуратор сам подсвечивает синтаксис. Для поиска слова используйте Ctrl + F в модуле или глобальный поиск по конфигурации.