Таблица

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

Для таблицы определяется массив колонок, каждая из которых:
  • может быть стандартной — экземпляр компонента СтандартнаяКолонкаТаблицы (подробнее);
  • может иметь произвольное содержимое — экземпляр компонента ПроизвольнаяКолонкаТаблицы (подробнее).

Вид колонки

Колонки большинства таблиц приложения — стандартные. Стандартная колонка может быть разных видов. Например, статус задачи в форме списка задач демонстрационного приложения имеет вид значка (Вид = ВидКолонкиТаблицы.Значок).

Описание колонки Статус в файле ЗадачиФормаСписка.yaml:

Колонки:
    -
        Тип: СтандартнаяКолонкаТаблицы<СтрокаДинамическогоСписка>
        Заголовок: $ЛокализованныеСтроки.Статус
        ПолеЗначения: Статус
        Вид: Значок
        Цвет: =((ДанныеСтроки как СтрокаДинамическогоСписка).Данные["Статус"] как СтатусМероприятия).ПолучитьЦвет()

Изображение в колонке

В ячейке стандартной колонки может выводиться изображение, как в колонке Наименование таблицы Стадии сделок.

Описание колонки Наименование в файле СтадииСделокФормаСписка.yaml:

Колонки:
    -
        Тип: СтандартнаяКолонкаТаблицы<СтрокаДинамическогоСписка>
        Заголовок: $ЛокализованныеСтроки.Наименование
        ПолеЗначения: Наименование
        Изображение: =(ДанныеСтроки как СтрокаДинамическогоСписка).Данные["Иконка"] как ДвоичныйОбъект.Ссылка?

Гиперссылка на элемент

Для данных типа Сущность.Ключ надпись в ячейке стандартной колонки по умолчанию принимает вид гиперссылки, как в колонке Клиент списка сделок. Для колонки Направление этого же списка вывод гиперссылки отключен.

Описание колонок Клиент и Направление в файле СделкиФормаСписка.yaml:

Колонки:
    -
        Тип: СтандартнаяКолонкаТаблицы<СтрокаДинамическогоСписка>
        Заголовок: $ЛокализованныеСтроки.Клиент
        ПолеЗначения: Клиент
    -
        Тип: СтандартнаяКолонкаТаблицы<СтрокаДинамическогоСписка>
        Заголовок: $ЛокализованныеСтроки.Направление
        ПолеЗначения: Направление
        ОбрабатыватьНажатие: Ложь

Несколько полей в одной колонке

Колонки с произвольным содержимым можно использовать для того, чтобы в рамках одной колонки выводить данные сразу двух полей, а также использовать произвольное форматирование:

Описание колонок Наименование и Адрес:

Колонки:
    -
        Тип: ПроизвольнаяКолонкаТаблицы<СтрокаДинамическогоСписка>
        ШиринаВКолонках: Одинарная
        ОтключитьСортировку: Истина
        Содержимое:
            Тип: ФиксированнаяГруппа
            ИнтервалМеждуЭлементамиПоВертикали: Половинный
            Содержимое:
                -
                    Тип: Надпись
                    Значение: =ДанныеСтроки.Данные["Наименование"]
                    Важность: Высокая
                    Шрифт: =СтилевыеШрифты.Крупный
                -
                    Тип: Надпись
                    Значение: =ДанныеСтроки.Данные["Адрес"]
                    Важность: Низкая

Источник данных

Источником данных для таблицы может быть как экземпляр системного компонента ДинамическийСписок (подробнее) (как в формах списков клиентов, контактных лиц и др.), так и экземпляр системного компонента ИсточникДанныхМассив (как в форме путеводителя по проекту).

Пример использования компонента ДинамическийСписок в качестве источника данных таблицы в файле КлиентыФормаСписка.yaml:
ВидЭлемента: КомпонентИнтерфейса
Ид: fe8a2a42-9018-4d5c-918e-bf8948c546ea
Имя: КлиентыФормаСписка
ОбластьВидимости: ВПодсистеме
Импорт:
    - Общие
Наследует:
    Тип: ФормаСписка
    КомпонентТаблицы: =Компоненты.ТаблицаСписка
    КомандыСоздания: =Создать
    Содержимое:
        Тип: ПроизвольныйШаблонФормы
        Содержимое:
            Тип: Таблица<ДинамическийСписок>
            ЗамещающийТекстПоляПоиска: '=ЛокализованныеСтроки.ПодсказкаПоляПоискаКлиента()'
            ОтображатьНастройки: Истина
            Имя: ТаблицаСписка

Пример использования компонента ИсточникДанныхМассив в качестве источника данных таблицы в файле ПутеводительПоПроекту.yaml:

ВидЭлемента: КомпонентИнтерфейса
Ид: 5826731a-d110-410b-94c2-1ffef248d7fd
Имя: ПутеводительПоПроекту
ОбластьВидимости: ВПодсистеме
Наследует:
    Тип: Форма
    Заголовок: Путеводитель по проекту
    ПовторноеИспользованиеФормы: Истина
    Содержимое:
        Тип: ПроизвольныйШаблонФормы
        Содержимое:
            Тип: АвтоматическаяГруппа
            Содержимое:
                -
                    Тип: Таблица<ИсточникДанныхМассив<ПутеводительПоПроекту.Раздел>>
                    Имя: СписокРазделов
                    ТолькоЧтение: Истина
                    ВесПриРастягивании: 1
                    РастягиватьПоВертикали: Истина
                    РастягиватьПоГоризонтали: Истина
                    ОтображатьШапку: Ложь
                    ИспользованиеПоиска: Ложь
                    РазмерСтраницы: 20
                    ПриНажатииСтроки: СписокРазделовПриНажатииСтроки

