К статье
Практический материал

Быстрый старт · 11 мин

Как выделить строки в 1С 8: способы для документов, журналов и списков

Как выделить строки в 1С 8: мышью, с Shift и Ctrl, в табличной части документа, журнале и динамическом списке. Горячие клавиши, групповые операции и типичные ошибки.

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

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

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

Выделение строк мышью и клавишами Shift и Ctrl

Самый простой случай — одна строка. Достаточно щёлкнуть по любой ячейке строки: она подсвечивается цветом, а в левом служебном поле таблицы появляется указатель текущей строки. Именно с этой строкой будут работать команды «Удалить», «Копировать», «Переместить вверх/вниз».

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

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

Как выделить нужные строки
  1. 1
    Щёлкните первую строку диапазона — она станет текущей
  2. 2
    Зажмите Shift и щёлкните последнюю строку, чтобы выделить диапазон
  3. 3
    Для несмежных строк удерживайте Ctrl и щёлкайте каждую нужную строку
  4. 4
    Проверьте подсветку: выделенные строки окрашены, с ними можно выполнять групповые действия
  5. 5
    Для снятия выделения щёлкните любую строку без клавиш-модификаторов

Выделение всех строк табличной части документа

Когда нужно скопировать или удалить всё содержимое табличной части — например, полностью перезаполнить список товаров в заказе — выделять строки по одной долго. Поставьте курсор в любую строку табличной части и нажмите Ctrl+A: будут выделены все строки. В обычных формах 8.2 сочетание работает так же, как в других Windows-приложениях.

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

После выделения всех строк можно нажать Ctrl+C и вставить данные в другой документ или в Excel через буфер обмена, либо нажать Delete для очистки табличной части. Перед массовым удалением убедитесь, что документ не проведён: у проведённого документа редактирование часто заблокировано, и сначала потребуется распровести его.

Выделение строк в журналах и динамических списках

В журналах документов и списках справочников выделение работает так же: Shift для диапазона, Ctrl для произвольного набора. Выделенные документы можно массово провести, распровести, пометить на удаление или изменить через команду «Ещё → Изменить выделенные» (в типовых конфигурациях на базе БСП). Это безопаснее ручного перебора, потому что программа обработает только выбранные объекты и покажет отчёт о результате.

Учитывайте особенность динамических списков: они подгружают данные порциями по мере прокрутки. Если вы прокрутили список вниз и выделяете диапазон через Shift, в выделение попадут только реально отображаемые строки. Команда «Выделить всё» в динамическом списке также может охватывать не миллионы записей, а видимую выборку — поэтому для массовой обработки всего журнала надёжнее использовать отбор и групповую обработку, а не ручное выделение.

Если команда группового изменения недоступна (серая), проверьте права: для массовых операций нужны права на изменение объектов, а в некоторых конфигурациях — отдельное право «Изменение выделенных элементов». Также команда недоступна, если выделена всего одна строка или ни одной.

Групповые операции с выделенными строками

После выделения строк в табличной части документа типовые конфигурации предлагают команды группового изменения: «Изменить цены», «Установить скидку», «Изменить склад», «Изменить ставку НДС» и подобные. Они находятся в командной панели табличной части или в меню «Ещё». Команда применяется только к выделенным строкам, поэтому перед запуском проверьте подсветку.

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

Для строк журнала после выделения доступны: проведение, отмена проведения, пометка на удаление, смена даты (через обработку), выгрузка в табличный документ. Помните, что пометка на удаление контрагентов или номенклатуры, на которые есть ссылки в документах, приведёт к битым ссылкам при физическом удалении — сначала используйте штатную проверку ссылочной целостности.

Типичные ошибки
01
Выделение строк при фокусе в поле поиска: Ctrl+A выделяет текст в поле, а не строки таблицы — сначала щёлкните по таблице
02
Групповое изменение без проверки выделения: команда применилась не к тем строкам, отмена возможна только закрытием документа без сохранения
03
Попытка выделить строки в списке, открытом в режиме выбора без множественного выбора: там доступна только одна строка
04
Удаление выделенных строк в проведённом документе без распроведения: кнопки неактивны, пользователь считает это ошибкой программы

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

