Выделение всех строк в таблицах и списках 1С 8.3
Содержание
Чтобы выделить все строки в табличной части или списке 1С сразу, встаньте на любую строку таблицы и нажмите Ctrl+A. Одно нажатие — и выделены все загруженные строки. Если курсор стоит в режиме редактирования ячейки, сначала нажмите Enter или Esc: иначе Ctrl+A выделит текст внутри поля, а не строки таблицы.
Кроме Ctrl+A строки выделяют мышью: с зажатым Shift — диапазон подряд, с Ctrl — отдельные строки вразбивку. В иерархических справочниках выделение ведёт себя иначе — группа и её содержимое считаются разными элементами. А из встроенного языка все строки табличной части собирают через коллекцию ВыделенныеСтроки.
Приёмы одинаково работают в типовых конфигурациях на платформе 8.3 с интерфейсом «Такси»: Бухгалтерия 3.0, ЗУП 3.1, Управление торговлей 11. Речь идёт о таблицах на форме — табличных частях документов и динамических списках справочников и документов.
Горячие клавиши для выделения строк
Основной способ выделить сразу все строки — клавиша Ctrl+A. Она работает и в табличной части документа, и в списке элементов. Выделяются все строки, которые загружены в таблицу на данный момент.
Сочетания клавиш для выделения:
| Сочетание | Что делает |
|---|---|
Ctrl+A | Выделить все строки таблицы или списка |
Shift + ↑ / ↓ | Расширить выделение на строку вверх или вниз |
Shift + клик | Выделить диапазон от текущей строки до строки под курсором |
Ctrl + клик | Добавить или убрать одну строку из выделения |
Ctrl+Shift+End | Выделить от текущей строки до конца таблицы |
Ctrl+Shift+Home | Выделить от текущей строки до начала |
Ctrl+C | Скопировать выделенные строки в буфер обмена как текст |
Горячие клавиши в 1С привязаны к физическим клавишам, а не к буквам, поэтому Ctrl+A срабатывает одинаково в русской и английской раскладке. Переключать язык перед нажатием не нужно.
Важный момент про фокус. Ctrl+A выделяет строки только тогда, когда активна сама таблица, а не отдельная ячейка в режиме ввода. Признак режима редактирования — мигающий курсор внутри поля и подсвеченная рамка ячейки. Нажмите Enter, чтобы подтвердить ввод, или Esc, чтобы выйти без изменений, и только после этого жмите Ctrl+A.
Выделение диапазона и строк вразбивку мышью
Мышь удобна, когда нужны не все строки, а их часть. Два базовых приёма дают любую комбинацию.
Диапазон подряд. Щёлкните по первой нужной строке, зажмите Shift и щёлкните по последней. Выделится весь блок между ними. Тот же результат даёт удержание Shift со стрелками ↑ и ↓.
Строки вразбивку. Зажмите Ctrl и щёлкайте по строкам по одной. Повторный Ctrl + клик по уже выделенной строке снимает с неё выделение — остальные остаются отмеченными.
Приёмы комбинируются. Выделите мышью с Shift первый диапазон, затем, удерживая Ctrl, добавьте ещё один диапазон или одиночные строки. Так собирается несмежная выборка — например, строки 1–5 и строки 12, 15, 18.
Чтобы снять всё выделение, щёлкните по любой одной строке без Ctrl и Shift. Выделение сбросится, активной останется только эта строка.
Контекстное меню и команды панели
Выделение само по себе — подготовка к действию. Что сделать с отмеченными строками, подсказывают контекстное меню и командная панель.
Щелчок правой кнопкой по выделенным строкам открывает контекстное меню. В нём собраны команды, которые применяются сразу ко всей выборке: скопировать, изменить, для списков — пометить на удаление или снять пометку. Набор команд зависит от типа таблицы и настроек формы.
Те же действия дублирует командная панель над таблицей. Основные кнопки вынесены на панель, а редкие спрятаны под кнопкой Еще в правой части панели. Если нужной команды на виду нет — сначала смотрите в меню Еще.
Самое частое действие с выделенными строками — копирование. Нажмите Ctrl+C, и строки лягут в буфер обмена как текст с разделением по столбцам табуляцией. После этого их можно вставить в Excel или в текстовый документ: колонки таблицы встанут по столбцам листа.
Удаление тоже работает с выборкой целиком. В табличной части документа выделенные строки убирает клавиша Del — они исчезают из таблицы, но изменение зафиксируется, только когда вы запишете или проведёте документ. В списках справочников и документов удаление идёт иначе: строки не стираются сразу, а помечаются на удаление, и физически удаляются позже отдельной обработкой.
Переупорядочить строки табличной части тоже можно пачкой. Выделите нужные строки и двигайте их кнопками со стрелками вверх и вниз на командной панели таблицы — весь блок переместится, сохранив внутренний порядок.
Команды «Изменить» и групповые операции применяются ко всем выделенным строкам сразу. Перед массовой правкой убедитесь, что в выборку не попали лишние строки — отмену придётся делать вручную по каждой.
Иерархические списки: группы и подчинённые элементы
В справочниках с иерархией (например, «Номенклатура» или «Статьи затрат») строки бывают двух видов: группы (папки) и элементы внутри них. Это влияет на выделение.
Ctrl+A в таком списке выделяет строки, видимые на текущем уровне. Если список показан иерархически и группы свёрнуты, выделятся только сами группы, а их содержимое — нет. Это частая причина жалобы «выделились не все строки».
Чтобы выделить действительно все элементы справочника, переключите режим отображения. Нажмите Еще над списком, выберите Режим просмотра и переключите с Иерархический список на Список. В плоском режиме иерархия скрывается, все элементы идут сплошным перечнем, и Ctrl+A охватывает их целиком.
Доступные режимы просмотра:
- 📁
Иерархический список— элементы показаны внутри своих групп, можно сворачивать и разворачивать папки; - 📄
Список— плоский перечень без группировки, удобен для сплошного выделения и выгрузки; - 🌳
Дерево— классическое дерево папок, выделение работает по видимым узлам.
После массовой операции верните привычный режим Иерархический список тем же меню Еще → Режим просмотра, чтобы навигация по справочнику осталась удобной.
Табличная часть и список: в чём разница при выделении
Клавиши и приёмы выделения одинаковы, но смысл у них разный в зависимости от того, с какой таблицей вы работаете. Разница важна, когда после выделения идёт действие.
Табличная часть документа — это строки внутри одного объекта: номенклатура в накладной, начисления в документе зарплаты. Строки принадлежат документу, их порядок имеет значение (например, влияет на печатную форму), а удаление Del убирает строку из этого документа. Выделение здесь нужно, чтобы разом изменить, удалить или переставить несколько строк одного документа.
Динамический список — это перечень самостоятельных объектов: список документов, элементов справочника. Каждая строка — отдельный объект базы. Порядок строк задаётся сортировкой и отбором списка, а не жёстко закреплён. Удаление строки — это пометка объекта на удаление, а не мгновенное стирание.
Отсюда практическое следствие. В табличной части Ctrl+A выделяет все строки всегда — они уже в памяти вместе с документом. В динамическом списке выделяются только загруженные строки, потому что список читает данные с сервера порциями. Если список длинный, перед Ctrl+A имеет смысл задать отбор, чтобы оставить только нужные объекты, — тогда под выделение попадёт ровно то, что требуется.
Программное выделение строк из встроенного языка
Выделение строк доступно и из кода управляемой формы. За него отвечает коллекция ВыделенныеСтроки у элемента-таблицы на форме. Это обычный массив, в котором хранятся идентификаторы выделенных строк.
Чтобы выделить все строки табличной части программно, очистите коллекцию и добавьте в неё идентификатор каждой строки:
&НаКлиенте
Процедура ВыделитьВсеСтроки(Команда)
ВыделенныеСтроки = Элементы.Товары.ВыделенныеСтроки;
ВыделенныеСтроки.Очистить();
Для Каждого СтрокаТаблицы Из Объект.Товары Цикл
ВыделенныеСтроки.Добавить(СтрокаТаблицы.ПолучитьИдентификатор());
КонецЦикла;
КонецПроцедуры
Здесь Товары — имя табличной части и одновременно имя элемента формы. Метод ПолучитьИдентификатор() возвращает идентификатор строки, по которому таблица её находит.
Обратная задача — обойти уже выделенные пользователем строки. Идентификаторы из ВыделенныеСтроки превращаем обратно в строки методом НайтиПоИдентификатору():
&НаКлиенте
Процедура ОбработатьВыделенные()
Для Каждого Идентификатор Из Элементы.Товары.ВыделенныеСтроки Цикл
СтрокаТаблицы = Объект.Товары.НайтиПоИдентификатору(Идентификатор);
// здесь работаем со строкой: читаем или меняем поля
СтрокаТаблицы.Количество = 0;
КонецЦикла;
КонецПроцедуры
Для табличной части ВыделенныеСтроки хранит именно идентификаторы строк. А вот у динамического списка эта же коллекция содержит ссылки на объекты — элементы справочника или документы. Поэтому код для списка обходит ссылки напрямую, без НайтиПоИдентификатору():
&НаКлиенте
Процедура ВыделенныеЭлементыСписка()
Для Каждого Ссылка Из Элементы.Список.ВыделенныеСтроки Цикл
// Ссылка — это ссылка на элемент, можно передать на сервер
КонецЦикла;
КонецПроцедуры
Текущая активная строка (та, на которой стоит курсор) хранится отдельно — в свойстве ТекущаяСтрока того же элемента формы. Её удобно использовать, когда действие касается одной строки, а не всей выборки.
Выделение всех строк в отчёте и печатной форме
Отдельная история — табличный документ: это результат отчёта, печатная форма накладной или любой вывод в виде листа с ячейками. Здесь выделяют не строки формы, а ячейки, но клавиша та же.
Щёлкните по любой ячейке табличного документа и нажмите Ctrl+A — выделится весь лист целиком. Дальше Ctrl+C копирует выделенное, и данные вставляются в Excel с сохранением строк и столбцов.
Если нужна часть листа, работают привычные приёмы: Shift + клик задаёт прямоугольный диапазон ячеек, а щелчок по номеру строки или по заголовку столбца слева и сверху выделяет строку или столбец целиком. Готовый отчёт удобнее не копировать через буфер, а сохранить в файл командой сохранения из меню документа — тогда форматирование не теряется.
Почему не выделяются все строки: типичные проблемы
Если Ctrl+A не срабатывает или выделяет не то, причина почти всегда в одном из нескольких типовых случаев. Найдите свой симптом:
Отдельно про динамические списки. Они читают данные с сервера частями, а не целиком, — это защита от зависания на больших справочниках. Поэтому Ctrl+A честно выделяет всё, что уже загружено в таблицу, но не «подтягивает» ненагруженные строки автоматически. Для сплошной выгрузки удобнее сформировать отчёт или обработать данные запросом, а не выделять вручную.
Перед массовым изменением или удалением выделенных строк убедитесь, что действие обратимо, или сделайте резервную копию базы . Отмена групповой операции по одной строке занимает больше времени, чем разовое восстановление.
Частые вопросы
Работает ли `Ctrl+A` в русской раскладке клавиатуры?
Как перенести выделенные строки в Excel?
Ctrl+C, перейдите в Excel и вставьте (Ctrl+V). Данные вставятся с разбивкой по столбцам: колонки таблицы 1С встанут по колонкам листа, потому что копируются как текст с табуляцией.Чем выделение строк отличается от пометки на удаление?
Сохранится ли выделение, если закрыть и снова открыть форму?
Как быстро снять выделение со всех строк разом?
Ctrl и Shift. Выделение со всех остальных строк снимется, активной останется только та, по которой вы щёлкнули.