Выделение строк в 1С 8.3: мышь, клавиатура, отбор и код
Содержание
Чтобы выделить несколько строк
в 1С, удерживайте Ctrl и щёлкайте по нужным строкам. Диапазон подряд выделяется так: щелчок по первой строке, затем Shift + щелчок по последней. Все строки списка или табличной части выделяет Ctrl+A.
Типичная ситуация: бухгалтеру нужно провести сразу 40 поступлений за месяц или пометить на удаление пачку черновиков. Открывать каждый документ долго. Достаточно выделить строки в журнале и нажать одну команду. Ниже приёмы для пользователя и для разработчика — в интерфейсе «Такси» платформы 8.3. Механика общая для платформы, поэтому работает в БП 3.0, ЗУП 3.1, УТ 11 и других конфигурациях на управляемых формах.
Как выделить строки мышью: три базовых приёма
Почти все сценарии сводятся к трём действиям. Их стоит отработать до автоматизма.
| Что нужно | Действие | Где работает |
|---|---|---|
| Одна строка | Щелчок по строке | Везде |
| Несколько строк вразброс | Ctrl + щелчок по каждой | Списки, табличные части |
| Строки подряд | Щелчок по первой, Shift + щелчок по последней | Списки, табличные части |
| Снять выделение с одной строки | Повторный Ctrl + щелчок по ней | Списки, табличные части |
| Все строки | Ctrl+A | Списки, табличные части, отчёты |
Строки вразброс через Ctrl
Зажмите Ctrl и не отпускайте его. Щёлкайте по строкам в любом порядке: каждая окрашивается цветом выделения. Если промахнулись, щёлкните по той же строке ещё раз с Ctrl — выделение снимется только с неё.
Отпустить Ctrl можно в любой момент. Пока вы щёлкаете с зажатой клавишей, набор сохраняется. Обычный щелчок без Ctrl сбросит всё и оставит одну строку.
Диапазон через Shift
Щёлкните по первой нужной строке. Прокрутите список до последней и щёлкните по ней с Shift. Выделятся обе строки и всё между ними.
Приёмы комбинируются. Выделили диапазон с 5-й по 20-ю строку — добавьте к нему 27-ю и 31-ю через Ctrl. Исключите 12-ю тем же Ctrl + щелчком.
Почему не выделяется больше одной строки
Множественное выделение задаётся в свойствах самой таблицы формы. В типовых журналах документов и справочников оно включено. В некоторых формах выбора и обработках разработчик оставил одиночный режим: там Ctrl и Shift просто переводят курсор. Это не сбой, а настройка формы (подробнее — в разделе для разработчиков).
Горячие клавиши для выделения строк в 1С
Клавиатура быстрее мыши, когда строк много, а список длинный.
- ⬆️⬇️
Shift + ↑/Shift + ↓— расширить выделение на строку вверх или вниз. - 📄
Shift + Page Up/Shift + Page Down— расширить выделение на экран. - 🔢
Ctrl+A— выделить все строки таблицы. - 📋
Ctrl+C— скопировать выделенное в буфер обмена (вставляется в Excel или текст). - 🗑️
Delete— в табличной части документа удаляет все выделенные строки. - ➕
Insert— добавить новую строку в табличную часть. - 📑
F9— скопировать текущую строку табличной части или элемент списка. - 🔍
Ctrl+F— найти значение в списке,Alt+F— расширенный поиск.
Как выделить все строки в 1С
Ctrl+A срабатывает, только если курсор стоит в таблице. Сначала щёлкните по любой строке, затем нажмите сочетание. Если фокус в поле поиска или в шапке документа, Ctrl+A выделит текст в поле, а не строки.
Та же команда обычно есть в контекстном меню таблицы (правая кнопка мыши) и в меню Ещё — пункт «Выделить все».
Ctrl+A в журнале документов без отбора захватывает весь журнал, иногда тысячи записей. Если затем нажать «Пометить на удаление» или «Провести», команда уйдёт на все. Сначала сузьте список отбором.
Отбор перед выделением: как выделить только нужные строки
Выделять 300 строк щелчками бессмысленно. Удобнее оставить в списке только нужное, а потом нажать Ctrl+A.
Отбор через поиск
- Встаньте в колонку, по которой будете искать, например «Контрагент».
- Начните набирать значение или нажмите
Ctrl+Fи введите его. - В списке останутся строки, где встречается этот текст.
- Щёлкните по первой строке и нажмите
Ctrl+A.
Расширенный поиск по точному значению
Alt+F открывает окно расширенного поиска. В нём выбирают поле, вид сравнения и значение. Так проще отобрать, например, все документы конкретной организации или с конкретным ответственным.
Отбор по периоду и полям над списком
В журналах БП 3.0, ЗУП 3.1 и УТ 11 над таблицей есть быстрые отборы: организация, контрагент, склад, период. Заполните их, и список сузится. После этого Ctrl+A выделит ровно отобранное.
Перед массовой командой посмотрите на количество выделенных строк. Если отобрано 38 документов, а вы ждали около 40, проверьте период: часто одна дата попадает на соседний месяц.
Флажки вместо выделения: массовая отметка строк
Выделение — временное. Оно пропадает от одного неосторожного щелчка без Ctrl. Поэтому в обработках и формах подбора вместо него часто делают колонку с флажком.
| Выделение строк | Колонка-флажок | |
|---|---|---|
| Хранится в данных | Нет, только на экране | Да, это реквизит таблицы |
| Сбрасывается щелчком | Да | Нет |
| Видно после прокрутки | Да, но легко потерять | Да |
| Нужна доработка формы | Нет | Да, если колонки нет |
Как отмечать строки флажками
- Щёлкните по флажку в нужной строке или нажмите
Пробел, стоя на ней. - Если в командной панели есть кнопки «Отметить все» и «Снять все», используйте их. Обычно они рядом с таблицей, иногда в меню
Ещё. - Чтобы отметить флажками сразу пачку, выделите строки через
Shiftи найдите в контекстном меню или вЕщёкоманду установки флажков для выделенных. Она есть не во всех формах.
Флажки удобны, когда отбор собирают долго: можно отметить строки, отфильтровать список по-другому, вернуться — отметки останутся.
Выделение строк в отчётах и табличных документах
Отчёт в 1С — это табличный документ, как лист Excel. Выделение в нём работает по ячейкам, а не по записям.
Как выделить строки отчёта
- 🖱️ Протяните мышью с зажатой левой кнопкой — выделится прямоугольная область.
- 🔢 Щёлкните по номеру строки слева — выделится вся строка отчёта. Протяните по номерам, чтобы выделить несколько строк подряд.
- ➕ Зажмите
Ctrl, чтобы добавить несмежную область: например, итоги по 60 и по 62 счёту в ОСВ. - ⬇️
Shift+ стрелки расширяют выделение от текущей ячейки. - 📊
Ctrl+Aвыделяет весь отчёт.
Сумма выделенных ячеек
В отчётах типовых конфигураций при выделении нескольких числовых ячеек в верхней части формы показывается их сумма. Рядом можно переключиться на количество, среднее, минимум или максимум. Это заменяет калькулятор: выделили обороты по пяти субсчетам через Ctrl и сразу видите итог.
Перенос выделенного в Excel
Выделите строки отчёта, нажмите Ctrl+C и вставьте в Excel через Ctrl+V. Числа вставятся как числа, если в отчёте не включено их текстовое оформление. Для всего отчёта удобнее сохранить файл
в формате xlsx через команду сохранения на панели отчёта.
Программное выделение строк в 1С: код для разработчиков
Разработчику выделение нужно в двух случаях: прочитать, что выделил пользователь, и выделить строки самому.
Включить множественный режим
У элемента «Таблица формы» есть свойство «Режим выделения» (РежимВыделения). Значение «Множественный» разрешает выделять несколько строк, «Одиночный» — только одну. Задаётся в палитре свойств в конфигураторе или кодом:
Элементы.Список.РежимВыделения = РежимВыделенияТаблицы.Множественный;
Рядом есть свойство «Режим выделения строки»: выделять всю строку или отдельную ячейку. На множественный выбор строк оно не влияет.
Прочитать выделенные строки динамического списка
Свойство ВыделенныеСтроки таблицы формы содержит ключи выделенных строк. Для списка документов или справочника ключ — это ссылка на объект. Если в списке включена группировка, среди ключей попадаются строки группировки, их надо пропускать.
&НаКлиенте
Процедура ОбработатьВыделенные(Команда)
Ссылки = Новый Массив;
Для Каждого Ключ Из Элементы.Список.ВыделенныеСтроки Цикл
Если ТипЗнч(Ключ) = Тип("СтрокаГруппировкиДинамическогоСписка") Тогда
Продолжить;
КонецЕсли;
Ссылки.Добавить(Ключ);
КонецЦикла;
Если Ссылки.Количество() = 0 Тогда
ПоказатьПредупреждение(, "Выделите хотя бы одну строку.");
Возврат;
КонецЕсли;
ОбработатьНаСервере(Ссылки);
Элементы.Список.Обновить();
КонецПроцедуры
Массив ссылок передаётся на сервер, там объекты получают через ПолучитьОбъект() и записывают.
Выделенные строки табличной части
В табличной части документа ключи — это идентификаторы строк коллекции формы. Строку находят методом НайтиПоИдентификатору():
&НаКлиенте
Процедура УстановитьСкидкуВыделенным(Команда)
Для Каждого Идентификатор Из Элементы.Товары.ВыделенныеСтроки Цикл
СтрокаТЧ = Объект.Товары.НайтиПоИдентификатору(Идентификатор);
Если СтрокаТЧ <> Неопределено Тогда
СтрокаТЧ.ПроцентСкидки = 5;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Имена Товары и ПроцентСкидки замените на реквизиты своей формы.
Выделить строки кодом по условию
Тот же ВыделенныеСтроки можно заполнять. Пример выделяет строки с нулевым количеством, чтобы пользователь их увидел и удалил одной клавишей Delete:
&НаКлиенте
Процедура ВыделитьПустые(Команда)
Элементы.Товары.ВыделенныеСтроки.Очистить();
Для Каждого СтрокаТЧ Из Объект.Товары Цикл
Если СтрокаТЧ.Количество = 0 Тогда
Элементы.Товары.ВыделенныеСтроки.Добавить(СтрокаТЧ.ПолучитьИдентификатор());
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Выделить цветом: условное оформление
Иногда «выделить строку» значит подсветить её цветом навсегда, а не на время. Для этого служит условное оформление формы. Пример красит фон строк табличной части с нулевым количеством:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.Товары.Имя);
Отбор = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
Отбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.Количество");
Отбор.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
Отбор.ПравоеЗначение = 0;
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветФона", Новый Цвет(255, 220, 220));
КонецПроцедуры
Пользователь без конфигуратора может сделать похожее в списках: в меню Ещё откройте настройки списка и добавьте правило на вкладке условного оформления.
Массовые операции с выделенными строками и автоматизация
Выделение само по себе ничего не меняет. Ценность в командах, которые применяются ко всем выделенным строкам сразу.
Что можно сделать с выделенными документами в журнале
- ✅ Провести — команда проводит все выделенные документы по очереди. Ошибки по отдельным документам выводятся сообщениями, остальные проводятся.
- ❌ Отменить проведение — то же в обратную сторону.
- 🗑️ Пометить на удаление — помечает все выделенные. Повторное нажатие снимает пометку.
- 🖨️ Печать — формирует печатную форму сразу для всех выделенных документов, одной пачкой.
- ✏️ Изменить выделенные — открывает групповое изменение реквизитов.
Перед массовым проведением или пометкой на удаление в рабочей базе сделайте резервную копию: отменить действие для сотни документов одной кнопкой не получится.
Групповое изменение реквизитов
В конфигурациях на БСП (БП 3.0, ЗУП 3.1, УТ 11) выделите строки в списке и выберите в меню Ещё команду «Изменить выделенные». Откроется обработка: укажите реквизит и новое значение, например другой счёт учёта у 50 номенклатурных позиций или ответственного у пачки документов.
Ту же обработку можно открыть без списка. В БП 3.0 она находится в Администрирование → Обслуживание, в группе корректировки данных. Там объекты отбирают условиями, а не ручным выделением.
Внешние обработки и расширения
- 🧰 Универсальный подбор и обработка объектов — стандартная внешняя обработка. Позволяет отобрать объекты запросом или отбором и применить к ним действие.
- 🧩 Расширение конфигурации (с платформы 8.3.6) — способ добавить в типовую форму свою команду «Обработать выделенные» с кодом из раздела выше, не снимая конфигурацию с поддержки.
- 📥 Дополнительные обработки через
Администрирование → Печатные формы, отчёты и обработкиподключают внешние обработки к спискам. Тогда они видны прямо в командной панели и получают выделенные ссылки на вход.
Частые сбои при выделении строк и как их обойти
Как правильно удалить выделенные строки табличной части кодом
Ошибку с удалением в цикле встречают чаще остальных. Надёжный вариант — сначала собрать строки, потом удалить:
&НаКлиенте
Процедура УдалитьВыделенные(Команда)
КУдалению = Новый Массив;
Для Каждого Идентификатор Из Элементы.Товары.ВыделенныеСтроки Цикл
КУдалению.Добавить(Объект.Товары.НайтиПоИдентификатору(Идентификатор));
КонецЦикла;
Для Каждого СтрокаТЧ Из КУдалению Цикл
Объект.Товары.Удалить(СтрокаТЧ);
КонецЦикла;
КонецПроцедуры
Для пользователя тот же результат даёт Delete по выделенным строкам — код нужен, только если удаление часть большей процедуры.
Частые вопросы
Можно ли выделить строки в 1С без мыши?
Shift и нажимайте ↓ или Page Down. Все строки таблицы выделяет Ctrl+A.Сколько строк можно выделить в журнале документов?
Переносится ли выделение между сеансами?
Как скопировать выделенные строки из одного документа в другой?
Ctrl+C. В ряде типовых конфигураций в меню Ещё табличной части есть команды копирования и вставки строк — через них строки переносятся вместе с реквизитами. Если таких команд нет, удобнее создать документ копированием (F9) и удалить лишнее.