Выделенные строки табличной части копируются через Ctrl+C или пункт «Копировать» контекстного меню. Вставка в другую табличную часть выполняется через Ctrl+V или «Вставить». При вставке платформа переносит значения совпадающих по имени колонок, поэтому копирование товаров между накладной и счётом обычно проходит корректно, а несовпадающие реквизиты остаются пустыми.

Вставка из буфера работает и в обратную сторону: можно скопировать строки из Excel и вставить их в табличную часть, если порядок и формат колонок совпадают. Перед вставкой большого объёма проверьте на 2–3 строках, что данные попали в нужные колонки, — иначе придётся очищать табличную часть целиком.

В некоторых управляемых формах прямое Ctrl+C/Ctrl+V для строк отключено, и копирование выполняется командами «Скопировать строки» / «Вставить строки» из меню «Ещё». Если привычное сочетание не сработало, откройте контекстное меню правой кнопкой мыши — доступные команды всегда видны там.

Программное выделение и отбор строк для разработчиков

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

Для Каждого Идентификатор Из Элементы.Товары.ВыделенныеСтроки Цикл

СтрокаТовара = Объект.Товары.НайтиПоИдентификатору(Идентификатор);

СтрокаТовара.Цена = 0;

КонецЦикла;

Для отбора строк табличной части по условию без выделения используется метод НайтиСтроки с структурой отбора, например Объект.Товары.НайтиСтроки(Новый Структура("Склад", СкладОтбора)). Это надёжнее визуального выделения, потому что не зависит от действий пользователя и работает на сервере.

Программно установить текущую строку списка можно через Элементы.Список.ТекущаяСтрока = НужнаяСсылка; — так форма сама позиционируется на нужной записи при открытии. Массово «подсветить» строки программно в динамическом списке нельзя; вместо этого применяют условное оформление, которое раскрашивает строки по условию и сохраняется при прокрутке.

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

Как проверить, что операция выполнена правильно

После группового изменения строк сверьте итоги документа: сумму, количество позиций, итоговый НДС. Если вы меняли цены или скидки в части строк, итог должен измениться предсказуемо — резкое расхождение означает, что команда затронула лишние строки или не все нужные.

При массовых операциях в журнале типовая обработка показывает окно результата: сколько объектов изменено, сколько пропущено и по какой причине. Не закрывайте это окно, не прочитав: строки с ошибками (например, документы в закрытом периоде) останутся необработанными, и их придётся разбирать по одному.

Контрольные точки

Как проверить результат

Подсветка строк перед командой
Норма

Выделены именно те строки, которые нужно изменить

Тревожный признак

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

Итоги документа после изменения
Норма

Сумма и количество соответствуют ожиданию

Тревожный признак

Итог резко изменился или обнулился

Отчёт групповой обработки
Норма

Все объекты обработаны без ошибок

Тревожный признак

Есть пропущенные объекты с указанием причины

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

Почему не работает Ctrl+A в табличной части?

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

Как выделить строки в 1С на планшете или в веб-клиенте?

В веб-клиенте сочетания Shift и Ctrl работают так же, как в тонком клиенте. На мобильной платформе множественное выделение обычно включается специальной кнопкой режима выбора в командной панели списка, после чего строки отмечаются касанием.

Можно ли выделить строки по условию без программирования?

Да, частично: в журналах и списках настройте отбор (кнопка «Настроить список» или быстрый отбор), чтобы в списке остались только нужные строки, а затем выделите их все. В табличной части документа отбора нет — там помогает только сортировка по колонке, после которой нужные строки окажутся рядом и их можно выделить диапазоном через Shift.

Что делать, если выделение сбрасывается при прокрутке списка?

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

Как отменить ошибочное групповое изменение строк?

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

Почему команда «Изменить выделенные» недоступна?

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

Итог

Что важно запомнить

Shift выделяет диапазон, Ctrl — отдельные строки, Ctrl+A — всю табличную часть при фокусе в ней. Перед групповой операцией проверяйте подсветку и итоги после выполнения. Для массовых изменений в журналах надёжнее отбор плюс штатная обработка, а в коде — свойство ВыделенныеСтроки и метод НайтиСтроки.