Все способы выделить строки, ячейки и поля в 1С 8.3

· 9 мин

Содержание

Чтобы выделить сразу все строки в списке или в табличной части документа, щёлкните по любой строке таблицы и нажмите Ctrl+A. Весь текст в поле ввода выделяется той же комбинацией, а все ячейки отчёта или печатной формы — щелчком по области таблицы и тем же Ctrl+A.

Под «выделить все поля» обычно понимают одно из трёх: отметить все строки списка или таблицы, забрать весь текст поля или скопировать все ячейки отчёта. У каждого случая свой приём, плюс есть способ сделать это из кода и массово обработать объекты без ручного выделения. Пути указаны для платформы 8.3 с интерфейсом «Такси» — в Бухгалтерии, ЗУП и УТ они совпадают, потому что выделение относится к платформе, а не к конкретной конфигурации.

Сочетания клавиш для выделения

В 1С одна и та же комбинация работает в разных местах, поэтому запоминать нужно немного.

  • ⌨️ Ctrl+A — выделить всё: все строки таблицы или списка, либо весь текст в активном поле ввода.
  • ⌨️ Shift+↑ / Shift+↓ — расширить выделение на строку вверх или вниз.
  • ⌨️ Shift+клик — выделить диапазон от текущей строки до той, по которой щёлкнули.
  • ⌨️ Ctrl+клик — добавить одну строку к выделению или убрать её из выделения.
  • ⌨️ Ctrl+C — скопировать выделенные строки или ячейки в буфер обмена.
  • ⌨️ Home / End — перейти к первой или последней строке; с зажатым Shift ещё и выделить до неё.

Что именно сработает по Ctrl+A, зависит от того, где стоит курсор. Если фокус в поле ввода внутри формы — выделится текст в этом поле. Если фокус в таблице — выделятся строки. Один раз щёлкните в нужную область перед нажатием.

Комбинации не зависят от конфигурации — это поведение платформы, одинаковое в Бухгалтерии, ЗУП, УТ и в любой другой базе на 8.3.

Отдельно про поля с текстом. В многострочном поле (комментарий, примечание, текст письма) Ctrl+A выделяет весь введённый текст, а не строки соседней таблицы. Это же работает в поле запроса консоли и в фильтрах журнала регистрации: встаёте в поле, Ctrl+A, Ctrl+C — и забираете содержимое целиком.

Выделение строк в табличных частях и списках

Табличная часть документа (например, товары в накладной) и список справочника ведут себя почти одинаково.

  1. Щёлкните левой кнопкой по любой строке таблицы — так фокус перейдёт в неё.
  2. Нажмите Ctrl+A. Все строки подсветятся.
  3. Дальше делайте с выделением что нужно: скопируйте Ctrl+C, удалите клавишей Delete, перетащите в другую таблицу.

Если нужны не все строки, а подряд идущий диапазон — щёлкните по первой, затем Shift+клик по последней. Разрозненные строки набираются Ctrl+клик по каждой.

Перед массовым удалением строк в проведённом документе сделайте копию или хотя бы запомните, что удаляете: отменить удаление строк одним действием нельзя, только закрыть документ без записи.

Выделенные строки табличной части удобно копировать в Excel: после Ctrl+C вставьте в лист Excel через Ctrl+V — колонки разложатся по ячейкам.

Обратная операция тоже работает. Выделите в Excel диапазон, скопируйте, встаньте на строку табличной части в 1С и вставьте Ctrl+V — строки добавятся с заполнением колонок по порядку их расположения. Если колонки в Excel и в документе идут в разном порядке, сначала переставьте столбцы в Excel, иначе данные лягут не в те поля.

Иерархические списки

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

Особенность динамических списков

Списки документов и справочников — это динамические списки. Они подгружают данные порциями по мере прокрутки, а не все сразу. Поэтому Ctrl+A выделяет те строки, что уже загружены в список. Если список длинный, пролистайте его до конца (или нажмите End), чтобы платформа догрузила все строки, и только потом выделяйте.

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

В модуле формы выделением управляет свойство ВыделенныеСтроки у элемента-таблицы. Это массив идентификаторов строк.

Чтобы по команде выделить все строки табличной части Товары:

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

Обратный ход — прочитать поля уже выделенных строк:

Для Каждого Ид Из Элементы.Товары.ВыделенныеСтроки Цикл
    СтрокаДанных = Объект.Товары.НайтиПоИдентификатору(Ид);
    Сообщить(СтрокаДанных.Номенклатура);
    // здесь же доступны любые реквизиты строки: Количество, Цена, Сумма
КонецЦикла;

Ключевые методы: ПолучитьИдентификатор() у строки табличной части возвращает её идентификатор, а НайтиПоИдентификатору() — обратно саму строку по идентификатору. ВыделенныеСтроки — обычный массив, поэтому работают Добавить(), Очистить() и Количество().

Чаще всего выделение читают в обработчике команды формы, чтобы применить одно действие сразу ко всем отмеченным строкам. Например, проставить выбранным позициям одну цену:

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

Если строк не выделено, массив ВыделенныеСтроки пуст, и цикл просто не выполнится. На этот случай проверьте Количество() и покажите пользователю подсказку, что нужно сначала отметить строки.

У динамического списка свойство ВыделенныеСтроки тоже есть, но хранит оно ключи записей, а не идентификаторы строк табличной части. Код из примера выше подходит именно для табличной части формы.

