Тип: Булево. Разрешает или запрещает выбор нескольких строк из списка. Истина - разрешено.
Полное описание, параметры и ограничения
ТаблицаФормы.МножественныйВыбор (FormTable.MultipleChoice)
ТаблицаФормы (FormTable)
МножественныйВыбор (MultipleChoice)
Доступен, начиная с версии 8.2.
Использование:
Чтение и запись.
Описание:
Тип: Булево.
Разрешает или запрещает выбор нескольких строк из списка.
Истина - разрешено.
Доступность:
Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.
Использование в версии:
Доступен, начиная с версии 8.2.
Методическая информация
Практические примеры
Показывать ссылку названия всегда или при наведении на строку
В собственной таблице включаем современное ОтображениеГиперссылкиЯчейки.Отображать и отдельно меняем ВариантОтображенияГиперссылкиЯчейки. Событие Выбор читает строку из локального реквизита и показывает карточку внутри той же формы.
Где и как запускать
Полный модуль общей управляемой формы УчебныеЯчейкиТаблицы85. Собственный пустой стенд 8.5.1.1343, интерфейс Версия 8.5, тонкий или толстый клиент Windows. Три строки ТаблицаЗначений представлены данными формы; заполнение и связывание события на сервере, выбор и режим ссылки на клиенте.
Подготовка
Создайте отдельную новую пустую учебную базу платформы 8.5.1.1343. Имя конфигурации в корне дерева — УчебнаяКонфигурацияЯчеек85, язык встроенного языка Русский, ОсновнойРежимЗапуска=УправляемоеПриложение, режим совместимости Не использовать.
В свойствах корня конфигурации задайте РежимСовместимостиИнтерфейса=Версия8_5. Это точное имя метаданных и значение нативного перечисления, а не свойство ОсновнойИнтерфейс. У значения Версия8_5 пользовательское переключение режима недоступно. Обновите только свой учебный стенд и запустите тонкий или толстый управляемый клиент Windows.
В Общие → Общие формы создайте управляемую форму УчебныеЯчейкиТаблицы85. Для каждого урока используйте отдельную копию формы или отдельный пустой стенд и только полный модуль выбранного урока. Не объединяйте модули двух уроков.
В форме создайте реквизит Книги с типом ТаблицаЗначений. Под ним создайте колонки Название типа Строка длиной 100, Количество типа Число длиной 6 с точностью 0, Статус типа Строка длиной 50. Эти имена обязательно совпадают с кодом. Таблица не связана со справочниками, документами, регистрами или внешними данными.
Перетащите Книги на форму как таблицу с тремя колонками. Саму таблицу назовите ТаблицаКниг, ПутьКДанным=Книги. Имена её полей-колонок задайте КнигиНазвание, КнигиКоличество, КнигиСтатус; пути соответственно Книги.Название, Книги.Количество, Книги.Статус. Заголовки — Название, Количество, Статус.
Создайте строковый реквизит СостояниеУрока длиной 300 и поле ввода ПолеСостоянияУрока с ПутьКДанным=СостояниеУрока, ТолькоПросмотр=Истина. АвтоматическоеСохранениеДанныхВНастройках формы оставьте НеИспользовать. На форме только локальные несохраняемые учебные данные.
Событие ПриСозданииНаСервере назначьте одноимённой процедуре полного модуля. Сервер создаёт в реквизите формы ровно три строки: Книга/3/Доступно, Тетрадь/4/Проверить, Блокнот/0/Ожидается. Пользователь не должен вводить или загружать строки: таблица переводится в ТолькоПросмотр и МножественныйВыбор=Ложь.
Для запуска создайте общую команду ОткрытьУчебныеЯчейки85 без параметра и включите её в командный интерфейс собственной учебной подсистемы УчебныеЯчейки85. Полный модуль команды:
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
ОткрытьФорму("ОбщаяФорма.УчебныеЯчейкиТаблицы85");
КонецПроцедуры
Разрешите эти собственные метаданные в учебной роли и выполните команду в своём учебном разделе.Код только читает активный интерфейс через ТекущийВариантИнтерфейсаКлиентскогоПриложения() и отказывается от опыта при другом варианте. Он не изменяет настройки интерфейса текущего сеанса, пользователя или рабочей базы.
Запуск в 1С не выполнялся. Нативная сверка типов, сигнатур, перечислений и контекстов — статическая проверка. Видимые ссылки, наведение, круги и овалы требуют ручного выполнения на указанном стенде с его активной темой и масштабом.
Создайте в форме строковый реквизит КарточкаКниги длиной 300 и поле ПолеКарточкиКниги с ПутьКДанным=КарточкаКниги, ТолькоПросмотр=Истина. Оно выводит только название, количество и статус выбранной строки локальной таблицы.
Создайте команду ПереключитьПоказСсылки, действие — одноимённая клиентская процедура, ИзменяетСохраняемыеДанные=Ложь. Разместите её кнопку с заголовком Переключить показ ссылки. Другие команды этого урока не нужны.
Событие Выбор таблицы вручную не назначайте второму обработчику: ПриСозданииНаСервере устанавливает его через УстановитьДействие("Выбор", "ПоказатьКарточкуПоВыбору"). Колонке Название явно назначается singular ОтображениеГиперссылкиЯчейки.Отображать; plural свойство таблицы ОтображениеГиперссылокЯчеек код не меняет.
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если ТекущийВариантИнтерфейсаКлиентскогоПриложения() <> ВариантИнтерфейсаКлиентскогоПриложения.Версия8_5 Тогда
ВызватьИсключение "Урок требует интерфейс Версия 8.5; настройте свой учебный стенд";
КонецЕсли;
ЭтаФорма.Книги.Очистить();
ДобавитьСвоюКнигу("Книга", 3, "Доступно");
ДобавитьСвоюКнигу("Тетрадь", 4, "Проверить");
ДобавитьСвоюКнигу("Блокнот", 0, "Ожидается");
Элементы.ТаблицаКниг.ТолькоПросмотр = Истина;
Элементы.ТаблицаКниг.МножественныйВыбор = Ложь;
Элементы.КнигиНазвание.ОтображениеГиперссылкиЯчейки = ОтображениеГиперссылкиЯчейки.Отображать;
Элементы.КнигиНазвание.ВариантОтображенияГиперссылкиЯчейки = ВариантОтображенияГиперссылкиЯчейки.Всегда;
Элементы.ТаблицаКниг.УстановитьДействие("Выбор", "ПоказатьКарточкуПоВыбору");
ЭтаФорма.КарточкаКниги = "";
ЭтаФорма.СостояниеУрока = "Ссылка названия: всегда. Выберите название клавишей Enter или двойным щелчком";
КонецПроцедуры
&НаСервере
Процедура ДобавитьСвоюКнигу(Знач Название, Знач Количество, Знач Статус)
НоваяКнига = ЭтаФорма.Книги.Добавить();
НоваяКнига.Название = Название;
НоваяКнига.Количество = Количество;
НоваяКнига.Статус = Статус;
КонецПроцедуры
&НаКлиенте
Процедура ПереключитьПоказСсылки(Команда)
ДоПереключения = СигнатураСвоихКниг();
Если Элементы.КнигиНазвание.ВариантОтображенияГиперссылкиЯчейки = ВариантОтображенияГиперссылкиЯчейки.Всегда Тогда
Элементы.КнигиНазвание.ВариантОтображенияГиперссылкиЯчейки = ВариантОтображенияГиперссылкиЯчейки.ПриНаведенииНаСтроку;
ЭтаФорма.СостояниеУрока = "Ссылка названия: при наведении на строку";
Иначе
Элементы.КнигиНазвание.ВариантОтображенияГиперссылкиЯчейки = ВариантОтображенияГиперссылкиЯчейки.Всегда;
ЭтаФорма.СостояниеУрока = "Ссылка названия: всегда";
КонецЕсли;
Если СигнатураСвоихКниг() <> ДоПереключения Тогда
ВызватьИсключение "Переключение вида ссылки изменило локальные данные";
КонецЕсли;
ЭтаФорма.СостояниеУрока = ЭтаФорма.СостояниеУрока + ". Значения трёх книг не изменились";
КонецПроцедуры
&НаКлиенте
Процедура ПоказатьКарточкуПоВыбору(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Если Поле <> Элементы.КнигиНазвание Тогда
Возврат;
КонецЕсли;
Если ВыбраннаяСтрока = Неопределено Тогда
ЭтаФорма.КарточкаКниги = "Нет собственной выбранной строки";
Возврат;
КонецЕсли;
Книга = Элемент.ДанныеСтроки(ВыбраннаяСтрока);
Если Книга = Неопределено Тогда
ЭтаФорма.КарточкаКниги = "Данные собственной строки недоступны";
Возврат;
КонецЕсли;
Если ТипЗнч(Книга) <> Тип("ДанныеФормыЭлементКоллекции") Тогда
ВызватьИсключение "В таблице должны быть собственные строки реквизита Книги";
КонецЕсли;
ЭтаФорма.КарточкаКниги = СтрШаблон("%1. Количество: %2. Статус: %3", Книга.Название, Книга.Количество, Книга.Статус);
КонецПроцедуры
&НаКлиенте
Функция СигнатураСвоихКниг()
Значения = Новый Массив;
Для Каждого Книга Из ЭтаФорма.Книги Цикл
Значения.Добавить(СтрШаблон("%1=%2=%3", Книга.Название, Книга.Количество, Книга.Статус));
КонецЦикла;
Возврат СтрСоединить(Значения, ";");
КонецФункции
Разбор по шагам
Откройте собственную форму. Сервер проверяет имя стенда и текущий интерфейс Версия8_5, создаёт три локальные строки и делает таблицу доступной только для просмотра.
У колонки КнигиНазвание задаётся ОтображениеГиперссылкиЯчейки=Отображать. Это наличие ссылки. ВариантОтображенияГиперссылкиЯчейки=Всегда отвечает за то, в каком состоянии строки она видна; два перечисления имеют разные имена и назначение.
В начальном состоянии название должно выглядеть как ссылка независимо от положения курсора. Зафиксируйте наблюдение на активной теме своего клиента; статический тест не подтверждает внешний вид.
Нажмите Переключить показ ссылки. Теперь ПриНаведенииНаСтроку: выведите курсор из таблицы, затем наведите на каждую строку. Сравните отображение названия до наведения и на наведённой строке.
Установите активную ячейку Название у Тетрадь и нажмите Enter либо выполните двойной щелчок. Эти действия вызывают событие Выбор по нативному описанию таблицы. Одиночный щелчок по визуальной ссылке проверяйте отдельно: урок не приписывает новому свойству гарантию такого события.
Поле события должно быть именно КнигиНазвание. ВыбраннаяСтрока передаётся в Элемент.ДанныеСтроки без предположения о числовом индексе или типе ключа. После проверки Неопределено и типа строки карточка получает данные Тетрадь/4/Проверить.
Повторите выбор названия Блокнот: карточка должна показать количество 0 и Ожидается. Выбор в колонке Количество или Статус пропускается; предыдущая карточка сохраняется.
Переключите показ обратно на Всегда. В обеих командах сравниваются сигнатуры трёх строк до и после изменения свойства; текст состояния сообщает сохранность значений только после этого сравнения. Закройте свою форму после опыта.
Как проверить результат
При Enter/двойном щелчке на названии Тетрадь: Тетрадь. Количество: 4. Статус: Проверить. Для Блокнот: Блокнот. Количество: 0. Статус: Ожидается. Никакой навигационный URL, документ или другая форма не открываются.
После переключения СостояниеУрока показывает соответствующий режим и фразу Значения трёх книг не изменились. Количество строк и значения Книга/3, Тетрадь/4, Блокнот/0 остаются прежними.
Ручная визуальная проверка различает Всегда и ПриНаведенииНаСтроку на активном интерфейсе Версия 8.5. Если вид не меняется, зафиксируйте результат, тему и режим; успех статических тестов не заменяет эту проверку.
Ожидаемый результат
Наличие гиперссылки колонки и её вид при наведении настроены разными современными свойствами. Выбор проходит документированный маршрут таблица → реальные данные локальной строки → собственная карточка в той же форме.
На что обратить внимание
ВариантОтображенияГиперссылкиЯчейки применяется только в интерфейсе Версия 8.5. Не выдавайте настройку свойства в другом интерфейсе за проверку его видимого эффекта.
ОтображениеГиперссылкиЯчейки — singular свойство поля с enum Авто/НеОтображать/Отображать. ОтображениеГиперссылокЯчеек — plural свойство таблицы с другим enum. Его Авто для обычной локальной таблицы трактуется как НеОтображать; здесь колонка получает явное Отображать.
ГиперссылкаЯчейки не рекомендуется с 8.5.1. Урок использует современное свойство ОтображениеГиперссылкиЯчейки и не смешивает его с историческим булевым флагом.
Нативное описание Выбор гарантирует событие при Enter/двойном щелчке. ВариантОтображенияГиперссылкиЯчейки описывает вид ссылки, не произвольную команду или переход в интернет. Поведение одиночного щелчка требует отдельного ручного наблюдения.
ДанныеСтроки доступен на клиенте, а УстановитьДействие таблицы — на сервере. Идентификатор ВыбраннаяСтрока не равен номеру строки массива; код не передаёт его в Получить(индекс).
СтандартнаяОбработка=Ложь не отменяет уже возникшее действие события; она отключает стандартную обработку, чтобы пример не пытался редактировать локальные данные. Видимый результат и срабатывание UI требуют собственного запуска в 1С.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.
Переключить отметку статуса: текст, круг и овальная фигура
ОтметкаЯчейки меняет оформление собственной колонки Статус. Цикл Нет → ЗначокКруг → ФигураПодТекстомОвальная возвращает исходный вид; данные трёх локальных книг проверяются до и после переключения.
Где и как запускать
Полный модуль общей управляемой формы УчебныеЯчейкиТаблицы85. Собственный пустой стенд 8.5.1.1343, интерфейс Версия 8.5, тонкий или толстый клиент Windows. Сервер создаёт ровно три локальные строки; клиентская команда меняет только отметку колонки Статус.
Подготовка
Создайте отдельную новую пустую учебную базу платформы 8.5.1.1343. Имя конфигурации в корне дерева — УчебнаяКонфигурацияЯчеек85, язык встроенного языка Русский, ОсновнойРежимЗапуска=УправляемоеПриложение, режим совместимости Не использовать.
В свойствах корня конфигурации задайте РежимСовместимостиИнтерфейса=Версия8_5. Это точное имя метаданных и значение нативного перечисления, а не свойство ОсновнойИнтерфейс. У значения Версия8_5 пользовательское переключение режима недоступно. Обновите только свой учебный стенд и запустите тонкий или толстый управляемый клиент Windows.
В Общие → Общие формы создайте управляемую форму УчебныеЯчейкиТаблицы85. Для каждого урока используйте отдельную копию формы или отдельный пустой стенд и только полный модуль выбранного урока. Не объединяйте модули двух уроков.
В форме создайте реквизит Книги с типом ТаблицаЗначений. Под ним создайте колонки Название типа Строка длиной 100, Количество типа Число длиной 6 с точностью 0, Статус типа Строка длиной 50. Эти имена обязательно совпадают с кодом. Таблица не связана со справочниками, документами, регистрами или внешними данными.
Перетащите Книги на форму как таблицу с тремя колонками. Саму таблицу назовите ТаблицаКниг, ПутьКДанным=Книги. Имена её полей-колонок задайте КнигиНазвание, КнигиКоличество, КнигиСтатус; пути соответственно Книги.Название, Книги.Количество, Книги.Статус. Заголовки — Название, Количество, Статус.
Создайте строковый реквизит СостояниеУрока длиной 300 и поле ввода ПолеСостоянияУрока с ПутьКДанным=СостояниеУрока, ТолькоПросмотр=Истина. АвтоматическоеСохранениеДанныхВНастройках формы оставьте НеИспользовать. На форме только локальные несохраняемые учебные данные.
Событие ПриСозданииНаСервере назначьте одноимённой процедуре полного модуля. Сервер создаёт в реквизите формы ровно три строки: Книга/3/Доступно, Тетрадь/4/Проверить, Блокнот/0/Ожидается. Пользователь не должен вводить или загружать строки: таблица переводится в ТолькоПросмотр и МножественныйВыбор=Ложь.
Для запуска создайте общую команду ОткрытьУчебныеЯчейки85 без параметра и включите её в командный интерфейс собственной учебной подсистемы УчебныеЯчейки85. Полный модуль команды:
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
ОткрытьФорму("ОбщаяФорма.УчебныеЯчейкиТаблицы85");
КонецПроцедуры
Разрешите эти собственные метаданные в учебной роли и выполните команду в своём учебном разделе.Код только читает активный интерфейс через ТекущийВариантИнтерфейсаКлиентскогоПриложения() и отказывается от опыта при другом варианте. Он не изменяет настройки интерфейса текущего сеанса, пользователя или рабочей базы.
Запуск в 1С не выполнялся. Нативная сверка типов, сигнатур, перечислений и контекстов — статическая проверка. Видимые ссылки, наведение, круги и овалы требуют ручного выполнения на указанном стенде с его активной темой и масштабом.
Создайте команду ПереключитьОтметку, действие — одноимённая клиентская процедура, ИзменяетСохраняемыеДанные=Ложь. Разместите кнопку с заголовком Переключить отметку. Реквизит КарточкаКниги и обработчик Выбор этому уроку не нужны; не добавляйте их.
У колонки КнигиСтатус оставьте обычное текстовое поле без картинки и без условного оформления. Сервер задаёт ей ОтметкаЯчейки=Нет. Цветовую палитру значков и фигур пользовательских настроек не меняйте: урок проверяет только тип отметки и сохранность текста.
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если ТекущийВариантИнтерфейсаКлиентскогоПриложения() <> ВариантИнтерфейсаКлиентскогоПриложения.Версия8_5 Тогда
ВызватьИсключение "Урок требует интерфейс Версия 8.5; настройте свой учебный стенд";
КонецЕсли;
ЭтаФорма.Книги.Очистить();
ДобавитьСвоюКнигу("Книга", 3, "Доступно");
ДобавитьСвоюКнигу("Тетрадь", 4, "Проверить");
ДобавитьСвоюКнигу("Блокнот", 0, "Ожидается");
Элементы.ТаблицаКниг.ТолькоПросмотр = Истина;
Элементы.ТаблицаКниг.МножественныйВыбор = Ложь;
Элементы.КнигиСтатус.ОтметкаЯчейки = ТипОтметкиЯчейкиТаблицы.Нет;
ЭтаФорма.СостояниеУрока = "Отметка статуса: нет. Нажмите Переключить отметку";
КонецПроцедуры
&НаСервере
Процедура ДобавитьСвоюКнигу(Знач Название, Знач Количество, Знач Статус)
НоваяКнига = ЭтаФорма.Книги.Добавить();
НоваяКнига.Название = Название;
НоваяКнига.Количество = Количество;
НоваяКнига.Статус = Статус;
КонецПроцедуры
&НаКлиенте
Процедура ПереключитьОтметку(Команда)
ДоПереключения = СигнатураСвоихКниг();
Если Элементы.КнигиСтатус.ОтметкаЯчейки = ТипОтметкиЯчейкиТаблицы.Нет Тогда
Элементы.КнигиСтатус.ОтметкаЯчейки = ТипОтметкиЯчейкиТаблицы.ЗначокКруг;
ЭтаФорма.СостояниеУрока = "Отметка статуса: круг слева от текста";
ИначеЕсли Элементы.КнигиСтатус.ОтметкаЯчейки = ТипОтметкиЯчейкиТаблицы.ЗначокКруг Тогда
Элементы.КнигиСтатус.ОтметкаЯчейки = ТипОтметкиЯчейкиТаблицы.ФигураПодТекстомОвальная;
ЭтаФорма.СостояниеУрока = "Отметка статуса: овальная фигура под текстом";
Иначе
Элементы.КнигиСтатус.ОтметкаЯчейки = ТипОтметкиЯчейкиТаблицы.Нет;
ЭтаФорма.СостояниеУрока = "Отметка статуса: нет";
КонецЕсли;
Если СигнатураСвоихКниг() <> ДоПереключения Тогда
ВызватьИсключение "Переключение отметки изменило локальные данные";
КонецЕсли;
ЭтаФорма.СостояниеУрока = ЭтаФорма.СостояниеУрока + ". Значения трёх книг не изменились";
КонецПроцедуры
&НаКлиенте
Функция СигнатураСвоихКниг()
Значения = Новый Массив;
Для Каждого Книга Из ЭтаФорма.Книги Цикл
Значения.Добавить(СтрШаблон("%1=%2=%3", Книга.Название, Книга.Количество, Книга.Статус));
КонецЦикла;
Возврат СтрСоединить(Значения, ";");
КонецФункции
Разбор по шагам
Откройте собственную форму. В колонке Статус показаны Доступно, Проверить и Ожидается. Начальное значение ОтметкаЯчейки — Нет, поэтому отдельной отметки быть не должно.
Нажмите Переключить отметку первый раз. Клиент читает текущий тип отметки и устанавливает ЗначокКруг. Согласно нативной справке круг отображается слева от текста.
Проверьте все три строки: свойство задано колонке, поэтому отметка применяется ко всем её ячейкам. Оно не выбирает только статус Проверить и не является условием отбора.
Нажмите кнопку второй раз. ФигураПодТекстомОвальная меняет фон у текста на овальную фигуру. Текст статуса должен остаться тем же, включая Ожидается у Блокнот с количеством 0.
Нажмите кнопку третий раз. Устанавливается Нет, цикл возвращает обычный текстовый вид. Повторите ещё один цикл, чтобы проверить отсутствие накопления изменений данных.
В каждом переключении сигнатура собственных названий, количеств и статусов сравнивается до и после изменения свойства. Фраза Значения трёх книг не изменились появляется только после реального сравнения в коде.
Сопоставьте показанные в форме типы отметок с видимым результатом на своей активной теме и масштабе. Если круг или овал не появились, сообщите этот результат: тип установленного свойства не доказывает работу отрисовки.
Закройте собственную форму. Значения и оформление были только в памяти экземпляра; системное хранилище, файлы, печать и предметные записи не использовались.
Как проверить результат
Текст состояния идёт по циклу круг слева от текста → овальная фигура под текстом → нет. В таблице вручную проверяются соответствующие три внешних вида на интерфейсе Версия 8.5.
Во всех состояниях сохраняются Книга/3/Доступно, Тетрадь/4/Проверить, Блокнот/0/Ожидается. Сообщение о сохранности данных зависит от сравнения сигнатур и не выводится после исключения.
Установка отметки колонки не превращает статусы в Булево, не добавляет флажок выбора, не меняет количество и не скрывает строки. Три локальные строки остаются доступными только для просмотра.
Ожидаемый результат
Тип отметки собственной колонки переключается по трём нативным значениям и возвращается к исходному. Оформление отделено от локальных значений статуса и количества; визуальный результат проверяется вручную.
На что обратить внимание
ОтметкаЯчейки — не Пометка строки и не признак проведения документа. Свойство принимает ТипОтметкиЯчейкиТаблицы, а не Булево или произвольную строку.
Нативные имена — Нет, ЗначокКруг и ФигураПодТекстомОвальная. Значения Круг или Овал без этих точных имён в перечислении отсутствуют.
Свойство колонки применяется ко всем её ячейкам. Для разных отметок или цветов по статусам нужен отдельный сценарий условного оформления; данный модуль его не включает.
Цвет и фактическая геометрия зависят от темы, масштаба и отрисовки клиента. Урок не утверждает точные пиксели, цветовую семантику статусов или проверенное отображение.
Программное переключение свойства и сравнение строк не являются испытанием интерфейса. Для подтверждения круга и овала запустите урок самостоятельно на подготовленном стенде; здесь 1С не запускалась.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.