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

· 9 мин

Содержание

Чтобы выбрать весь список в 1С 8.3, щёлкните по любой строке таблицы и нажмите Ctrl+A. То же самое делает команда Еще → Выделить все в командной панели списка. Если ничего не выделилось, значит, фокус стоит не в таблице, список открыт в иерархическом виде или форма разрешает выбрать только одну строку.

Ниже разобраны все рабочие способы выделения элементов в списке: клавиатура, мышь, меню, справочники с группами, веб-клиент и выделение из кода. Описание относится к платформе 8.3 и интерфейсу «Такси», это общая механика платформы. В Бухгалтерии 3.0, ЗУП 3.1 и УТ 11 она работает одинаково.

Какой способ выделения выбрать

Сначала короткая сводка. Способ зависит от того, сколько строк нужно и что вы с ними собираетесь делать.

СпособКогда подходитОграничения
Ctrl+AВыделить всё, что попадает под текущий отборНе работает в режиме одиночного выбора и при фокусе в поле поиска
Еще → Выделить всеКлавиатура не срабатывает, работа в браузереТа же логика, что у Ctrl+A
Shift + щелчокНепрерывный диапазон строкНа длинных списках нужно прокручивать
Ctrl + щелчокОтдельные строки вразбросДолго, если строк больше 20–30
Shift+стрелки, Shift+PageDownДиапазон без мышиУдобно для 10–100 строк
Отбор + Ctrl+AТолько нужные элементы из большого справочникаНужно правильно настроить отбор
Групповое изменение реквизитовМассово поменять поле у сотен объектовНужны права на изменение данных
Код ВыделенныеСтрокиСвоя обработка или кнопкаНужна доработка через расширение

Практическое правило простое. До сотни строк выделяйте руками. Больше — сначала сузьте список отбором, потом Ctrl+A. Если цель — массово изменить реквизит, выделение не нужно вовсе: подойдёт групповая обработка.

Горячие клавиши для выделения строк в списке 1С

Клавиатура в списках 1С ведёт себя почти как в проводнике Windows. Все сочетания работают, только когда активна сама таблица: текущая строка подсвечена рамкой.

Основные сочетания

  • ⌨️ Ctrl+A — выделить все строки списка с учётом отбора.
  • ⬆️ Shift+↑ / Shift+↓ — расширить выделение на строку вверх или вниз.
  • 📄 Shift+PageUp / Shift+PageDown — расширить выделение на экран.
  • ⏮️ Ctrl+Home / Ctrl+End — перейти к первой или последней строке списка.
  • 🖱️ Shift + щелчок мышью — выделить диапазон от текущей строки до той, по которой щёлкнули.
  • 🖱️ Ctrl + щелчок мышью — добавить строку к выделению или убрать её.

Как выделить диапазон без мыши

  1. Встаньте на первую нужную строку стрелками.
  2. Зажмите Shift.
  3. Нажимайте ↓ или PageDown, пока не дойдёте до последней строки диапазона.
  4. Отпустите Shift. Выделение сохранится, пока вы не щёлкнете по строке без модификатора.

Если случайно щёлкнули мимо и выделение сбросилось, его не вернуть. Поэтому на больших выборках надёжнее сначала поставить отбор, а потом нажать Ctrl+A, чем выделять 300 строк через Shift.

Чем выделение отличается от флажков

Выделение подсветкой и флажки в колонке — разные вещи. Подсветка живёт, пока открыта форма. Флажок — это значение в данных формы: в обработках подбора, в списках загрузки, в помощниках обмена. Для флажков Ctrl+A их не ставит. Там ищите в командной панели таблицы кнопки с иконками отметки или пункты «Установить флажки» и «Снять флажки» в меню Еще.

Выделить все через меню «Еще» и контекстное меню

Команда «Выделить все» есть в стандартном наборе команд почти любой таблицы формы. Она нужна, когда горячие клавиши перехватывает браузер, удалённый рабочий стол или сторонняя программа.

Через командную панель

  1. Откройте список, например Справочники → Номенклатура или журнал документов в любом разделе.
  2. Нажмите кнопку Еще справа в командной панели над таблицей.
  3. Выберите Выделить все. Рядом в меню подписано сочетание Ctrl+A.

Через контекстное меню

Щёлкните правой кнопкой по строке списка. В контекстном меню повторяются основные команды таблицы. Если пункта выделения там нет, значит, разработчик формы его убрал. Тогда используйте меню Еще.

