Текущая строка в таблицах 1С: мышь, клавиатура, код и отчёты

· 9 мин

Содержание

Чтобы активировать строку в 1С, достаточно один раз щёлкнуть по ней мышью или перейти на неё стрелками ↑/↓. Строка подсветится, и все команды формы («Удалить», «Скопировать», «Подбор», печать) будут работать именно с ней. Двойной щелчок или Enter уже открывает строку на редактирование, а в списке — открывает сам документ или элемент.

Способов три, и выбирают их по ситуации. Пользователю хватает мыши и клавиатуры. Разработчику нужна программная активация через свойство ТекущаяСтрока элемента формы. В отчётах «строка» — это ячейка табличного документа или строка отбора, и активируются они по-своему. Всё ниже — для платформы 8.3 с интерфейсом «Такси»; механизм общий для платформы, поэтому одинаково работает в Бухгалтерии, ЗУП, УТ и других типовых конфигурациях.

Как активировать строку мышью и клавиатурой

Текущая строка в таблице всегда одна. Её отличает цветная подсветка и рамка вокруг активной ячейки. Выделенных строк может быть несколько, но текущая среди них — та, на которой стоит курсор.

Мышью

  • 🖱️ Один щелчок — строка становится текущей, ячейка под курсором получает фокус.
  • 🖱️ Двойной щелчок — в табличной части документа начинается редактирование ячейки, в списке открывается форма объекта.
  • 🖱️ Щелчок с Ctrl — добавляет строку к выделению, не снимая его с остальных (если у таблицы разрешено множественное выделение).
  • 🖱️ Щелчок с Shift — выделяет диапазон от текущей строки до той, по которой щёлкнули.
  • 🖱️ Правая кнопка — делает строку текущей и сразу открывает контекстное меню.

Клавиатурой

КлавишаЧто делает
↑ / ↓Активирует предыдущую или следующую строку
PageUp / PageDownЛистает таблицу на экран вверх или вниз
Home / EndПереход к первой или последней ячейке строки
Ctrl+Home / Ctrl+EndПереход к первой или последней строке таблицы
F2 или EnterНачать редактирование текущей ячейки
InsДобавить новую строку, она сразу станет текущей
F9Скопировать текущую строку, копия станет текущей
DelУдалить текущую строку
Ctrl+FПоиск по таблице: найденная строка становится текущей

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

Активация строк в документах и справочниках

Табличная часть документа

Откройте документ, например «Реализация (акт, накладная, УПД)» в Бухгалтерии. Табличные части — «Товары», «Услуги» — лежат на отдельных закладках.

  1. Перейдите на нужную закладку табличной части.
  2. Щёлкните по строке или встаньте на неё стрелками.
  3. Чтобы изменить значение, щёлкните по нужной колонке и нажмите F2.
  4. После ввода нажмите Enter — редактирование закончится, строка останется текущей.

Кнопки над табличной частью («Добавить», «Подбор», «Вверх», «Вниз», «Удалить») всегда действуют на текущую строку или на выделенные строки. Поэтому перед удалением проверьте, какая строка подсвечена.

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

В списке активная строка — это элемент справочника или документ, на котором стоит курсор. Найти нужный быстрее всего так:

  1. Встаньте в список и начните набирать текст — например, часть наименования контрагента. Платформа сама запустит поиск и переведёт курсор на первую подходящую строку.
  2. Для точного поиска нажмите Ctrl+F, выберите колонку и введите значение.
  3. Если строк тысячи, сначала наложите отбор по периоду или организации — тогда искомая строка окажется на первом экране.

Если закрыть открытый документ, курсор в журнале останется на нём. Это удобно при последовательной проверке: открыл, проверил, закрыл, нажал ↓.

Иерархические справочники

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

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

В управляемой форме за текущую строку отвечают свойства элемента «Таблица формы». Их три, и путать их нельзя.

СвойствоЧто хранитМожно ли присвоить
ТекущаяСтрокаИдентификатор строки (для табличной части) или ссылку/ключ записи (для динамического списка)Да
ТекущиеДанныеДанные текущей строки для чтения полейНет, только чтение
ВыделенныеСтрокиМассив идентификаторов выделенных строкИзменяется через методы массива

