ТаблицаФормы

Типы · FormTable

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

Полное описание, параметры и ограничения

ТаблицаФормы (FormTable)

ТаблицаФормы (FormTable)

Доступен, начиная с версии 8.2.

Свойства:
АвтоВводНезаполненного (AutoAddIncomplete)
АвтоВводНовойСтроки (AutoInsertNewRow)
АвтоМаксимальнаяВысота (AutoMaxHeight)
АвтоМаксимальнаяВысотаВСтрокахТаблицы (AutoMaxHeightInTableRows)
АвтоМаксимальнаяВысотаКарточки (AutoMaxCardHeight)
АвтоМаксимальнаяШирина (AutoMaxWidth)
АвтоОтметкаНезаполненного (AutoMarkIncomplete)
АктивизироватьПоУмолчанию (DefaultItem)
ВажностьПриОтображении (DisplayImportance)
ВариантУправленияВысотой (HeightControlVariant)
ВертикальнаяПолосаПрокрутки (VerticalScrollBar)
ВертикальноеПоложениеВГруппе (VerticalAlignInGroup)
ВертикальныеЛинии (VerticalLines)
Видимость (Visible)
ВидТаблицыНаМобильномУстройстве (MobileDeviceTableType)
Вывод (Output)
ВыделенныеСтроки (SelectedRows)
Высота (Height)
ВысотаВСтрокахТаблицы (HeightInTableRows)
ВысотаЗаголовка (TitleHeight)
ВысотаПодвала (FooterHeight)
ВысотаШапки (HeaderHeight)
ГоризонтальнаяПолосаПрокрутки (HorizontalScrollBar)
ГоризонтальноеПоложениеВГруппе (HorizontalAlignInGroup)
ГоризонтальныеЛинии (HorizontalLines)
Доступность (Enabled)
Заголовок (Title)
ЗапросОбновления (RefreshRequest)
ИзменятьПорядокСтрок (ChangeRowOrder)
ИзменятьСоставСтрок (ChangeRowSet)
Имя (Name)
ИспользованиеТекущейСтроки (CurrentRowUse)
КартинкаСтрок (RowsPicture)
КлючСохраненияЦветовЗначков (IconColorsSaveKey)
КлючСохраненияЦветовФигур (ShapeColorsSaveKey)
КоманднаяПанель (CommandBar)
КонтекстноеМеню (ContextMenu)
МаксимальнаяВысота (MaxHeight)
МаксимальнаяВысотаВСтрокахТаблицы (MaxHeightInTableRows)
МаксимальнаяВысотаКарточки (MaxCardHeight)
МаксимальнаяШирина (MaxWidth)
МножественныйВыбор (MultipleChoice)
НачальнаяАктивизацияСтроки (InitialRowActivation)
НачальноеОтображениеДерева (InitialTreeView)
НачальноеОтображениеСписка (InitialListView)
ОписаниеПалитрыЦветовЗначков (IconColorPaletteDescription)
ОписаниеПалитрыЦветовФигур (ShapeColorPaletteDescription)
ОтметкаНезаполненного (MarkIncomplete)
ОтметкаОбязательногоЗаполнения (MarkRequiredComplete)
ОтображатьКоманднуюПанель (ShowCommandBar)
Отображение (Representation)
ОтображениеГиперссылокЯчеек (CellHyperlinksRepresentation)
ОтображениеПодсказки (ToolTipRepresentation)
ОтображениеСостоянияПросмотра (ViewStatusRepresentation)
ОтображениеСтрокиПоиска (SearchStringRepresentation)
ПоведениеКарточкиПриСжатииПоВертикали (CardBehaviorOnVerticalCompression)
ПоведениеПриНедоступностиОсновногоСервера (OnMainServerUnavalableBehavior)
ПоведениеПриСжатииПоГоризонтали (BehaviorOnHorizontalCompression)
Подвал (Footer)
Подсказка (ToolTip)
ПодчиненныеЭлементы (ChildItems)
ПоискПриВводе (SearchOnInput)
ПоложениеЗаголовка (TitleLocation)
ПоложениеКоманднойПанели (CommandBarLocation)
ПоложениеПанелиИерархии (HierarchyPanelLocation)
ПоложениеСостоянияПросмотра (ViewStatusLocation)
ПоложениеСтрокиПоиска (SearchStringLocation)
ПоложениеУправленияПоиском (SearchControlLocation)
ПропускатьПриВводе (SkipOnInput)
ПутьКДанным (DataPath)
ПутьКДаннымКартинкиСтроки (RowPictureDataPath)
РазрешитьНачалоПеретаскивания (EnableStartDrag)
РазрешитьПеретаскивание (EnableDrag)
РастягиватьПоВертикали (VerticalStretch)
РастягиватьПоГоризонтали (HorizontalStretch)
РасширеннаяПодсказка (ExtendedTooltip)
РежимВводаСтрок (RowInputMode)
РежимВыбора (ChoiceMode)
РежимВыделения (SelectionMode)
РежимВыделенияСтроки (RowSelectionMode)
Родитель (Parent)
СохранениеЦветов (SaveColors)
СочетаниеКлавиш (Shortcut)
СпособПеретаскиванияФайлов (FileDragMode)
ТекущаяСтрока (CurrentRow)
ТекущиеДанные (CurrentData)
ТекущийРодитель (CurrentParent)
ТекущийЭлемент (CurrentItem)
ТипОтображенияДействийСтроки (RowActionsShowType)
ТолькоПросмотр (ReadOnly)
УправлениеПоиском (SearchControl)
ЦветРамки (BorderColor)
ЦветТекста (TextColor)
ЦветТекстаЗаголовка (TitleTextColor)
ЦветФона (BackColor)
ЧередованиеЦветовСтрок (UseAlternationRowColor)
Шапка (Header)
Ширина (Width)
Шрифт (Font)
ШрифтЗаголовка (TitleFont)

