Сначала устанавливаем собственную область, затем явно передаём пустой массив. Это не очистка документа и не удаление строк.
Где и как запускать
Модуль новой управляемой формы учебной внешней обработки. Код содержит готовые процедуры с директивами; вставляйте на уровне модуля, не внутрь другого обработчика. Каждую задачу запускайте в отдельной копии формы.
Подготовка
Создайте отдельную внешнюю обработку с новой пустой управляемой основной формой в учебной базе. ПриСозданииНаСервере назначьте одноимённой процедуре.
Вставьте полный модуль на уровне модуля формы. УчебныйДокумент, УчебноеПолеТаблицы и кнопку вручную не создавайте: их добавляет код.
Каждый урок — отдельная копия формы. Таблица содержит только собственную Книгу (3) и Ручку (1); это не печатная форма рабочего документа.
Настольный тонкий/толстый или веб-клиент. Для урока очистки выделения выберите интерфейс Версия 8.5: его поведение выделения отдельно отмечено в справке.
Код не вызывает печать, сохранение файла, сетевой обмен или запись базы. Внешняя кнопка остаётся вне табличного поля и его состояния.
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Новые = Новый Массив;
Новые.Добавить(Новый РеквизитФормы("УчебныйДокумент", Новый ОписаниеТипов("ТабличныйДокумент")));
ЭтаФорма.ИзменитьРеквизиты(Новые);
Документ = Новый ТабличныйДокумент;
Документ.Область(1, 1).Текст = "Товар";
Документ.Область(1, 2).Текст = "Количество";
Документ.Область(2, 1).Текст = "Книга";
Документ.Область(3, 1).Текст = "Ручка";
Для НомерСтроки = 2 По 3 Цикл
Ячейка = Документ.Область(НомерСтроки, 2);
Ячейка.СодержитЗначение = Истина;
Ячейка.ТипЗначения = Новый ОписаниеТипов("Число");
Если НомерСтроки = 2 Тогда
Ячейка.Значение = 3;
Иначе
Ячейка.Значение = 1;
КонецЕсли;
КонецЦикла;
Документ.Область(, 1, , 1).ШиринаКолонки = 25;
Документ.Область(, 2, , 2).ШиринаКолонки = 12;
Документ.Область(2, 1, 3, 2).Имя = "УчебныеТовары";
Документ.ТолькоПросмотр = Истина;
ЭтаФорма.УчебныйДокумент = Документ;
Поле = Элементы.Добавить("УчебноеПолеТаблицы", Тип("ПолеФормы"));
Поле.Вид = ВидПоляФормы.ПолеТабличногоДокумента;
Поле.ПутьКДанным = "УчебныйДокумент";
Поле.Редактирование = Ложь;
Поле.РазрешитьНачалоПеретаскивания = Ложь;
Поле.РазрешитьПеретаскивание = Ложь;
КомандаДействия = ЭтаФорма.Команды.Добавить("УчебноеДействие");
КомандаДействия.Действие = "УчебноеДействие";
КомандаДействия.Заголовок = "Проверить свою таблицу";
КомандаДействия.Подсказка = "Действие только над данными учебной формы";
КомандаДействия.ИзменяетСохраняемыеДанные = Ложь;
Кнопка = Элементы.Добавить("КнопкаУчебноеДействие", Тип("КнопкаФормы"));
Кнопка.ИмяКоманды = КомандаДействия.Имя;
Кнопка.Заголовок = КомандаДействия.Заголовок;
КонецПроцедуры
&НаКлиенте
Процедура УчебноеДействие(Команда)
Поле = Элементы.УчебноеПолеТаблицы;
Области = Новый Массив;
Области.Добавить(ЭтаФорма.УчебныйДокумент.Область(2, 1, 3, 2));
Поле.УстановитьВыделенныеОбласти(Области);
ДоОчистки = Поле.ПолучитьВыделенныеОбласти();
Сообщить(ДоОчистки.Количество() > 0);
Поле.УстановитьВыделенныеОбласти(Новый Массив);
ПослеОчистки = Поле.ПолучитьВыделенныеОбласти();
Сообщить(ПослеОчистки.Количество() = 0);
Сообщить(ЭтаФорма.УчебныйДокумент.ВысотаТаблицы = 3);
Сообщить(ЭтаФорма.УчебныйДокумент.Область(2, 2).Значение = 3);
Сообщить(ЭтаФорма.УчебныйДокумент.Область(3, 2).Значение = 1);
КонецПроцедурыРазбор по шагам
Сначала создаётся непустое выделение одной своей области, чтобы очистка имела проверяемый эффект.
Пустой массив передаётся явно, аргумент не опускается. Справка отдельно обещает пустое текущее выделение в интерфейсе Версия8_5.
Массив повторно считывается после изменения. Документ не получает вызов Очистить.
В другом интерфейсе не выдавайте второе сравнение за универсальную гарантию: этот урок требует Версия 8.5.
Как проверить результат
В интерфейсе Версия 8.5: пять Истина. Документ всё ещё содержит три строки и количества 3/1.
Повторное нажатие опять сначала создаёт, потом убирает своё выделение.
Ожидаемый результат
Показана очистка состояния выбора, не данных.
На что обратить внимание
Это интерфейсное отличие 8.5, не общий контракт для всех старых клиентов.
Нет обращения к [0] после получения пустого массива.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.