Перейти к строке табличной части по условию

Главная ловушка: для табличной части в ТекущаяСтрока записывается не индекс строки, а её идентификатор. Его получают методом ПолучитьИдентификатор().

&НаКлиенте
Процедура ПерейтиКТовару(Команда)

	Отбор = Новый Структура("Номенклатура", НоменклатураДляПоиска);
	НайденныеСтроки = Объект.Товары.НайтиСтроки(Отбор);

	Если НайденныеСтроки.Количество() = 0 Тогда
		ОбщегоНазначенияКлиент.СообщитьПользователю("Строка с таким товаром не найдена");
		Возврат;
	КонецЕсли;

	Элементы.Товары.ТекущаяСтрока = НайденныеСтроки[0].ПолучитьИдентификатор();
	Элементы.Товары.ТекущийЭлемент = Элементы.ТоварыКоличество;
	ТекущийЭлемент = Элементы.Товары;

КонецПроцедуры

Здесь НоменклатураДляПоиска — реквизит формы. Вторая строка с присвоением переводит курсор в колонку «Количество», третья передаёт фокус самой таблице. Без последней строка станет текущей, но клавиатура останется в другом поле. Если сразу нужно начать ввод, добавьте вызов Элементы.Товары.ИзменитьСтроку().

ОбщегоНазначенияКлиент.СообщитьПользователю есть в конфигурациях на БСП. В своей конфигурации без БСП используйте Сообщить().

Встать на нужную строку динамического списка

У списка справочника или журнала ТекущаяСтрока — это ссылка. Поставить курсор можно прямо при открытии формы на сервере:

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

	Если ЗначениеЗаполнено(Параметры.ТекущаяСтрока) Тогда
		Элементы.Список.ТекущаяСтрока = Параметры.ТекущаяСтрока;
	КонецЕсли;

КонецПроцедуры

ТекущаяСтрока — стандартный параметр форм списка и выбора. При открытии формы из кода передайте его в структуре параметров: Новый Структура("ТекущаяСтрока", Ссылка).

Реакция на смену строки

Когда пользователь переходит на другую строку, у таблицы срабатывает событие ПриАктивизацииСтроки. В нём обновляют подсказки, итоги по строке, связанные таблицы.

&НаКлиенте
Процедура ТоварыПриАктивизацииСтроки(Элемент)

	ОтключитьОбработчикОжидания("ОбновитьПодсказкуПоСтроке");
	ПодключитьОбработчикОжидания("ОбновитьПодсказкуПоСтроке", 0.2, Истина);

КонецПроцедуры

&НаКлиенте
Процедура ОбновитьПодсказкуПоСтроке()

	ТекДанные = Элементы.Товары.ТекущиеДанные;
	Если ТекДанные = Неопределено Тогда
		ПодсказкаПоСтроке = "";
		Возврат;
	КонецЕсли;

	ПодсказкаПоСтроке = СтрШаблон("Строка %1: %2 шт.",
		ТекДанные.НомерСтроки, Формат(ТекДанные.Количество, "ЧГ=0"));

КонецПроцедуры

Обработчик ожидания с задержкой 0,2 секунды нужен, чтобы при быстром пролистывании стрелкой код не выполнялся на каждой промелькнувшей строке. Проверка на Неопределено обязательна: в пустой таблице текущей строки нет.

Обычные формы

В толстом клиенте с обычными формами всё проще: ЭлементыФормы.Товары.ТекущаяСтрока принимает саму строку табличной части, а не идентификатор. Код из управляемой формы туда переносить нельзя, и наоборот.

Строки в отчётах и обработках

Ячейка в результате отчёта

Результат отчёта — табличный документ. Активируют в нём не строку, а ячейку или область:

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

Программно ячейку активируют через поле табличного документа на форме:

Элементы.Результат.ТекущаяОбласть = Результат.Область(10, 1, 10, 5);

