Выделение и цветовое оформление строк в 1С 8.3

· 9 мин

Содержание

Чтобы выделить цветом строки в списке по условию, откройте список и выберите Еще → Настроить список → Условное оформление. В отчёте на СКД то же делается на вкладке Условное оформление. Если нужно просто отметить несколько строк мышью (например, перед печатью) — щёлкайте с зажатым Ctrl или Shift. А покрасить строки программно позволяет табличный документ: у каждой области задаются ЦветФона, ЦветТекста и Шрифт.

Под «выделить строки» понимают две разные задачи: отметить несколько строк в списке и раскрасить строки по значению (красные просрочки, жёлтые черновики). Ниже — оба варианта: из пользовательского режима без программирования, в отчётах и в коде.

Выбор нескольких строк мышью и клавиатурой

Отметить несколько строк в любом списке (документы, справочник, табличная часть) можно стандартными приёмами:

  • 🖱️ одиночный щелчок по строке — выбрать одну;
  • Shift + щелчок — выбрать диапазон от текущей строки до той, по которой кликнули;
  • Ctrl + щелчок — добавить или убрать одну строку из выделения, не теряя остальные;
  • Ctrl + A — выделить все строки списка;
  • Shift + стрелки ↑/↓ — расширять выделение с клавиатуры.

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

Что полезно уметь с несколькими выделенными строками:

  • Групповое изменение — отметьте строки и вызовите Еще → Групповое изменение реквизитов (команда есть в типовых конфигурациях на БСП). Так разом меняют ответственного, организацию, статус.
  • Пометка на удаление пачкой — выделите строки и нажмите Del или Еще → Пометить на удаление.
  • Копирование значений — Ctrl + C на выделенных строках кладёт в буфер значения колонок. В Excel вставятся только данные, без цвета (об этом ниже).
  • Снять выделение — щёлкните по любой одной строке без Ctrl и Shift.

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

Печать выделенных строк

Напрямую «распечатать только отмеченные строки» список не умеет — печать работает с табличным документом. Поэтому порядок такой:

  1. Выделите нужные строки списка.
  2. Нажмите Еще → Вывести список.
  3. В окне выбора оставьте галочки только у нужных колонок и укажите вывод в табличный документ.
  4. В полученном табличном документе выделите диапазон строк, который печатаете.
  5. Задайте по выделению область печати (команда задания области печати в меню работы с таблицей) и отправьте на печать.

Если в окне «Вывести список» есть переключатель «Выводить только выделенные строки» — используйте его, тогда шаг с ручным отбором в табличном документе не понадобится. Набор опций зависит от формы списка.

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

В табличной части (строки товаров в накладной, начисления в документе) выделение работает так же: Ctrl и Shift для набора строк. С отмеченными строками доступны кнопки командной панели таблички:

  • ↑/↓ — переместить выделенные строки вверх или вниз по порядку;
  • Удалить (Del) — убрать отмеченные строки;
  • копирование строки — F9 дублирует текущую строку.

Выделять строки в табличной части удобно, когда нужно переставить порядок или удалить сразу несколько позиций, не щёлкая каждую отдельно.

Цвет строки в списке по условию

Это и есть «условное форматирование»: строки в динамическом списке автоматически красятся по значению поля. Просроченные задачи — красным, проведённые документы — зелёным, черновики — серым.

Порядок настройки в интерфейсе «Такси»:

  1. Откройте нужный список (например, список документов).
  2. Еще → Настроить список….
  3. Перейдите на вкладку Условное оформление.
  4. Нажмите Добавить — появится новая строка с тремя группами параметров: Оформление, Условие, Оформляемые поля.

Разберём каждую группу.

Оформление — как именно красить. Доступны ЦветФона, ЦветТекста, Шрифт (жирный, курсив, размер), а также видимость и доступность поля. Можно задать сразу несколько свойств.