Текущую строку (не выделение, а ту, на которой курсор) даёт свойство ТекущаяСтрока того же элемента.

Выделение ячеек в отчётах и печатных формах

Отчёты и печатные формы в 1С — это табличные документы. Выделение в них работает как в электронной таблице.

  • Щёлкните по области отчёта, затем Ctrl+A — выделятся все заполненные ячейки.
  • Протяните мышью с зажатой левой кнопкой — выделите прямоугольную область.
  • Щёлкните по заголовку столбца или номеру строки — выделите столбец или строку целиком.
  • Ctrl+C скопирует выделенное; вставить можно в Excel или в другой табличный документ.

Так удобно забрать из сформированного отчёта только нужный фрагмент — например, итоговую таблицу без шапки и подписей.

Если отчёт нужен в Excel целиком, не копируйте через буфер, а сохраните файл: команда сохранения в меню табличного документа предложит форматы .xlsx, .mxl и другие. Так сохранятся формулы расшифровки и форматирование.

В пользовательском режиме ячейки печатной формы можно только выделять и копировать. Менять содержимое макета здесь нельзя — макет правится в конфигураторе или через расширение конфигурации .

Ещё одна частая задача — расшифровка. Если щёлкнуть по ячейке отчёта с суммой, 1С раскроет, из чего эта сумма сложилась. Выделение области этому не мешает: сначала выделяйте и копируйте для выгрузки, а расшифровку смотрите отдельным щелчком по конкретной ячейке.

Выделение в мобильном клиенте 1С

В мобильном приложении на базе платформы 8.3 нет клавиатуры с Ctrl, поэтому выделение построено на жестах.

  1. Нажмите и удерживайте палец на строке списка — появится режим выделения с флажками у строк.
  2. Отмечайте нужные строки касанием; обычно в верхней панели появляется команда отметить все.
  3. Выбранные строки обрабатывайте командой из панели действий (копирование, пометка на удаление и т. п.).

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

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

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

Иногда поле в списке есть в данных, но не выведено в таблицу — колонка скрыта в настройке формы. Выделить значения такого поля, пока оно не показано, нельзя: сначала выведите колонку.

  1. Откройте список.
  2. В командной панели нажмите Ещё → Изменить форму.
  3. В дереве элементов найдите нужную колонку и поставьте ей флажок видимости.
  4. Нажмите Применить и ОК. Колонка появится в таблице — теперь строки с этим полем выделяются обычным способом.

Там же, в настройке формы, доступны служебные поля, которые по умолчанию спрятаны. Показывайте только то, что действительно нужно: лишние колонки замедляют открытие больших списков.

Команда Изменить форму меняет вид списка только у вас и только для этой формы. Чтобы вернуть вид по умолчанию, в том же окне есть кнопка сброса настроек.

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

Настройка формы сохраняется за вашей учётной записью: показанные колонки останутся при следующем открытии списка. Если список нужен коллегам в том же виде, удобнее не настраивать каждому вручную, а попросить администратора задать типовую настройку формы для всех пользователей.

Групповая обработка и массовые действия

Когда строк тысячи и выделять их руками бессмысленно, выручают штатные обработки, которые сами перебирают объекты по отбору.

В типовых конфигурациях на «Библиотеке стандартных подсистем» это обработка группового изменения реквизитов. Самый надёжный способ её открыть:

  1. Включите команду всех функций: Главное меню (значок в левом верхнем углу) → Сервис → Параметры и поставьте флажок Отображать команду «Все функции».
  2. Откройте Главное меню → Все функции → Обработки и выберите обработку группового изменения реквизитов.
  3. Задайте вид объектов, при необходимости отбор, выберите изменяемый реквизит и значение, нажмите изменить.

Такая обработка не требует ручного выделения — она берёт все объекты, попавшие под отбор. Это и есть «выделить всё» в масштабе всей базы. В Бухгалтерии 3.0 и ЗУП 3.1 ту же обработку можно открыть из раздела администрирования, но путь через «Все функции» одинаков в любой типовой конфигурации, поэтому его проще запомнить.

Отбор в обработке стоит задавать как можно точнее: по организации, по периоду, по виду документа. Чем уже выборка, тем меньше риск задеть лишние объекты и тем быстрее отработает изменение.

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

Групповое изменение реквизитов и внешние обработки меняют данные без возможности отката. Перед запуском сделайте резервную копию базы и прогоняйте сначала на одном-двух объектах, а не на всей выборке сразу.

Почему не выделяется всё: разбор по симптомам

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

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

Какая комбинация выделяет сразу всё в 1С?
Ctrl+A. Она выделяет все строки в таблице или списке, если фокус в таблице, либо весь текст, если курсор в поле ввода.
Можно ли выделить несколько строк, идущих не подряд?
Да. Удерживайте Ctrl и щёлкайте по нужным строкам — каждая добавляется к выделению. Повторный Ctrl+клик по строке убирает её.
Как скопировать выделенные строки в Excel?
Выделите строки, нажмите Ctrl+C, перейдите в Excel и вставьте Ctrl+V. Колонки таблицы разложатся по ячейкам листа.
Почему `Ctrl+A` выделяет не все строки большого списка?
Списки загружаются порциями при прокрутке. Долистайте список до конца, чтобы платформа догрузила все строки, и только потом нажимайте Ctrl+A.
Как выделить все строки табличной части из кода?
Через свойство ВыделенныеСтроки элемента формы: очистите массив и добавьте в него идентификаторы всех строк, полученные методом ПолучитьИдентификатор().