Быстрый старт · 10 мин
Как выделить диапазон строк в 1С
Способы выделить диапазон строк в 1С: мышью с Shift и Ctrl, в табличном документе, журнале документов и программно на встроенном языке с примерами кода.
Выделение диапазона строк — одна из базовых операций в 1С, которая нужна при групповом изменении документов, копировании данных, установке пометок удаления или проведении сразу нескольких объектов. В зависимости от контекста (список документов, табличная часть, табличный документ, отчёт) действия отличаются, но логика везде одна: указать первую и последнюю строку диапазона либо перечислить строки по одной.
В большинстве случаев достаточно стандартных приёмов работы с мышью и клавиатурой: клавиша Shift выделяет непрерывный диапазон, а Ctrl — произвольный набор строк. Для задач обработки данных программно используются методы встроенного языка: обход строк табличной части, выборки и запросы. Ниже разобраны оба подхода — пользовательский и программный.
Выделение диапазона строк мышью и клавиатурой
Основной способ работает в большинстве списков 1С: журналах документов, списках справочников, регистрах сведений. Установите курсор на первую строку будущего диапазона, нажмите и удерживайте клавишу Shift, затем кликните по последней строке. Все строки между ними будут выделены — обычно они подсвечиваются контрастным цветом.
Тот же результат даёт работа только с клавиатуры: переместите курсор на первую строку стрелками, зажмите Shift и продолжайте нажимать стрелку «вниз» или Page Down, пока диапазон не охватит нужные строки. Этот приём удобен, когда список длинный и точный клик мышью по последней строке затруднён.
Если нужно выделить строки, идущие не подряд, используйте Ctrl: зажмите клавишу и кликайте по каждой нужной строке. Повторный клик с Ctrl по уже выделенной строке снимает выделение только с неё, не затрагивая остальные.
- 1Откройте список (журнал документов, справочник) и при необходимости настройте отбор и сортировку
- 2Кликните по первой строке диапазона
- 3Зажмите Shift и кликните по последней строке диапазона
- 4Убедитесь, что подсвечены именно те строки, которые нужны
- 5Выполните групповое действие: правый клик и выбор команды контекстного меню
Выделение всех строк и работа с отборами
Когда требуется выделить весь список целиком, используется сочетание Ctrl+A — оно выделяет все строки, видимые в текущем представлении списка. Важно понимать: выделяются строки с учётом действующего отбора. Если в журнале документов установлен фильтр по контрагенту или периоду, Ctrl+A выделит только отфильтрованные записи, что часто именно и требуется.
Поэтому перед массовой обработкой разумно сначала сузить список отбором, а потом выделять строки. Так снижается риск случайно затронуть лишние документы. Комбинация «отбор + Ctrl+A» — стандартный приём для группового проведения или пометки на удаление партии документов.
Отменить выделение можно кликом по любой строке без зажатых клавиш или нажатием Ctrl+A повторно в некоторых конфигурациях. Перед выполнением необратимого действия (пометка удаления, проведение) перепроверьте состав выделенных строк.
Выделение строк в табличной части документа
В табличных частях документов (например, список товаров в «Реализации») выделение работает аналогично: Shift для непрерывного диапазона, Ctrl для произвольного набора. Выделенные строки можно удалить, скопировать в буфер обмена или переместить, если конфигурация это поддерживает.
Копирование выделенных строк через Ctrl+C и вставка через Ctrl+V работает как внутри одного документа, так и между документами одного вида. Это быстрый способ перенести часть товарного состава из одной накладной в другую без повторного подбора номенклатуры.
Учтите ограничение: при вставке строк в документ с другой организацией или складом часть реквизитов может пересчитываться по правилам конфигурации. После вставки проверьте цены, счета учёта и количество, прежде чем проводить документ.
Выделение области в табличном документе и отчёте
В табличных документах (печатные формы, отчёты, макеты) выделяются не строки списка, а ячейки. Диапазон ячеек выделяется протягиванием мыши от первой ячейки к последней либо кликом по первой ячейке и Shift+клик по последней. Выделенную область можно скопировать в Excel или другую программу через буфер обмена.
Чтобы выделить целые строки табличного документа, кликните по заголовку строки слева (по номеру), а для диапазона — по первому номеру и затем по последнему с Shift. Аналогично работают заголовки колонок сверху. Клик по левому верхнему углу области заголовков выделяет весь табличный документ.
Программное выделение и обход диапазона строк
Для разработчиков и при групповых обработках диапазон строк задаётся в коде. В табличной части объекта строки индексируются с нуля, и диапазон обрабатывается циклом по индексам. Ниже пример обхода строк табличной части с пятой по десятую.
Для Инд = 4 По 9 Цикл
СтрокаТЧ = Объект.Товары[Инд];
СтрокаТЧ.Скидка = 5;
КонецЦикла;Когда границы диапазона заранее неизвестны, строки отбирают по условию. Для этого используют метод НайтиСтроки у табличной части — он возвращает массив строк, удовлетворяющих отбору, который затем обрабатывается в цикле.
ПараметрыОтбора = Новый Структура("Склад", СкладОтгрузки);
НайденныеСтроки = Объект.Товары.НайтиСтроки(ПараметрыОтбора);
Для Каждого СтрокаТЧ Из НайденныеСтроки Цикл
СтрокаТЧ.Количество = 0;
КонецЦикла;В динамических списках на управляемых формах программно получить выделенные пользователем строки можно через свойство ВыделенныеСтроки элемента формы. Это используется в командах групповой обработки: обработчик получает массив ссылок выделенных объектов и выполняет над ними нужное действие.
Обход строк запросом
Если диапазон определяется по датам, номерам или другим реквизитам, эффективнее использовать запрос с условием МЕЖДУ. Запрос вернёт только нужные записи, и их обход не потребует проверки условий в цикле по всей таблице.
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ Ссылка ИЗ Документ.РеализацияТоваровУслуг
|ГДЕ Дата МЕЖДУ &Начало И &Конец";
Запрос.УстановитьПараметр("Начало", НачалоДня(ДатаНач));
Запрос.УстановитьПараметр("Конец", КонецДня(ДатаКон));
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
// обработка документа
КонецЦикла;Групповые операции над выделенным диапазоном
После выделения диапазона строк доступны команды контекстного меню: провести, отменить проведение, пометить на удаление, изменить выделенные элементы. Во многих конфигурациях есть отдельная обработка «Групповое изменение реквизитов», которая позволяет установить значение реквизита сразу для всех выделенных объектов.
Порядок безопасной групповой обработки: сначала отбор, затем выделение, затем визуальная проверка состава, затем действие. Если список большой, прокрутите его и убедитесь, что в диапазон не попали посторонние документы — особенно при выделении через Shift на длинных списках, когда границы диапазона уходят за пределы экрана.
Проверка результата и ограничения
Признак корректного выделения — подсветка именно тех строк, которые планировалось обработать, и корректное число выделенных элементов, если конфигурация его отображает. После групповой операции проверьте результат выборочно: откройте два-три документа из середины диапазона и убедитесь, что изменения применились.
Учитывайте ограничения платформы: в некоторых динамических списках с иерархией или группировкой выделение диапазона может работать только внутри одной группы, а часть команд контекстного меню недоступна для множественного выделения. В таких случаях обрабатывайте строки порциями или используйте специализированные групповые обработки.
Как проверить результат
Подсвечены только нужные строки, границы совпадают с задуманными
В выделение попали посторонние документы или часть нужных строк пропущена
У выборочно открытых документов реквизиты изменились как ожидалось
Изменения применились частично или не к тем объектам
Список обновился, отбор и сортировка сохранены
Выделение сброшено до завершения операции, список перестроился
Что важно запомнить
Диапазон строк в 1С выделяется через Shift (непрерывный диапазон) и Ctrl (произвольный набор), весь список — через Ctrl+A с учётом действующего отбора. Программно диапазон обрабатывается циклом по индексам, методом НайтиСтроки или запросом с условием. Перед групповыми операциями всегда проверяйте состав выделенного и делайте резервную копию при работе с критичными данными.
Частые вопросы
Как выделить все строки списка сразу?
Нажмите Ctrl+A в активном списке. Выделятся все строки, видимые с учётом текущего отбора. Если отбор не установлен — весь список целиком.
Почему выделение сбрасывается после сортировки?
При изменении сортировки или обновлении динамического списка платформа перестраивает строки, и прежнее выделение теряется. Сначала настройте порядок и отбор, затем выделяйте диапазон.
Как выделить строки, идущие не подряд?
Зажмите Ctrl и кликайте по каждой нужной строке. Повторный клик с Ctrl снимает выделение с конкретной строки.
Можно ли скопировать выделенные строки в Excel?
Да. Выделите строки или область табличного документа, нажмите Ctrl+C и вставьте в Excel через Ctrl+V. Для списков документов может потребоваться команда вывода списка в табличный документ.
Как программно узнать, какие строки выделил пользователь?
На управляемой форме используйте свойство ВыделенныеСтроки элемента формы, связанного со списком. Оно возвращает массив идентификаторов или ссылок выделенных строк, которые можно обработать в команде.
Что делать, если случайно пометил на удаление лишние документы?
Выделите те же документы повторно (например, через отбор по пометке удаления) и выполните команду снятия пометки. Если документы уже удалены операцией удаления помеченных объектов, восстановление возможно только из резервной копии.