Выделение всех строк в таблицах и списках 1С 8.3

· 9 мин

Содержание

Чтобы выделить все строки в табличной части или списке 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` в русской раскладке клавиатуры?
Да. Горячие клавиши в 1С привязаны к физическим клавишам, а не к буквам алфавита. Переключать раскладку на английскую перед нажатием не нужно.
Как перенести выделенные строки в Excel?
Выделите строки, нажмите Ctrl+C, перейдите в Excel и вставьте (Ctrl+V). Данные вставятся с разбивкой по столбцам: колонки таблицы 1С встанут по колонкам листа, потому что копируются как текст с табуляцией.
Чем выделение строк отличается от пометки на удаление?
Выделение временное — оно живёт, пока вы не щёлкнули в другое место, и нужно для действия прямо сейчас. Пометка на удаление сохраняется в базе: помеченные объекты ждут, пока их удалят через «Удаление помеченных объектов».
Сохранится ли выделение, если закрыть и снова открыть форму?
Нет. При повторном открытии формы таблица показывается без выделенных строк — выделение не запоминается. Исключение — если выделение программно восстанавливается кодом при открытии.
Как быстро снять выделение со всех строк разом?
Щёлкните левой кнопкой по любой одной строке без удержания Ctrl и Shift. Выделение со всех остальных строк снимется, активной останется только та, по которой вы щёлкнули.