Методы:
ДанныеСтроки (RowData)
ДобавитьСтроку (AddRow)
ЗакончитьРедактированиеСтроки (EndEditRow)
ИзменитьСтроку (ChangeRow)
Обновить (Refresh)
ПолучитьДействие (GetAction)
ПолучитьСтрокиДляОбработки (GetRowsForProcessing)
ПроверитьСтроку (CheckRow)
Развернут (Expanded)
Развернуть (Expand)
Свернуть (Collapse)
СкопироватьСтроку (CopyRow)
УстановитьДействие (SetAction)

События:
Выбор (Selection)
ВыборЗначения (ValueChoice)
НачалоПеретаскивания (DragStart)
ОбработкаВыбора (ChoiceProcessing)
ОбработкаЗаписиНового (NewWriteProcessing)
ОбработкаЗапросаОбновления (RefreshRequestProcessing)
ОкончаниеПеретаскивания (DragEnd)
ПередНачаломДобавления (BeforeAddRow)
ПередНачаломИзменения (BeforeRowChange)
ПередОкончаниемРедактирования (BeforeEditEnd)
ПередРазворачиванием (BeforeExpand)
ПередСворачиванием (BeforeCollapse)
ПередУдалением (BeforeDeleteRow)
Перетаскивание (Drag)
ПослеУдаления (AfterDeleteRow)
ПриАктивизацииПоля (OnActivateField)
ПриАктивизацииСтроки (OnActivateRow)
ПриАктивизацииЯчейки (OnActivateCell)
ПриИзменении (OnChange)
ПриИзмененииСоставаВыделенныхСтрок (OnSelectedRowsSetChange)
ПриНаведении (OnHover)
ПриНачалеРедактирования (OnStartEdit)
ПриОкончанииРедактирования (OnEditEnd)
ПриСменеТекущегоРодителя (OnCurrentParentChange)
ПроверкаПеретаскивания (DragCheck)

Описание:

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

Доступность:

Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.

Использование в версии:

Доступен, начиная с версии 8.2.

Описание изменено в версии 8.5.1.

Методическая информация

Практические примеры

Подготовить учебную кнопку-карточку с читаемым заголовком

Карточка использует собственную фоновую картинку. Эффект фона помогает тексту, но не меняет выполняемую команду.

Где и как запускать

Модуль новой управляемой формы учебной внешней обработки. Код содержит готовые процедуры с директивами; вставляйте на уровне модуля, не внутрь другого обработчика. Каждую задачу запускайте в отдельной копии формы.