Условие — когда применять. Сюда добавляются сравнения по полям списка: Проведён = Нет, Сумма > 100 000, ДатаОплаты < &ТекущаяДата. Несколько условий объединяются по «И». Значение сравнивают либо с константой, либо с параметром — например, &ТекущаяДата для подсветки просроченных строк относительно сегодняшнего дня.

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

  • Проведён = Ложь → серая приглушённая строка (черновик виден, но не отвлекает);
  • Сумма Взаиморасчётов > 0 → красный текст для долга;
  • ДатаОтгрузки < &ТекущаяДата И Отгружено = Ложь → розовая заливка просроченной отгрузки.

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

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

Настройка через Еще → Настроить список сохраняется у текущего пользователя для этой формы. Чтобы правило действовало у всех, его задают разработчиком в условном оформлении самого динамического списка в конфигураторе или через расширение.

Покрасить строки списка по условию
Выполнено: 0 / 6

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

В отчётах на системе компоновки данных цветовое выделение строк настраивается так же логично, как в списке, — через условное оформление компоновки.

Если отчёт открыт в режиме предприятия:

  1. Откройте Настройки отчёта (кнопка настроек или Еще → Изменить вариант).
  2. Найдите вкладку или раздел Условное оформление.
  3. Добавьте правило: Оформление (цвет, шрифт), Условие (по полю отчёта), Оформляемые поля.

Логика совпадает с настройкой списка, но есть нюанс компоновки: в поле Оформляемые поля указывают конкретные поля отчёта, а область применения правила (вся строка, группировка, только итог) задаётся отдельно — выбором, к какому уровню структуры относится оформление.

Типичные правила для отчётов:

  • отрицательный остаток — красный текст;
  • строки с нулём — серый приглушённый цвет;
  • итоговые строки — жирный шрифт и заливка.

Если отчёт строится на макете СКД в конфигураторе, то же условное оформление есть на вкладке Настройки → Условное оформление схемы компоновки. Правила оттуда приезжают пользователю как настройки по умолчанию.

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

Когда отчёт или печатная форма формируется программно, строки красят через объект ТабличныйДокумент. У любой области (ячейки, строки, прямоугольника) есть свойства оформления.

Прямое обращение к области по координатам — Область(ВерхняяСтрока, ЛеваяКолонка, НижняяСтрока, ПраваяКолонка):

ТабДок = Новый ТабличныйДокумент;

Для НомерСтроки = 1 По Данные.Количество() Цикл
    СтрокаДанных = Данные[НомерСтроки - 1];

    // текст в три колонки
    ТабДок.Область(НомерСтроки, 1).Текст = СтрокаДанных.Наименование;
    ТабДок.Область(НомерСтроки, 2).Текст = Формат(СтрокаДанных.Сумма, "ЧГ=0");
    ТабДок.Область(НомерСтроки, 3).Текст = СтрокаДанных.Статус;

    // выделяем всю строку (колонки 1..3), если сумма большая
    Если СтрокаДанных.Сумма > 100000 Тогда
        ОбластьСтроки = ТабДок.Область(НомерСтроки, 1, НомерСтроки, 3);
        ОбластьСтроки.ЦветФона = Новый Цвет(255, 200, 200); // светло-розовый
        ОбластьСтроки.ЦветТекста = Новый Цвет(140, 0, 0);
        ОбластьСтроки.Шрифт = Новый Шрифт(ОбластьСтроки.Шрифт, , , Истина); // жирный
    КонецЕсли;
КонецЦикла;

ТабДок.Показать();

Что здесь важно:

  • Новый Цвет(КрасныйКомпонент, Зелёный, Синий) задаёт цвет по трём компонентам 0–255 — это самый предсказуемый способ. Именованные цвета WebЦвета.Красный и ЦветаСтиля тоже доступны, но набор имён ограничен.
  • Четырёхпараметрический Область(…) возвращает прямоугольник — так красят строку целиком, а не одну ячейку.
  • В конструкторе Новый Шрифт(ИсходныйШрифт, Имя, Размер, Жирность, …) первым аргументом передают текущий шрифт области, чтобы не потерять его размер и имя.