Панель командного интерфейса

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

Команды:
    Тип: ФрагментКомандногоИнтерфейса<Команда>
    Элементы:
        -
            Тип: ОбычнаяКоманда
            Представление: Добавить запись
            Изображение: Плюс.svg
            Обработчик: ПриДобавлении
        -
            Тип: ГруппаКомандногоИнтерфейса<Команда>
            Представление: Группа 2
            Изображение: Зарплата.svg
            ВидОтображения: ГруппаКнопок
            Элементы:
                -
                    Тип: ОбычнаяКоманда
                    Представление: Команда 2.1
                    Обработчик: ПриНажатииКоманды
                -
                    Тип: ОбычнаяКоманда
                    Представление: Команда 2.2
                    Изображение: Корзина.svg
                    Обработчик: ПриНажатииКоманды
                -
                    Тип: ГруппаКомандногоИнтерфейса<Команда>
                    Представление: Группа 2.3
                    Изображение: Настройки.svg
                    ВидОтображения: Подменю
                    Элементы:
                        -
                            Тип: ОбычнаяКоманда
                            Представление: Команда 2.3.1
                            Изображение: Отпуск.svg
                            Обработчик: ПриНажатииКоманды
                        -
                            Тип: ОбычнаяКоманда
                            Представление: Команда 2.3.2
                            Изображение: Отсутствия.svg
                            Обработчик: ПриНажатииКоманды

Редактирование ячеек таблицы

Если в качестве источника данных для таблицы используется ИсточникДанныхМассив, пользователи могут редактировать содержимое ячеек непосредственно в самой таблице.

Возможность редактирования данных в таблице определяется свойствами Доступность и ТолькоЧтение. Если вы хотите запретить пользователям редактировать ячейки таблицы, установите свойство таблицы Доступность равным Ложь, а свойству ТолькоЧтение присвойте значение Истина. Вы также можете запретить редактирование отдельных колонок таблицы. Для этого аналогичным образом задайте свойства Доступность и ТолькоЧтение для нужной колонки.

позволяет вам указать настройки редактирования данных в колонке. Для этого используйте свойство НастройкиРедактирования типа КолонкаТаблицы. Данное свойство может принимать следующие значения:
  • НастройкиРедактированияПоляВвода — задает настройки поля ввода, используемого для редактирования содержимого ячеек. Позволяет вам указать допустимые типы значений, определить настройки для ввода строк, чисел, даты, времени и длительности, добавить выпадающий список значений, включить режим пароля и т. д.
  • НастройкиРедактированияПереключателя — задает настройки переключателя (флажка), используемого для редактирования содержимого ячеек.

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

Тип: Таблица<ИсточникДанныхМассив<Сотрудник>>
Имя: ТаблицаСотрудников
ИспользованиеПоиска: Ложь
Колонки:
    -
        Тип: СтандартнаяКолонкаТаблицы<Сотрудник>
        ПолеЗначения: Код
        НастройкиРедактирования:
            Тип: НастройкиРедактированияПоляВвода
            ВыравниваниеСодержимогоПоГоризонтали: Начало
            ОтображатьКнопкиИзмененияЗначения: Истина
     -
        Тип: СтандартнаяКолонкаТаблицы<Сотрудник>
        Заголовок: Имя
        ПолеЗначения: Наименование
    -
        Тип: СтандартнаяКолонкаТаблицы<Сотрудник>
        ПолеЗначения: ДатаРождения
    -
        Тип: СтандартнаяКолонкаТаблицы<Сотрудник>
        ПолеЗначения: Должность
В качестве источника данных таблица использует ИсточникДанныхМассив<Сотрудник>, где Сотрудник — это структура, определенная следующим образом:
ВидЭлемента: Структура
Ид: f2486e43-d754-4c7f-ace9-9af33cc768f1
Имя: Сотрудник
ОбластьВидимости: ВПодсистеме
Окружение: КлиентИСервер
Поля:
    -
        Имя: Код
        Тип: Число
    -
        Имя: Наименование
        Тип: Строка
    -
        Имя: ДатаРождения
        Тип: Дата?
    -
        Имя: Должность
        Тип: ДолжностьСотрудника?
        # ДолжностьСотрудника — перечисление с элементами
        # «Разработчик», «МенеджерПроектов», «ТехническийПисатель» и «ИнженерПоддержки» 

Горячие клавиши

Для быстрого редактирования данных в таблице пользователи могут использовать горячие клавиши, перечисленные в таблице ниже:

Клавиши Действие
Enter Начать или завершить редактирование ячейки.
Tab
  • Если текущая ячейка в режиме редактирования — завершить редактирование и перейти к редактированию следующей ячейки.
  • Если текущая ячейке не в режиме редактирования — перейти к следующей ячейке.
Пробел Перейти в режим редактирования ячейки с очисткой текущего значения.
Insert Вставить новую строку. При добавлении строки таблица переходит в режим редактирования, а фокус устанавливается на первую доступную для редактирования ячейку, если такая ячейка существует.
Ctrl + Shift + стрелка вверх Переместить строку вверх.
Ctrl + Shift + стрелка вниз Переместить строку вниз.