Подготовка

  1. В учебной базе: Файл → Новый → Внешняя обработка. Создайте управляемую форму и назначьте её основной. Дайте обработке имя УчебнаяТаблица.

  2. Не добавляйте вручную реквизит Товары и одноимённые элементы: код создаст их при открытии. Модуль формы для этой задачи должен быть пустым.

  3. В свойствах формы → События свяжите ПриСозданииНаСервере с одноимённой процедурой. Сохраните отдельную учебную EPF и откройте через Файл → Открыть.

  4. Данные Книга/Ручка создаются в памяти формы. Справочники, документы и регистры вашей конфигурации не читаются и не записываются.

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

  6. Проверяйте в установленной платформе 8.5.1.1343. Карточки и современное оформление дополнительно зависят от интерфейса, темы и режима совместимости; свойства не являются доказательством одинакового вида во всех клиентах.


&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    НовыеРеквизиты = Новый Массив;
    НовыеРеквизиты.Добавить(Новый РеквизитФормы("Товары", Новый ОписаниеТипов("ТаблицаЗначений")));
    НовыеРеквизиты.Добавить(Новый РеквизитФормы("Код", Новый ОписаниеТипов("Строка"), "Товары", "Код"));
    НовыеРеквизиты.Добавить(Новый РеквизитФормы("Наименование", Новый ОписаниеТипов("Строка"), "Товары", "Название"));
    НовыеРеквизиты.Добавить(Новый РеквизитФормы("Количество", Новый ОписаниеТипов("Число",
        Новый КвалификаторыЧисла(9, 0, ДопустимыйЗнак.Неотрицательный)), "Товары", "Количество"));
    ЭтаФорма.ИзменитьРеквизиты(НовыеРеквизиты);
    Данные = Новый ТаблицаЗначений;
    Данные.Колонки.Добавить("Код", Новый ОписаниеТипов("Строка"));
    Данные.Колонки.Добавить("Наименование", Новый ОписаниеТипов("Строка"));
    Данные.Колонки.Добавить("Количество", Новый ОписаниеТипов("Число",
        Новый КвалификаторыЧисла(9, 0, ДопустимыйЗнак.Неотрицательный)));

    СтрокаТовара = Данные.Добавить();
    СтрокаТовара.Код = "A-01";
    СтрокаТовара.Наименование = "Книга";
    СтрокаТовара.Количество = 3;
    СтрокаТовара = Данные.Добавить();
    СтрокаТовара.Код = "B-02";
    СтрокаТовара.Наименование = "Ручка";
    СтрокаТовара.Количество = 1;

    ЭтаФорма.ЗначениеВРеквизитФормы(Данные, "Товары");
    Таблица = ЭтаФорма.Элементы.Добавить("ТаблицаТоваров", Тип("ТаблицаФормы"));
    Таблица.ПутьКДанным = "Товары";
    Таблица.Заголовок = "Учебные товары";
    Таблица.Шапка = Истина;
    Таблица.АвтоВводНезаполненного = Ложь;
    Таблица.АвтоВводНовойСтроки = Ложь;
    Для Каждого ИмяКолонки Из СтрРазделить("Код,Наименование,Количество", ",") Цикл
        Колонка = Элементы.Добавить("Товары" + ИмяКолонки, Тип("ПолеФормы"), Таблица);
        Колонка.Вид = ВидПоляФормы.ПолеВвода;
        Колонка.ПутьКДанным = "Товары." + ИмяКолонки;
        Колонка.Заголовок = ИмяКолонки;
    КонецЦикла;
    КомандаДействия = ЭтаФорма.Команды.Добавить("УчебноеДействие");
    КомандаДействия.Действие = "УчебноеДействие";
    КомандаДействия.Заголовок = "Проверить учебное количество";
    КомандаДействия.Подсказка = "Действие только над данными учебной формы";
    КомандаДействия.ИзменяетСохраняемыеДанные = Ложь;
    Кнопка = Элементы.Добавить("КнопкаУчебноеДействие", Тип("КнопкаФормы"));
    Кнопка.ИмяКоманды = КомандаДействия.Имя;
    Кнопка.Заголовок = КомандаДействия.Заголовок;
    SVG = "<svg xmlns=""http://www.w3.org/2000/svg"" width=""32"" height=""32"" viewBox=""0 0 32 32""><rect width=""32"" height=""32"" rx=""6"" fill=""#146e32""/><path d=""M8 16l5 5 11-12"" fill=""none"" stroke=""white"" stroke-width=""3""/></svg>";
    Байты = ПолучитьДвоичныеДанныеИзСтроки(SVG, КодировкаТекста.UTF8, Ложь);
    УчебнаяКартинка = Новый Картинка(Байты);
    Кнопка.ОтображатьКакКарточку = Истина;
    Кнопка.ФоноваяКартинка = УчебнаяКартинка;
    Кнопка.ЭффектОтображенияФоновойКартинки = ЭффектОтображенияКартинки.Полупрозрачность;
    Кнопка.ВыравниваниеКартинкиИЗаголовкаКарточки = ВариантВыравниванияКартинкиИЗаголовкаКарточки.ГоризонтальноЦентрВертикальноЦентр;
    Кнопка.Заголовок = "Проверить учебные товары";
    Кнопка.Ширина = 32;
    Кнопка.Высота = 4;
    Сообщить(Кнопка.ОтображатьКакКарточку);
    Сообщить(ТипЗнч(Кнопка.ФоноваяКартинка) = Тип("Картинка"));
    Сообщить(Кнопка.ЭффектОтображенияФоновойКартинки = ЭффектОтображенияКартинки.Полупрозрачность);
    Сообщить(Кнопка.ИмяКоманды = "УчебноеДействие");