Если форма собирается из макета, тот же приём работает с готовыми областями: ОбластьСтроки = Макет.ПолучитьОбласть("Строка"), затем правите её цвет и ТабДок.Вывести(ОбластьСтроки).

Кроме цвета у области настраиваются и другие свойства оформления:

  • ГраницаСверху, ГраницаСнизу, ГраницаСлева, ГраницаСправа — линии рамки (тип и толщина задаются объектом Новый Линия(…));
  • ГоризонтальноеПоложение и ВертикальноеПоложение — выравнивание текста в ячейке;
  • ШиринаКолонки и ВысотаСтроки — размеры;
  • Объединить = Истина для прямоугольной области — объединение ячеек под заголовок.

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

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

СпособГде применяетсяНужен кодКто настраивает
Выделение мышью (Ctrl/Shift)Любой список, разовоНетПользователь
Условное оформление спискаДинамические спискиНетПользователь / разработчик
Условное оформление СКДОтчётыНетПользователь / разработчик
Программно в ТабличныйДокументПечатные формы, обработкиДаРазработчик

Коротко по выбору:

  • нужно разово отметить строки → мышь с Ctrl/Shift;
  • строки в рабочем списке должны краситься сами по значению → условное оформление списка;
  • раскраска в отчёте → условное оформление СКД;
  • своя печатная форма или выгрузка → табличный документ в коде.

Перенос цвета и формата в Excel

Цветовое оформление табличного документа переносится в Excel без потерь — и фон, и цвет текста, и шрифт, и границы.

Из пользовательского режима: откройте сформированный отчёт или список, выведенный в табличный документ, и выберите Файл → Сохранить как…, тип файла — Лист Excel 2007 (.xlsx). Откройте полученный файл — заливка строк сохранится.

Вместе с цветом в Excel переносятся:

  • ширина колонок и высота строк;
  • объединённые ячейки заголовков;
  • формат чисел и выравнивание;
  • границы и шрифты.

Если файл открывают в старом Excel или в бесплатном редакторе, выбирайте формат .xlsx — он читается везде. Устаревший .xls берите, только когда получатель явно работает в версии Excel до 2007 года.

Программно тот же результат даёт метод Записать:

ТабДок.Записать("C:\Выгрузка\Отчет.xlsx", ТипФайлаТабличногоДокумента.XLSX);

Оформление переносится только при сохранении табличного документа в файл. Если выделить строки в списке и скопировать их через буфер обмена (Ctrl + C) прямо в Excel, цвет не перенесётся — скопируются только значения. Для форматированной выгрузки используйте «Сохранить как» или Записать.

Почему оформление не применяется

Самые частые причины, по которым цвет строк «не включается».

Диагностика: выберите симптом

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

Можно ли покрасить строку сразу в нескольких колонках, но не во всей строке?
Да. В условном оформлении укажите в «Оформляемых полях» только нужные колонки — правило применится к ним, остальная часть строки останется без заливки.
Как снять выделение цветом, которое задал раньше?
Откройте Еще → Настроить список → Условное оформление, выделите правило и нажмите Удалить. Для отчёта — то же на вкладке условного оформления настроек.
Почему при копировании строк в Excel пропадает цвет?
Через буфер обмена переносятся только значения. Чтобы сохранить заливку и шрифт, выведите данные в табличный документ и используйте «Сохранить как → Лист Excel» или метод Записать с типом XLSX.
Чем условное оформление отличается от раскраски в коде?
Условное оформление настраивается без программирования и пересчитывается автоматически при изменении данных. Раскраска в ТабличныйДокумент нужна, когда форму или выгрузку вы строите кодом и управляете внешним видом каждой области.
Можно ли выделить цветом строки итогов в отчёте?
Да. В условном оформлении СКД добавьте правило и в области применения укажите уровень группировки или итога — тогда жирный шрифт и заливка лягут именно на итоговые строки.