Что делать с выделенными строками

После выделения доступны групповые действия. Наиболее частые:

  • 🗑️ Del или «Пометить на удаление» — пометка всех выделенных объектов разом.
  • 📋 Ctrl+C — копирование выделенных строк в буфер, дальше вставка в Excel.
  • ✏️ Еще → Изменить выделенные — групповое изменение реквизитов в типовых конфигурациях на БСП.
  • 📑 Проведение и отмена проведения нескольких документов в журнале.
  • 🖨️ Печать — многие печатные формы выводятся сразу по всем выделенным документам.

Пометка на удаление по Ctrl+A затрагивает все строки под отбором, а не только видимые на экране. Перед Del посмотрите на счётчик или пролистайте список до конца, чтобы понимать масштаб.

Выделение элементов в справочниках с группами и в деревьях

Иерархические справочники — главная причина жалоб «Ctrl+A выделяет не всё». Номенклатура, Контрагенты, Статьи затрат обычно разбиты на папки, и вид списка определяет, что попадёт в выделение.

Три режима просмотра

Переключаются через Еще → Режим просмотра:

РежимЧто видноЧто выделит Ctrl+A
Иерархический списокСодержимое одной текущей группыЭлементы и подгруппы этой группы
СписокВсе элементы плоским списком без папокВсе элементы под отбором
ДеревоГруппы раскрываются как веткиЗависит от раскрытых веток, поведение неочевидно

Как выделить все элементы справочника, включая вложенные

  1. Откройте справочник.
  2. Переключите вид: Еще → Режим просмотра → Список.
  3. При необходимости поставьте отбор: по группе, по виду номенклатуры, по слову в наименовании.
  4. Щёлкните по строке и нажмите Ctrl+A.

В режиме «Список» папки не показываются, а элементы из всех подгрупп идут подряд. Это самый предсказуемый способ получить полную выборку.

Если в иерархическом виде выделить группу и пометить её на удаление, помечается вся папка со всем содержимым. Это не то же самое, что выделить элементы внутри неё. Проверяйте, что именно попало в выделение.

Выделить только элементы одной папки

Здесь иерархический вид как раз удобен. Войдите в нужную группу двойным щелчком и нажмите Ctrl+A. В выделение попадут элементы этой папки и её подгруппы как строки, но не содержимое подгрупп.

Особенности в интерфейсе «Такси», тонком и веб-клиенте

В «Такси» списки — это динамические списки. Они не загружают все записи сразу, а подгружают порции по мере прокрутки. Для пользователя это почти незаметно, но влияет на выделение.

Тонкий клиент

  • ✅ Ctrl+A работает стабильно.
  • ⏳ На справочнике в десятки тысяч позиций выделение и последующее действие могут занять заметное время. Программа передаёт ссылки на все выбранные записи.
  • 🔎 Строка поиска над списком — это отбор. Всё, что вы ввели в поиск, сужает и выделение.

Веб-клиент в браузере

Браузер тоже знает Ctrl+A и выделяет им текст всей страницы. Чтобы сочетание дошло до 1С:

  1. Щёлкните именно по строке таблицы, а не по пустому месту формы.
  2. Убедитесь, что курсор не стоит в поле поиска или другом поле ввода.
  3. Нажмите Ctrl+A.

Если браузер всё равно выделяет текст страницы, используйте Еще → Выделить все. На macOS в браузере вместо Ctrl может работать Cmd, проверьте оба варианта.

Удалённый рабочий стол и терминальный сервер

В сеансе RDP сочетания обычно передаются на удалённый компьютер, если окно развёрнуто на весь экран . В оконном режиме часть сочетаний перехватывает локальная система. Это настраивается в параметрах подключения к удалённому рабочему столу, в разделе локальных ресурсов и клавиатуры.

Как выделить все строки программно

Программное выделение нужно, когда вы пишете свою обработку или добавляете кнопку в форму через расширение. Опишу то, что даёт платформа.

Где хранится выделение

У элемента «Таблица формы» есть свойство ВыделенныеСтроки. Это массив:

  • для динамического списка — ссылки на выделенные объекты;
  • для таблицы значений или табличной части на форме — идентификаторы строк данных формы.

Чтобы пользователь мог выделить несколько строк , у таблицы должно стоять свойство РежимВыделения = Множественный. При значении Одиночный выделить можно только одну строку, и Ctrl+A ничего не делает.

