Выделение и цветовое оформление строк в 1С 8.3
Содержание
Чтобы выделить цветом строки в списке по условию, откройте список и выберите Еще → Настроить список → Условное оформление. В отчёте на СКД то же делается на вкладке Условное оформление. Если нужно просто отметить несколько строк мышью (например, перед печатью) — щёлкайте с зажатым Ctrl или Shift. А покрасить строки программно позволяет табличный документ: у каждой области задаются ЦветФона, ЦветТекста и Шрифт.
Под «выделить строки» понимают две разные задачи: отметить несколько строк в списке и раскрасить строки по значению (красные просрочки, жёлтые черновики). Ниже — оба варианта: из пользовательского режима без программирования, в отчётах и в коде.
Выбор нескольких строк мышью и клавиатурой
Отметить несколько строк в любом списке (документы, справочник, табличная часть) можно стандартными приёмами:
- 🖱️ одиночный щелчок по строке — выбрать одну;
Shift+ щелчок — выбрать диапазон от текущей строки до той, по которой кликнули;Ctrl+ щелчок — добавить или убрать одну строку из выделения, не теряя остальные;Ctrl+A— выделить все строки списка;Shift+ стрелки↑/↓— расширять выделение с клавиатуры.
Выделенные строки нужны для групповых операций: пометить на удаление, провести пачкой, скопировать значения колонки. В большинстве списков команды группового изменения лежат в меню Еще над таблицей.
Что полезно уметь с несколькими выделенными строками:
- Групповое изменение — отметьте строки и вызовите
Еще → Групповое изменение реквизитов(команда есть в типовых конфигурациях на БСП). Так разом меняют ответственного, организацию, статус. - Пометка на удаление пачкой — выделите строки и нажмите
DelилиЕще → Пометить на удаление. - Копирование значений —
Ctrl+Cна выделенных строках кладёт в буфер значения колонок. В Excel вставятся только данные, без цвета (об этом ниже). - Снять выделение — щёлкните по любой одной строке без
CtrlиShift.
Выделение не меняет данные, оно живёт только до следующего щелчка или обновления списка — это не сохраняемое состояние, а разовый выбор.
Печать выделенных строк
Напрямую «распечатать только отмеченные строки» список не умеет — печать работает с табличным документом. Поэтому порядок такой:
- Выделите нужные строки списка.
- Нажмите
Еще → Вывести список. - В окне выбора оставьте галочки только у нужных колонок и укажите вывод в табличный документ.
- В полученном табличном документе выделите диапазон строк, который печатаете.
- Задайте по выделению область печати (команда задания области печати в меню работы с таблицей) и отправьте на печать.
Если в окне «Вывести список» есть переключатель «Выводить только выделенные строки» — используйте его, тогда шаг с ручным отбором в табличном документе не понадобится. Набор опций зависит от формы списка.
Выделение строк в табличной части документа
В табличной части (строки товаров в накладной, начисления в документе) выделение работает так же: Ctrl и Shift для набора строк. С отмеченными строками доступны кнопки командной панели таблички:
↑/↓— переместить выделенные строки вверх или вниз по порядку;Удалить(Del) — убрать отмеченные строки;- копирование строки —
F9дублирует текущую строку.
Выделять строки в табличной части удобно, когда нужно переставить порядок или удалить сразу несколько позиций, не щёлкая каждую отдельно.
Цвет строки в списке по условию
Это и есть «условное форматирование»: строки в динамическом списке автоматически красятся по значению поля. Просроченные задачи — красным, проведённые документы — зелёным, черновики — серым.
Порядок настройки в интерфейсе «Такси»:
- Откройте нужный список (например, список документов).
Еще → Настроить список….- Перейдите на вкладку
Условное оформление. - Нажмите
Добавить— появится новая строка с тремя группами параметров: Оформление, Условие, Оформляемые поля.
Разберём каждую группу.
Оформление — как именно красить. Доступны ЦветФона, ЦветТекста, Шрифт (жирный, курсив, размер), а также видимость и доступность поля. Можно задать сразу несколько свойств.
Условие — когда применять. Сюда добавляются сравнения по полям списка: Проведён = Нет, Сумма > 100 000, ДатаОплаты < &ТекущаяДата. Несколько условий объединяются по «И». Значение сравнивают либо с константой, либо с параметром — например, &ТекущаяДата для подсветки просроченных строк относительно сегодняшнего дня.
Несколько примеров условий, которые реально пригождаются:
Проведён = Ложь→ серая приглушённая строка (черновик виден, но не отвлекает);Сумма Взаиморасчётов > 0→ красный текст для долга;ДатаОтгрузки < &ТекущаяДата И Отгружено = Ложь→ розовая заливка просроченной отгрузки.
Правил можно создать несколько, они применяются по порядку сверху вниз. Если строка попадает под два правила с разными свойствами (одно задаёт фон, другое шрифт) — применятся оба. Поэтому порядок правил в списке имеет значение: более общее ставьте выше, частное — ниже.
Оформляемые поля — к каким колонкам применить. Если список полей оставить пустым, оформление применится ко всей строке целиком — это и нужно, когда надо покрасить строку, а не одну ячейку.
Настройка через Еще → Настроить список сохраняется у текущего пользователя для этой формы. Чтобы правило действовало у всех, его задают разработчиком в условном оформлении самого динамического списка в конфигураторе или через расширение.
Оформление строк в отчёте на СКД
В отчётах на системе компоновки данных цветовое выделение строк настраивается так же логично, как в списке, — через условное оформление компоновки.
Если отчёт открыт в режиме предприятия:
- Откройте
Настройкиотчёта (кнопка настроек илиЕще → Изменить вариант). - Найдите вкладку или раздел
Условное оформление. - Добавьте правило: Оформление (цвет, шрифт), Условие (по полю отчёта), Оформляемые поля.
Логика совпадает с настройкой списка, но есть нюанс компоновки: в поле Оформляемые поля указывают конкретные поля отчёта, а область применения правила (вся строка, группировка, только итог) задаётся отдельно — выбором, к какому уровню структуры относится оформление.
Типичные правила для отчётов:
- отрицательный остаток — красный текст;
- строки с нулём — серый приглушённый цвет;
- итоговые строки — жирный шрифт и заливка.
Если отчёт строится на макете СКД в конфигураторе, то же условное оформление есть на вкладке Настройки → Условное оформление схемы компоновки. Правила оттуда приезжают пользователю как настройки по умолчанию.
Как покрасить строку в коде: табличный документ
Когда отчёт или печатная форма формируется программно, строки красят через объект ТабличныйДокумент. У любой области (ячейки, строки, прямоугольника) есть свойства оформления.
Прямое обращение к области по координатам — Область(ВерхняяСтрока, ЛеваяКолонка, НижняяСтрока, ПраваяКолонка):
ТабДок = Новый ТабличныйДокумент;
Для НомерСтроки = 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, цвет не перенесётся — скопируются только значения. Для форматированной выгрузки используйте «Сохранить как» или Записать.
Почему оформление не применяется
Самые частые причины, по которым цвет строк «не включается».
Новый Цвет(…) принимает компоненты 0–255, большие значения дадут не тот оттенок.Частые вопросы
Можно ли покрасить строку сразу в нескольких колонках, но не во всей строке?
Как снять выделение цветом, которое задал раньше?
Еще → Настроить список → Условное оформление, выделите правило и нажмите Удалить. Для отчёта — то же на вкладке условного оформления настроек.Почему при копировании строк в Excel пропадает цвет?
Записать с типом XLSX.Чем условное оформление отличается от раскраски в коде?
ТабличныйДокумент нужна, когда форму или выгрузку вы строите кодом и управляете внешним видом каждой области.