Быстрый старт · 11 мин
Как выделить строки в 1С 8: способы для документов, журналов и списков
Как выделить строки в 1С 8: мышью, с Shift и Ctrl, в табличной части документа, журнале и динамическом списке. Горячие клавиши, групповые операции и типичные ошибки.
Выделение строк — базовый приём работы в 1С 8: без него нельзя удалить лишние позиции в документе, скопировать товары из одной накладной в другую или массово установить скидку. При этом способ выделения зависит от того, где находятся строки: в табличной части документа, в журнале, в динамическом списке или в таблице значений в режиме тонкого клиента.
В разных версиях платформы (8.2 с обычными формами и 8.3 с управляемыми) поведение слегка отличается: в управляемых формах множественное выделение поддерживается не везде, и часть привычных действий перенесена в контекстное меню и кнопку «Ещё». Ниже разобраны все рабочие способы — от простого выделения мышью до программного отбора строк в коде.
Сначала определите, какая перед вами таблица: редактируемая табличная часть (в ней можно менять значения ячеек) или список только для просмотра (журнал документов, список справочника). От этого зависит, доступны ли команды «Выделить всё», копирование и групповое изменение.
Выделение строк мышью и клавишами Shift и Ctrl
Самый простой случай — одна строка. Достаточно щёлкнуть по любой ячейке строки: она подсвечивается цветом, а в левом служебном поле таблицы появляется указатель текущей строки. Именно с этой строкой будут работать команды «Удалить», «Копировать», «Переместить вверх/вниз».
Чтобы выделить непрерывный диапазон строк, щёлкните первую строку диапазона, затем зажмите клавишу Shift и щёлкните последнюю строку. Все строки между ними будут подсвечены. Тот же результат даёт перемещение курсора стрелками клавиатуры с зажатым Shift — так удобнее точно дойти до нужной строки в длинной табличной части.
Несмежные строки выделяются с зажатой клавишей Ctrl: щёлкните первую строку, затем, удерживая Ctrl, щёлкайте остальные нужные строки. Повторный щелчок с Ctrl по уже выделенной строке снимает с неё выделение, не затрагивая остальные. Это удобно, когда нужно удалить несколько ошибочных позиций, разбросанных по документу.
- 1Щёлкните первую строку диапазона — она станет текущей
- 2Зажмите Shift и щёлкните последнюю строку, чтобы выделить диапазон
- 3Для несмежных строк удерживайте Ctrl и щёлкайте каждую нужную строку
- 4Проверьте подсветку: выделенные строки окрашены, с ними можно выполнять групповые действия
- 5Для снятия выделения щёлкните любую строку без клавиш-модификаторов
Выделение всех строк табличной части документа
Когда нужно скопировать или удалить всё содержимое табличной части — например, полностью перезаполнить список товаров в заказе — выделять строки по одной долго. Поставьте курсор в любую строку табличной части и нажмите Ctrl+A: будут выделены все строки. В обычных формах 8.2 сочетание работает так же, как в других Windows-приложениях.
В управляемых формах 8.3, если Ctrl+A по какой-то причине не сработал (например, фокус стоит не в таблице, а в поле ввода), откройте меню «Ещё» в командной панели табличной части — там есть команда «Выделить всё». Важно, чтобы курсор перед этим находился именно в нужной таблице, если в документе их несколько (например, «Товары» и «Услуги»).
После выделения всех строк можно нажать Ctrl+C и вставить данные в другой документ или в Excel через буфер обмена, либо нажать Delete для очистки табличной части. Перед массовым удалением убедитесь, что документ не проведён: у проведённого документа редактирование часто заблокировано, и сначала потребуется распровести его.
Выделение строк в журналах и динамических списках
В журналах документов и списках справочников выделение работает так же: Shift для диапазона, Ctrl для произвольного набора. Выделенные документы можно массово провести, распровести, пометить на удаление или изменить через команду «Ещё → Изменить выделенные» (в типовых конфигурациях на базе БСП). Это безопаснее ручного перебора, потому что программа обработает только выбранные объекты и покажет отчёт о результате.
Учитывайте особенность динамических списков: они подгружают данные порциями по мере прокрутки. Если вы прокрутили список вниз и выделяете диапазон через Shift, в выделение попадут только реально отображаемые строки. Команда «Выделить всё» в динамическом списке также может охватывать не миллионы записей, а видимую выборку — поэтому для массовой обработки всего журнала надёжнее использовать отбор и групповую обработку, а не ручное выделение.
Если команда группового изменения недоступна (серая), проверьте права: для массовых операций нужны права на изменение объектов, а в некоторых конфигурациях — отдельное право «Изменение выделенных элементов». Также команда недоступна, если выделена всего одна строка или ни одной.
Групповые операции с выделенными строками
После выделения строк в табличной части документа типовые конфигурации предлагают команды группового изменения: «Изменить цены», «Установить скидку», «Изменить склад», «Изменить ставку НДС» и подобные. Они находятся в командной панели табличной части или в меню «Ещё». Команда применяется только к выделенным строкам, поэтому перед запуском проверьте подсветку.
Если выделение не требуется, а изменить нужно строки по условию (например, все позиции конкретной номенклатурной группы), удобнее встроенные команды заполнения и подбора, которые сами отбирают строки. Ручное выделение оправдано, когда критерий невозможно задать формально и нужен человеческий выбор.
Для строк журнала после выделения доступны: проведение, отмена проведения, пометка на удаление, смена даты (через обработку), выгрузка в табличный документ. Помните, что пометка на удаление контрагентов или номенклатуры, на которые есть ссылки в документах, приведёт к битым ссылкам при физическом удалении — сначала используйте штатную проверку ссылочной целостности.
Копирование и перенос выделенных строк
Выделенные строки табличной части копируются через Ctrl+C или пункт «Копировать» контекстного меню. Вставка в другую табличную часть выполняется через Ctrl+V или «Вставить». При вставке платформа переносит значения совпадающих по имени колонок, поэтому копирование товаров между накладной и счётом обычно проходит корректно, а несовпадающие реквизиты остаются пустыми.
Вставка из буфера работает и в обратную сторону: можно скопировать строки из Excel и вставить их в табличную часть, если порядок и формат колонок совпадают. Перед вставкой большого объёма проверьте на 2–3 строках, что данные попали в нужные колонки, — иначе придётся очищать табличную часть целиком.
В некоторых управляемых формах прямое Ctrl+C/Ctrl+V для строк отключено, и копирование выполняется командами «Скопировать строки» / «Вставить строки» из меню «Ещё». Если привычное сочетание не сработало, откройте контекстное меню правой кнопкой мыши — доступные команды всегда видны там.
Программное выделение и отбор строк для разработчиков
В коде на встроенном языке «выделение» строк обычно означает не визуальную подсветку, а получение выделенных пользователем строк или отбор нужных строк в данных. Для табличного поля управляемой формы идентификаторы выделенных строк доступны через свойство ВыделенныеСтроки элемента формы:
Для Каждого Идентификатор Из Элементы.Товары.ВыделенныеСтроки Цикл
СтрокаТовара = Объект.Товары.НайтиПоИдентификатору(Идентификатор);
СтрокаТовара.Цена = 0;
КонецЦикла;
Для отбора строк табличной части по условию без выделения используется метод НайтиСтроки с структурой отбора, например Объект.Товары.НайтиСтроки(Новый Структура("Склад", СкладОтбора)). Это надёжнее визуального выделения, потому что не зависит от действий пользователя и работает на сервере.
Программно установить текущую строку списка можно через Элементы.Список.ТекущаяСтрока = НужнаяСсылка; — так форма сама позиционируется на нужной записи при открытии. Массово «подсветить» строки программно в динамическом списке нельзя; вместо этого применяют условное оформление, которое раскрашивает строки по условию и сохраняется при прокрутке.
// Обработка только выделенных строк табличной части
Для Каждого Ид Из Элементы.Товары.ВыделенныеСтроки Цикл
СтрокаТЧ = Объект.Товары.НайтиПоИдентификатору(Ид);
СтрокаТЧ.Скидка = 5;
КонецЦикла;Как проверить, что операция выполнена правильно
После группового изменения строк сверьте итоги документа: сумму, количество позиций, итоговый НДС. Если вы меняли цены или скидки в части строк, итог должен измениться предсказуемо — резкое расхождение означает, что команда затронула лишние строки или не все нужные.
При массовых операциях в журнале типовая обработка показывает окно результата: сколько объектов изменено, сколько пропущено и по какой причине. Не закрывайте это окно, не прочитав: строки с ошибками (например, документы в закрытом периоде) останутся необработанными, и их придётся разбирать по одному.
Как проверить результат
Выделены именно те строки, которые нужно изменить
Выделение сброшено или захвачены лишние строки
Сумма и количество соответствуют ожиданию
Итог резко изменился или обнулился
Все объекты обработаны без ошибок
Есть пропущенные объекты с указанием причины
Частые вопросы
Почему не работает Ctrl+A в табличной части?
Скорее всего, фокус ввода стоит не в таблице, а в поле поиска, комментарии или шапке документа — тогда выделяется текст поля. Щёлкните по любой строке табличной части и повторите сочетание, либо используйте команду «Ещё → Выделить всё» в командной панели таблицы.
Как выделить строки в 1С на планшете или в веб-клиенте?
В веб-клиенте сочетания Shift и Ctrl работают так же, как в тонком клиенте. На мобильной платформе множественное выделение обычно включается специальной кнопкой режима выбора в командной панели списка, после чего строки отмечаются касанием.
Можно ли выделить строки по условию без программирования?
Да, частично: в журналах и списках настройте отбор (кнопка «Настроить список» или быстрый отбор), чтобы в списке остались только нужные строки, а затем выделите их все. В табличной части документа отбора нет — там помогает только сортировка по колонке, после которой нужные строки окажутся рядом и их можно выделить диапазоном через Shift.
Что делать, если выделение сбрасывается при прокрутке списка?
Это особенность динамических списков при обновлении данных. Отключите автообновление, если оно включено, не нажимайте F5 между выделением и командой, а для больших объёмов используйте отбор плюс групповую обработку вместо ручного выделения.
Как отменить ошибочное групповое изменение строк?
В открытом документе — закройте его без сохранения и откройте заново. Если документ уже записан, штатной отмены нет: восстановите значения вручную, из копии документа или из резервной копии базы. Поэтому перед массовыми операциями полезно делать копию документа.
Почему команда «Изменить выделенные» недоступна?
Проверьте три условия: выделено больше одной строки, у вас есть права на изменение этих объектов, конфигурация поддерживает групповое изменение для данного вида объектов. Также команда не работает для помеченных на удаление элементов и объектов в закрытом периоде.
Что важно запомнить
Shift выделяет диапазон, Ctrl — отдельные строки, Ctrl+A — всю табличную часть при фокусе в ней. Перед групповой операцией проверяйте подсветку и итоги после выполнения. Для массовых изменений в журналах надёжнее отбор плюс штатная обработка, а в коде — свойство ВыделенныеСтроки и метод НайтиСтроки.