КонецПроцедуры
&НаКлиенте
Процедура УчебноеДействие(Команда)
    Сообщить(СтрШаблон("Учебных строк: %1; общее количество: %2",
        ЭтаФорма.Товары.Количество(), ЭтаФорма.Товары.Итог("Количество")));
КонецПроцедуры

Разбор по шагам

  1. Создаём фон из собственных SVG-байтов, не используем файл или URL.

  2. ОтображатьКакКарточку и ВыравниваниеКартинкиИЗаголовкаКарточки описывают особый вид кнопки.

  3. Полупрозрачность уменьшает влияние фона на читаемость; сама командная логика прежняя.

  4. Проверяйте фактическую карточку в подходящем интерфейсе платформы 8.5; установка свойств не является снимком готового UI.

Как проверить результат

  1. Четыре сравнения Истина: карточка, фоновая картинка, эффект и команда.

  2. Проверьте текст, контраст и щелчок в своей теме: результат команды 2 строки и количество 4.

Ожидаемый результат

Создана конфигурация собственной кнопки-карточки с работающим учебным действием.

На что обратить внимание

  1. При другом интерфейсе или режиме совместимости оформление может отличаться.

  2. Нельзя считать полупрозрачность фона защитой данных или ограничением выполнения команды.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Связать команду с текущей строкой своей таблицы

Команда работает с текущей строкой, а не со всеми выделенными строками. Даже при настройке команды обработчик проверяет отсутствие текущих данных.

Где и как запускать

Модуль новой управляемой формы учебной внешней обработки. Код содержит готовые процедуры с директивами; вставляйте на уровне модуля, не внутрь другого обработчика. Каждую задачу запускайте в отдельной копии формы.

Подготовка

  1. В учебной базе: Файл → Новый → Внешняя обработка. Создайте управляемую форму и назначьте её основной. Дайте обработке имя УчебнаяТаблица.

  2. Не добавляйте вручную реквизит Товары и одноимённые элементы: код создаст их при открытии. Модуль формы для этой задачи должен быть пустым.

  3. В свойствах формы → События свяжите ПриСозданииНаСервере с одноимённой процедурой. Сохраните отдельную учебную EPF и откройте через Файл → Открыть.

  4. Данные Книга/Ручка создаются в памяти формы. Справочники, документы и регистры вашей конфигурации не читаются и не записываются.

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

  6. Проверяйте в установленной платформе 8.5.1.1343. Карточки и современное оформление дополнительно зависят от интерфейса, темы и режима совместимости; свойства не являются доказательством одинакового вида во всех клиентах.


