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