Групповое выделение в списках и табличных частях 1С — от Ctrl и Shift до ВыделенныеСтроки
Содержание
Чтобы выделить несколько строк
в 1С 8.3, держите Ctrl и щёлкайте мышью по нужным строкам — каждая добавится к выделению. Сплошной диапазон выделяют так: щелчок по первой строке, затем Shift + щелчок по последней. Все строки списка сразу — Ctrl+A.
Приёмы одинаковы в любой конфигурации на платформе 8.3 — Бухгалтерии, ЗУП, Управлении торговлей: это поведение самой платформы, а не прикладного решения. Отличаются только команды, которые потом можно применить к выделенным строкам, и то, разрешено ли множественное выделение в конкретной таблице.
Где работает групповое выделение и где нет
В 1С строки выделяют в трёх видах таблиц. Поведение у них разное, и это объясняет большинство вопросов «почему не выделяется».
| Где | Пример | Что можно сделать с выделенными строками |
|---|---|---|
| Список объектов (динамический список) | Журнал документов, справочник «Номенклатура» | Провести, отменить проведение, пометить на удаление, изменить реквизиты группой |
| Табличная часть документа | Вкладка «Товары» в реализации | Удалить, скопировать, вставить в другой документ |
| Табличный документ (отчёт) | Оборотно-сальдовая ведомость | Посмотреть сумму, скопировать в Excel |
Множественное выделение — это свойство конкретной таблицы на форме, оно называется «Режим выделения». Разработчик ставит его в значение «Множественный» или «Одиночный». В типовых журналах документов и в большинстве табличных частей стоит «Множественный». Если таблица настроена на одиночное выделение, никакие клавиши не помогут — выделится только одна строка.
Быстрая проверка режима: зажмите Shift и нажмите стрелку вниз два-три раза. Если подсветка растягивается на несколько строк — групповое выделение разрешено. Если подсвечена только одна строка, а курсор просто сдвигается — таблица работает в одиночном режиме.
Как выделить несколько строк мышью
Мышь — самый наглядный способ, когда нужные строки видны на экране.
Отдельные строки вразброс
- Щёлкните по первой нужной строке.
- Зажмите
Ctrl. - Не отпуская
Ctrl, щёлкайте по остальным строкам. Каждая подсветится. - Повторный щелчок с
Ctrlпо уже выделенной строке снимает с неё выделение, остальные остаются.
Так удобно отобрать, например, 4 счёта из 30 в журнале, чтобы провести только их.
Сплошной диапазон
- Щёлкните по первой строке диапазона.
- Прокрутите список до последней строки.
- Зажмите
Shiftи щёлкните по ней. Выделятся все строки между ними, включая крайние.
Комбинация двух приёмов
Диапазон можно дополнить отдельными строками. Сначала выделите блок через Shift, потом с зажатым Ctrl добавьте строки за его пределами. Можно и наоборот — Ctrl-щелчком исключить из блока лишние строки.
Обычный щелчок без Ctrl сбрасывает всё выделение и оставляет одну строку. Если отобрали двадцать документов, щёлкайте только с зажатой клавишей, пока не выполните нужную команду.
Горячие клавиши для выделения строк в 1С
Клавиатура быстрее мыши на длинных списках: не нужно целиться и прокручивать.
| Сочетание | Что делает |
|---|---|
Shift + ↓ / Shift + ↑ | Расширяет выделение на одну строку вниз или вверх |
Shift + PageDown / Shift + PageUp | Расширяет выделение на страницу |
Ctrl + A | Выделяет все строки таблицы |
Ctrl + щелчок | Добавляет строку к выделению или убирает её |
Shift + щелчок | Выделяет диапазон от текущей строки до указанной |
Ctrl + C | Копирует выделенные строки в буфер обмена |
Delete | Удаляет выделенные строки табличной части или помечает на удаление выделенные объекты в списке |
Типовой сценарий для табличной части с сотней строк: встаньте на первую строку, нажмите Ctrl + A, затем Ctrl + C и вставьте в Excel. Колонки разложатся по столбцам листа.
Ctrl + A в динамическом списке выделяет строки, которые попадают под текущий отбор. Это важно для следующего раздела.
Выделение ячеек в отчёте
В табличном документе (отчёте) выделяются не строки, а ячейки. Приёмы те же: Shift + стрелки растягивают область, Ctrl + щелчок добавляет несмежную ячейку. В отчётах типовых конфигураций рядом с отчётом выводится сумма выделенных ячеек — так удобно сложить обороты по нескольким счетам без калькулятора.
Выделение через отбор, когда строк сотни
Выделять мышью 300 документов из 2 000 — долго и рискованно: один промах обычным щелчком, и всё заново. Правильный путь — сначала сузить список, а потом выделить всё, что осталось.
Порядок действий
- Откройте нужный список, например журнал документов реализации.
- Задайте отбор: введите текст в строку поиска над списком (например, наименование контрагента) или воспользуйтесь расширенным поиском
Alt + Fпо конкретной колонке. - Ограничьте период, если список документный: команда установки периода есть в командной панели журнала.
- Убедитесь, что в списке остались только нужные строки. Проверьте количество — прокрутите до конца.
- Нажмите
Ctrl + A. - Выполните команду над выделенными строками: через меню
Ещёили контекстное меню правой кнопкой.
Отбор по значению из ячейки
Быстрый вариант — встать на ячейку с нужным значением (например, склад «Основной») и найти команду поиска по текущему значению в контекстном меню. В списке останутся только строки с тем же значением в этой колонке. Дальше — Ctrl + A.
Если в списке включена группировка или иерархия (папки справочника), Ctrl + A захватит то, что сейчас показано на экране. Для справочника с папками удобнее переключить вид на список без иерархии — тогда выделятся элементы всех групп.
Что делают с выделенными строками в списке
- ✅ Проведение группы документов — команда «Провести» применяется ко всем выделенным.
- ✅ Отмена проведения — так же, группой.
- 🗑️ Пометка на удаление —
Delete, программа попросит подтвердить для всех строк. - ✏️ Групповое изменение реквизитов — в типовых конфигурациях в меню
Ещёесть команда «Изменить выделенные…». Она открывает форму, где задаётся новое значение реквизита сразу для всех выбранных объектов: например, сменить ответственного у 50 документов. - 📋 Печать — многие печатные формы формируются сразу на все выделенные документы одной пачкой.
Перед групповым изменением реквизитов или массовым перепроведением сделайте резервную копию базы . Отменить такую операцию одной кнопкой нельзя, а при ошибке в отборе изменения затронут чужие документы.
Работа с выделенными строками табличной части
Табличная часть документа — отдельный случай. Здесь выделение нужно, чтобы удалить, перенести или скопировать строки.
Удаление нескольких строк
Выделите строки любым способом из разделов выше и нажмите Delete. Строки исчезнут сразу, но изменения не сохранятся, пока документ не записан. Если удалили лишнее — закройте форму без записи, на вопрос о сохранении ответьте «Нет».
Перенос строк в другой документ
В Бухгалтерии предприятия 3.0 и других решениях на БСП в табличных частях есть команды «Скопировать строки» и «Вставить строки» (меню Ещё над табличной частью). Порядок:
- В исходном документе выделите строки.
- Выполните «Скопировать строки».
- Откройте документ-приёмник, перейдите на ту же табличную часть.
- Выполните «Вставить строки».
Эта пара команд переносит именно данные 1С — ссылки на номенклатуру, ставки НДС, счета учёта, — а не текст. Обычный Ctrl + C / Ctrl + V между документами так не работает
: он копирует текстовое представление.
Копирование в Excel
Ctrl + C на выделенных строках табличной части даёт текст, разделённый табуляцией. В Excel он вставляется по ячейкам. Заголовки колонок при этом не копируются — добавьте их вручную.
Программное выделение строк: для разработчиков
В управляемой форме за выделение отвечает свойство элемента формы ВыделенныеСтроки. Это коллекция, в которой лежат:
- 📄 для табличной части или таблицы значений на форме — идентификаторы строк данных формы;
- 🔗 для динамического списка — ключи строк, для списка справочника или документа это ссылки на объекты.
Чтобы коллекция содержала больше одного элемента, у элемента таблицы должен стоять режим РежимВыделенияТаблицы.Множественный. Его можно задать в конфигураторе в свойствах элемента или в коде:
Элементы.Товары.РежимВыделения = РежимВыделенияТаблицы.Множественный;
Обработать выделенные строки табличной части
Пример: команда формы документа ставит скидку 5% всем выделенным строкам табличной части «Товары».
&НаКлиенте
Процедура УстановитьСкидкуВыделенным(Команда)
Для Каждого Идентификатор Из Элементы.Товары.ВыделенныеСтроки Цикл
СтрокаТЧ = Объект.Товары.НайтиПоИдентификатору(Идентификатор);
Если СтрокаТЧ <> Неопределено Тогда
СтрокаТЧ.ПроцентСкидки = 5;
КонецЕсли;
КонецЦикла;
Модифицированность = Истина;
КонецПроцедуры
Имя реквизита ПроцентСкидки здесь условное — подставьте реальное имя колонки вашей табличной части.
Выделить строки по условию из кода
Обратная задача: программа сама выделяет строки, например все с нулевым количеством, чтобы пользователь их увидел и удалил.
&НаКлиенте
Процедура ВыделитьПустыеСтроки(Команда)
Элементы.Товары.ВыделенныеСтроки.Очистить();
Для Каждого СтрокаТЧ Из Объект.Товары Цикл
Если СтрокаТЧ.Количество = 0 Тогда
Элементы.Товары.ВыделенныеСтроки.Добавить(СтрокаТЧ.ПолучитьИдентификатор());
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Удалить выделенные строки
Удалять прямо в цикле по ВыделенныеСтроки нельзя: при удалении строки коллекция меняется. Сначала скопируйте идентификаторы в массив.
&НаКлиенте
Процедура УдалитьВыделенные(Команда)
Идентификаторы = Новый Массив;
Для Каждого Идентификатор Из Элементы.Товары.ВыделенныеСтроки Цикл
Идентификаторы.Добавить(Идентификатор);
КонецЦикла;
Для Каждого Идентификатор Из Идентификаторы Цикл
СтрокаТЧ = Объект.Товары.НайтиПоИдентификатору(Идентификатор);
Если СтрокаТЧ <> Неопределено Тогда
Объект.Товары.Удалить(СтрокаТЧ);
КонецЕсли;
КонецЦикла;
Модифицированность = Истина;
КонецПроцедуры
Выделенные документы в динамическом списке
В форме списка Элементы.Список.ВыделенныеСтроки возвращает ссылки. Если в списке включена группировка, среди элементов могут попасться строки группировки, поэтому тип стоит проверить:
&НаКлиенте
Процедура ОбработатьВыделенныеДокументы(Команда)
Ссылки = Новый Массив;
Для Каждого Строка Из Элементы.Список.ВыделенныеСтроки Цикл
Если ТипЗнч(Строка) <> Тип("ГруппировкаСтрокДинамическогоСписка") Тогда
Ссылки.Добавить(Строка);
КонецЕсли;
КонецЦикла;
Если Ссылки.Количество() = 0 Тогда
Возврат;
КонецЕсли;
ОбработатьНаСервере(Ссылки);
Элементы.Список.Обновить();
КонецПроцедуры
Для команды, которая добавляется в форму списка из общей команды, проще другой путь: у команды выставляют РежимИспользованияПараметра = Множественный. Тогда в ПараметрКоманды сразу приходит массив выделенных ссылок, и перебирать элемент формы не нужно.
Чтобы не трогать типовую форму, новые команды для работы с выделенными строками добавляйте в расширении конфигурации. Тогда обновление типовой конфигурации не сотрёт доработку.
Готовые обработки для массовой работы со строками
Когда штатных команд мало, а программировать некому, выручают обработки. По надёжности их стоит рассматривать в таком порядке.
| Инструмент | Где взять | Когда подходит | Риски |
|---|---|---|---|
| «Изменить выделенные…» | Встроена в типовые конфигурации, меню Ещё списка | Сменить значение реквизита у группы объектов | Минимальные, есть контроль прав |
| Универсальная обработка подбора и группового изменения объектов | Поставляется фирмой 1С в составе стандартных обработок для партнёров и пользователей с поддержкой | Сложный отбор по нескольким условиям, изменение табличных частей | Изменяет данные в обход формы; без копии ошибку не откатить |
| Обработка стороннего разработчика | Каталоги разработок, свои программисты | Специфичные задачи: перенос строк между документами по условию | Непроверенный код, возможны ошибки и вредоносные вставки |
Как подключить внешнюю обработку
- Файл
.epfоткройте через главное меню:Файл → Открыть. Для разового запуска этого достаточно. - Для постоянного использования в БП, ЗУП и УТ подключайте её в разделе
Администрирование → Печатные формы, отчёты и обработкичерез «Дополнительные отчёты и обработки». - Если при открытии появляется сообщение о нехватке прав, у пользователя нет права на интерактивное открытие внешних обработок. Его выдаёт администратор.
Внешнюю обработку из неизвестного источника не запускайте в рабочей базе. Сначала проверьте её на копии базы: такой код получает те же права, что и пользователь, и может изменить или удалить данные.
Частые вопросы
Можно ли выделить несколько строк на сенсорном экране без клавиатуры?
Ещё, если она есть в этой таблице, или подключите экранную клавиатуру с клавишами Ctrl и Shift.Сохраняется ли выделение после закрытия формы?
Как узнать, сколько строк выделено?
Элементы.Список.ВыделенныеСтроки.Количество().