Такой вызов выделит строку 10 с первой по пятую колонку. Нумерация строк и колонок начинается с единицы.

Строки отбора в настройках отчёта

Здесь «активировать» означает включить. Каждая строка отбора в настройках отчёта имеет флажок слева.

  • ☑️ Флажок установлен — условие участвует в формировании отчёта.
  • ⬜ Флажок снят — условие сохраняется в настройках, но не действует.

Так удобно держать несколько вариантов условий и включать нужный, не набирая его заново. После изменения флажка нажмите «Сформировать».

Табличные части обработок

В обработках вроде группового изменения реквизитов строки часто помечают флажком в первой колонке. Текущая строка и помеченная — разные вещи: обработка выполнит действие над всеми помеченными строками, а не над той, где стоит курсор.

Частые сбои при активации строки и что делать

Диагностика: выберите симптом

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

Как ускорить работу с табличными частями

Большие табличные части на 500–2000 строк — обычное дело для реализаций и инвентаризаций. Несколько приёмов экономят время:

  • ⌨️ Ввод без мыши. Ins — новая строка, ввод значения, Tab — следующая колонка, Enter — конец строки. Руки не уходят с клавиатуры.
  • 📋 Подбор вместо ручного ввода. Кнопка «Подбор» добавляет десятки строк за раз. После закрытия подбора текущей становится последняя добавленная строка.
  • 🔍 Поиск по таблице. В длинной табличной части Ctrl+F по колонке «Номенклатура» быстрее пролистывания.
  • 🔃 Сортировка по колонке. Щелчок по заголовку колонки сортирует строки — одинаковые позиции встанут рядом.
  • 📥 Загрузка из файла. В типовых конфигурациях на БСП над многими табличными частями есть команда загрузки из внешнего файла — ищите её в меню «Ещё».

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

Строки в мобильном приложении 1С

В мобильном клиенте и мобильных приложениях на платформе 1С привычных клавиш нет, поэтому управление другое:

  1. Короткое касание строки делает её текущей или сразу открывает объект — зависит от того, как разработчик настроил форму.
  2. Долгое касание открывает контекстное меню с командами для этой строки.
  3. Прокрутка выполняется жестом, а поиск — через строку поиска над списком.

Программная часть та же: свойства ТекущаяСтрока, ТекущиеДанные и событие ПриАктивизацииСтроки работают так же, как в тонком и веб-клиенте. На небольшом экране таблица с множеством колонок неудобна — разработчики обычно выносят детали текущей строки в отдельную форму.

Права доступа и строки, которые нельзя изменить

Активировать строку можно почти всегда: для этого достаточно права на просмотр. А вот что можно с ней сделать дальше, определяют права и состояние объекта.

СитуацияАктивировать строкуИзменить или удалить
Есть право «Изменение» на объектДаДа
Только право «Просмотр»ДаНет, форма только для чтения
Дата документа раньше даты запрета измененияДаНет, запись будет запрещена
Объект заблокирован другим пользователемДаНет до закрытия формы у другого пользователя

Ограничение доступа на уровне записей скрывает чужие строки в списке целиком. Если коллега видит документ, а вы нет, активировать его не получится — строки просто нет в вашем списке. Это решает администратор базы через группы доступа пользователя.

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

Чем текущая строка отличается от выделенной?
Текущая строка одна — на ней стоит курсор. Выделенных может быть несколько, если таблица разрешает множественное выделение. Групповые команды обычно работают с выделенными строками.
Как выделить все строки табличной части сразу?
Встаньте в таблицу и нажмите Ctrl+A. Сработает, только если у таблицы включено множественное выделение строк.
Почему после перезаполнения табличной части курсор прыгает на первую строку?
При полной перезаписи табличной части строки создаются заново и получают новые идентификаторы. Запомните значение ключевого поля до перезаполнения и найдите строку по нему после.
Что значит «неактивная» запись в движениях документа?
У записей регистров есть признак активности. Неактивные записи хранятся, но не участвуют в остатках и оборотах. Это не связано с текущей строкой в таблице формы.