Быстрый старт · 9 мин
Как выделить строки в 1С: все рабочие способы
Как выделить строки в 1С: выделение в списках и табличных частях, условное оформление, программное окрашивание строк, типичные ошибки и ответы на вопросы.
Выделение строк в 1С — задача, которая возникает в двух разных ситуациях. Первая: пользователю нужно просто отметить несколько строк в списке или табличной части, чтобы выполнить с ними групповое действие — провести, удалить, распечатать. Вторая: требуется окрасить строки цветом по условию, например подсветить просроченные заказы или товары с нулевым остатком. Это принципиально разные механизмы, и путать их не стоит.
Первый случай решается штатными средствами интерфейса: клавишами Shift и Ctrl или командой «Выделить все». Второй — через условное оформление формы (в управляемых формах), настройки списка в режиме предприятия или программно через встроенный язык. Ниже разобраны оба сценария с конкретными действиями для типовых конфигураций и самописных решений.
Как выделить строки мышью и клавиатурой в списке
Базовый приём работает одинаково в большинстве списков 1С: документов, справочников, регистров. Чтобы выделить одну строку, достаточно кликнуть по ней. Чтобы выделить диапазон, кликните первую строку, затем зажмите Shift и кликните последнюю — все строки между ними будут выделены. Для выборочного выделения несмежных строк зажмите Ctrl и кликайте по нужным строкам; повторный клик с Ctrl снимает выделение.
Комбинация Ctrl+A выделяет все строки текущего списка. Учтите ограничение: если список отображается с отбором или в виде дерева, выделяются только видимые (загруженные) строки, а не вся таблица базы данных. В иерархических списках свёрнутые группы могут не попасть в выделение — разверните их заранее.
После выделения доступны групповые действия через контекстное меню или кнопку «Ещё»: провести, отменить проведение, пометить на удаление, изменить выделенные (групповое изменение реквизитов). Если команда неактивна, проверьте, поддерживает ли объект групповую обработку и есть ли у вас соответствующие права.
- 1Кликните первую нужную строку списка
- 2Для диапазона зажмите Shift и кликните последнюю строку; для отдельных строк — Ctrl и клики по ним
- 3Проверьте, что выделены именно те строки (подсветка строк, счётчик в некоторых формах)
- 4Выполните групповое действие через контекстное меню или кнопку «Ещё»
Выделение строк в табличной части документа
Табличные части (например, «Товары» в документе «Реализация») поддерживают те же сочетания Shift и Ctrl. Выделенные строки можно удалить разом (Delete или кнопка удаления), скопировать и вставить в другой документ через буфер обмена, переместить вверх-вниз в некоторых конфигурациях.
Практический приём для больших табличных частей: если нужно удалить большинство строк, проще выделить те, что нужно оставить, скопировать их в новый документ или очистить таблицу и вставить обратно. Это быстрее, чем выделять сотни строк на удаление, и снижает риск ошибочного удаления нужных позиций.
Учтите: в некоторых формах множественное выделение отключено разработчиком (свойство таблицы формы «РежимВыделения»). Если Shift и Ctrl не работают, это ограничение конкретной формы, а не ошибка платформы.
Как окрасить строки по условию в режиме предприятия
В типовых конфигурациях (Управление торговлей, ERP, Бухгалтерия) многие списки позволяют настроить цветовое выделение без программирования. Откройте список, нажмите «Ещё → Настроить список» (в некоторых версиях — «Настройка списка»). Перейдите на закладку «Оформление» или «Условное оформление», добавьте элемент, задайте условие отбора (например, «Сумма документа больше 100000») и выберите оформление — цвет фона, цвет текста, шрифт.
Условие строится по полям, доступным в списке. Можно комбинировать несколько условий через группировку «И» / «ИЛИ». Например, подсветить красным документы, которые не проведены и при этом имеют прошедшую дату. Порядок элементов оформления имеет значение: при пересечении условий приоритет обычно у элемента, расположенного выше.
Настройка сохраняется для текущего пользователя. Если нужно применить её для всех сотрудников, используйте механизм копирования настроек (в типовых — «Администрирование → Персональные настройки» или аналогичный инструмент администратора) либо задайте оформление в конфигураторе.
Условное оформление в конфигураторе
Для самописных конфигураций и доработок оформление задаётся в конфигураторе. Откройте нужную форму, в дереве элементов выберите корневой элемент «Форма», найдите свойство «УсловноеОформление» и откройте его. Добавьте элемент, на закладке «Оформление» укажите параметры (ЦветФона, ЦветТекста, Шрифт), на закладке «Условие» — отбор по полям данных формы, на закладке «Оформляемые поля» — какие колонки таблицы окрашивать.
Частая ошибка — забыть заполнить оформляемые поля. Если список пуст, оформление применяется ко всей строке в некоторых случаях, но поведение зависит от версии платформы; надёжнее явно перечислить нужные колонки. Вторая ошибка — условие по полю, которого нет в данных формы: такой элемент просто не сработает без какого-либо сообщения.
Для динамических списков условное оформление можно задавать и в настройках самого динамического списка (свойство «УсловноеОформление» реквизита списка). Это удобно, когда одна и та же логика подсветки нужна в нескольких формах, использующих общий запрос.
Программное выделение строк цветом
Когда условие слишком сложное для декларативного оформления (например, зависит от обращения к базе данных или вычисляемых значений), используют событие «ПриПолученииДанныхНаСервере» динамического списка или программное заполнение условного оформления. В обработчике можно добавлять элементы оформления в коллекцию «Оформление» параметров события, задавая условие и цвет для конкретных строк по их ключам.
Для таблиц значений на форме (не динамических списков) распространён приём со служебной колонкой: добавьте в таблицу реквизит, например «ЦветСтроки», заполняйте его при изменении данных и настройте условное оформление по этому реквизиту. Саму колонку можно скрыть от пользователя.
ЭлементОформления = УсловноеОформление.Элементы.Добавить();
ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.СветлоРозовый);
Отбор = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
Отбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Список.Просрочен");
Отбор.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
Отбор.ПравоеЗначение = Истина;
Поле = ЭлементОформления.Поля.Элементы.Добавить();
Поле.Поле = Новый ПолеКомпоновкиДанных("Список");Избегайте тяжёлых запросов внутри обработчиков оформления: они выполняются при каждой отрисовке списка и могут заметно замедлить работу. Если вычисление дорогое, кэшируйте результат в реквизите формы или пересчитывайте по событию, а не при каждом обновлении.
Типичные ошибки и ограничения
Ещё одно ограничение: условное оформление управляемых форм не умеет напрямую сравнивать два поля строки между собой (например, «Цена больше МаксимальнойЦены» в той же строке). Такие условия решаются добавлением вычисляемого поля в запрос динамического списка или служебного реквизита в таблицу значений.
В обычных (неуправляемых) формах старых конфигураций механизм другой: используется событие «ПриВыводеСтроки» табличного поля, где цвет задаётся через свойство «ОформлениеСтроки». Если вы работаете с устаревшей конфигурацией на обычных формах, инструкции для управляемых форм к ней не применимы.
Как проверить результат
Цвет появляется сразу при открытии списка и обновляется при изменении данных
Цвет появляется только после принудительного обновления (F5) или не появляется вовсе
Подсвечиваются только строки, реально удовлетворяющие условию — проверьте на 2–3 контрольных примерах
Подсвечиваются лишние строки или часть нужных пропущена
Список открывается и прокручивается без заметных задержек
Список подтормаживает — вероятно, тяжёлый код в обработчике оформления
Часто задаваемые вопросы
Можно ли выделить строки в списке по произвольному условию без конфигуратора?
Да, если конфигурация поддерживает настройку списка: «Ещё → Настроить список → Оформление». Там доступны условия по видимым полям списка. Если нужного поля в настройке нет или пункт меню отсутствует, потребуется доработка формы в конфигураторе.
Почему Ctrl+A выделяет не все документы, а только часть?
Динамические списки подгружают данные порциями, а при установленном отборе выделяются только строки, попадающие под отбор. Снимите отбор и прокрутите список до конца, если нужно охватить всё содержимое. Для массовых операций над всей таблицей надёжнее использовать групповую обработку, а не выделение.
Как убрать цветовое выделение, которое настроил другой пользователь?
Откройте «Ещё → Настроить список», перейдите на закладку оформления и удалите лишние элементы либо используйте команду «Установить стандартные настройки». Пользовательские настройки хранятся индивидуально, поэтому чужая настройка обычно не влияет на вашу учётную запись — проверьте, не работаете ли вы под одним пользователем.
Можно ли выделять строки разными цветами по нескольким условиям?
Да. Добавьте несколько элементов условного оформления с разными условиями и цветами. При пересечении условий применяется элемент, расположенный выше в списке, поэтому более специфичные условия ставьте первыми.
Работает ли условное оформление в мобильном клиенте и веб-клиенте?
Да, условное оформление форм поддерживается в веб-клиенте и мобильном клиенте, так как обрабатывается платформой. Однако отдельные параметры оформления (некоторые шрифтовые эффекты) могут отображаться иначе — проверяйте результат в том клиенте, которым пользуются сотрудники.
Что важно запомнить
Выделение строк для действий — это Shift, Ctrl и Ctrl+A в списке. Окрашивание строк по условию — условное оформление: в типовых формах через «Настроить список», в конфигураторе через свойство формы. Проверяйте оформляемые поля, состав запроса списка и производительность, если используете программную подсветку.