&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    НовыеРеквизиты = Новый Массив;
    НовыеРеквизиты.Добавить(Новый РеквизитФормы("Товары", Новый ОписаниеТипов("ТаблицаЗначений")));
    НовыеРеквизиты.Добавить(Новый РеквизитФормы("Код", Новый ОписаниеТипов("Строка"), "Товары", "Код"));
    НовыеРеквизиты.Добавить(Новый РеквизитФормы("Наименование", Новый ОписаниеТипов("Строка"), "Товары", "Название"));
    НовыеРеквизиты.Добавить(Новый РеквизитФормы("Количество", Новый ОписаниеТипов("Число",
        Новый КвалификаторыЧисла(9, 0, ДопустимыйЗнак.Неотрицательный)), "Товары", "Количество"));
    ЭтаФорма.ИзменитьРеквизиты(НовыеРеквизиты);
    Данные = Новый ТаблицаЗначений;
    Данные.Колонки.Добавить("Код", Новый ОписаниеТипов("Строка"));
    Данные.Колонки.Добавить("Наименование", Новый ОписаниеТипов("Строка"));
    Данные.Колонки.Добавить("Количество", Новый ОписаниеТипов("Число",
        Новый КвалификаторыЧисла(9, 0, ДопустимыйЗнак.Неотрицательный)));

    СтрокаТовара = Данные.Добавить();
    СтрокаТовара.Код = "A-01";
    СтрокаТовара.Наименование = "Книга";
    СтрокаТовара.Количество = 3;
    СтрокаТовара = Данные.Добавить();
    СтрокаТовара.Код = "B-02";
    СтрокаТовара.Наименование = "Ручка";
    СтрокаТовара.Количество = 1;

    ЭтаФорма.ЗначениеВРеквизитФормы(Данные, "Товары");
    Таблица = ЭтаФорма.Элементы.Добавить("ТаблицаТоваров", Тип("ТаблицаФормы"));
    Таблица.ПутьКДанным = "Товары";
    Таблица.Заголовок = "Учебные товары";
    Таблица.Шапка = Истина;
    Таблица.АвтоВводНезаполненного = Ложь;
    Таблица.АвтоВводНовойСтроки = Ложь;
    Для Каждого ИмяКолонки Из СтрРазделить("Код,Наименование,Количество", ",") Цикл
        Колонка = Элементы.Добавить("Товары" + ИмяКолонки, Тип("ПолеФормы"), Таблица);
        Колонка.Вид = ВидПоляФормы.ПолеВвода;
        Колонка.ПутьКДанным = "Товары." + ИмяКолонки;
        Колонка.Заголовок = ИмяКолонки;
    КонецЦикла;
    КомандаДействия = ЭтаФорма.Команды.Добавить("УчебноеДействие");
    КомандаДействия.Действие = "УчебноеДействие";
    КомандаДействия.Заголовок = "Проверить учебное количество";
    КомандаДействия.Подсказка = "Действие только над данными учебной формы";
    КомандаДействия.ИзменяетСохраняемыеДанные = Ложь;
    Кнопка = Элементы.Добавить("КнопкаУчебноеДействие", Тип("КнопкаФормы"));
    Кнопка.ИмяКоманды = КомандаДействия.Имя;
    Кнопка.Заголовок = КомандаДействия.Заголовок;
    КомандаДействия.ИспользуемаяТаблица = Таблица;
    КомандаДействия.ИспользованиеТекущейСтроки = ИспользованиеТекущейСтроки.Использует;
    КомандаДействия.ИспользованиеВыделенныхСтрок = ИспользованиеТекущейСтроки.НеИспользует;
    КомандаДействия.НазначениеДействия = НазначениеДействияКомандыФормы.Обычное;
    КомандаДействия.Отображение = ОтображениеКнопки.Текст;
    Сообщить(КомандаДействия.ИспользуемаяТаблица = Таблица);
    Сообщить(КомандаДействия.ИспользованиеТекущейСтроки = ИспользованиеТекущейСтроки.Использует);
КонецПроцедуры
&НаКлиенте
Процедура УчебноеДействие(Команда)
    СтрокаТовара = Элементы.ТаблицаТоваров.ТекущиеДанные;
    Если СтрокаТовара = Неопределено Тогда
        Сообщить("Сначала выберите строку учебной таблицы");
        Возврат;
    КонецЕсли;
    Сообщить(СтрокаТовара.Код + " / " + Строка(СтрокаТовара.Количество));
КонецПроцедуры

Разбор по шагам

  1. ИспользуемаяТаблица обязана принадлежать той же форме; используем созданную здесь ТаблицаТоваров.

  2. Отдельно задаём использование текущей строки и неиспользование выделенного набора.

  3. В обработчике проверяем ТекущиеДанные на Неопределено, затем читаем код и количество выбранной учебной строки.

Как проверить результат

  1. Два сравнения при создании Истина.

  2. Выберите Книга и нажмите: A-01 / 3; выберите Ручка: B-02 / 1. Без строки обработчик даёт понятное сообщение.

Ожидаемый результат

Команда использует выбранный контекст безопасно и предсказуемо.

На что обратить внимание

  1. Текущая строка и ВыделенныеСтроки не одно и то же.

  2. Настройка доступности команды не заменяет проверку отсутствующих данных в обработчике.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.