Пример: выделить все строки таблицы на форме

Пример для обработки с реквизитом формы Товары типа «Таблица значений» и элементом таблицы с тем же именем:

&НаКлиенте
Процедура ВыделитьВсеСтроки(Команда)

	Элементы.Товары.ВыделенныеСтроки.Очистить();

	Для Каждого СтрокаТаблицы Из Товары Цикл
		Элементы.Товары.ВыделенныеСтроки.Добавить(СтрокаТаблицы.ПолучитьИдентификатор());
	КонецЦикла;

КонецПроцедуры

Пример: обработать всё, что выделил пользователь

Частая задача — кнопка, которая что-то делает с выделенными элементами динамического списка. Ссылки собираются на клиенте и передаются на сервер одним вызовом:

&НаКлиенте
Процедура ОбработатьВыделенные(Команда)

	Выделенные = Элементы.Список.ВыделенныеСтроки;
	Если Выделенные.Количество() = 0 Тогда
		ПоказатьПредупреждение(, "Выделите хотя бы одну строку.");
		Возврат;
	КонецЕсли;

	Ссылки = Новый Массив;
	Для Каждого Строка Из Выделенные Цикл
		Ссылки.Добавить(Строка);
	КонецЦикла;

	Обработано = ОбработатьНаСервере(Ссылки);
	Сообщить(СтрШаблон("Обработано объектов: %1", Обработано));

КонецПроцедуры

&НаСервереБезКонтекста
Функция ОбработатьНаСервере(Ссылки)

	Для Каждого Ссылка Из Ссылки Цикл
		// Здесь ваша логика: получить объект, изменить реквизит, записать
	КонецЦикла;

	Возврат Ссылки.Количество();

КонецФункции

В динамическом списке среди выделенных могут оказаться строки группировок. Если список сгруппирован, проверяйте тип каждого элемента перед обработкой.

Когда выделение лучше вообще не трогать

Если нужно изменить 5 000 позиций номенклатуры, выделять их в интерфейсе не нужно. Надёжнее запросом выбрать объекты по тем же условиям, что и отбор списка, и обработать их на сервере порциями. В типовых конфигурациях для этого есть групповое изменение реквизитов: в Бухгалтерии 3.0 — Администрирование → Обслуживание → Корректировка данных → Групповое изменение реквизитов. Там отбор задаётся прямо в форме, и выделять ничего не приходится.

Перед массовым изменением или пометкой на удаление сделайте резервную копию базы . Отменить групповое изменение одной кнопкой нельзя.

Почему не выделяются все строки и как это исправить

Большинство проблем с выделением сводятся к пяти причинам. Выберите симптом:

Диагностика: выберите симптом

Если пропал пункт «Выделить все»

Форму могли настроить под пользователя. Откройте Еще → Изменить форму и посмотрите состав командной панели таблицы. Если там всё на месте, а команды нет, её убрал разработчик в конфигурации или расширении. Обратитесь к тому, кто сопровождает базу.

Если выделение сбрасывается само

Выделение теряется при обновлении списка: после записи элемента, по команде «Обновить» или когда другой пользователь изменил данные и список перечитался. Выполняйте групповое действие сразу после Ctrl+A, не открывая карточки элементов.

Частые вопросы

Сколько строк можно выделить в списке 1С за раз?
Жёсткого лимита в интерфейсе нет. На десятках тысяч записей выделение и действие с ним работают медленно, поэтому большие объёмы лучше обрабатывать групповым изменением реквизитов или запросом.
Как узнать, сколько строк выделено?
Отдельного счётчика выделения в типовом списке нет. Быстрый способ: скопируйте выделенное через Ctrl+C и вставьте в Excel — число строк покажет таблица.
Можно ли выделить все строки табличной части документа?
Да. Щёлкните по строке табличной части и нажмите Ctrl+A. Дальше можно удалить строки клавишей Del или скопировать их в другой документ через буфер обмена.
Как выделить всё в отчёте, а не в списке?
В табличном документе отчёта Ctrl+A выделяет все ячейки. Сумма, количество и среднее по выделенным числовым ячейкам показываются в поле рядом с командной панелью отчёта.
Сохраняется ли выделение после закрытия формы?
Нет. Выделение существует только в открытой форме. Если нужна постоянная отметка, используйте флажки в обработке или отбор, который можно сохранить в настройках списка.