Используется для доступа к свойствам, методам и событиям формы клиентского приложения в целом, а также к коллекции ее элементов управления. Доступ к свойствам, методам формы клиентского приложения из ее собственного модуля осуществляется непосредственно, используя их имена (без ссылки на какой-либо объект).
Полное описание, параметры и ограничения
ФормаКлиентскогоПриложения (ClientApplicationForm)
ФормаКлиентскогоПриложения (ClientApplicationForm)
Доступен, начиная с версии 8.2.
Свойства:
<Имя реквизита> (<Attribute name>)
АвтоЗаголовок (AutoTitle)
АвтоматическоеСохранениеДанныхВНастройках (AutoSaveDataInSettings)
АвтоНавигационнаяСсылка (AutoURL)
ВариантМасштаба (ScaleVariant)
ВертикальнаяПрокрутка (VerticalScroll)
ВертикальноеПоложениеПодчиненных (ChildItemsVerticalAlign)
ВертикальныйИнтервал (VerticalSpacing)
ВладелецФормы (FormOwner)
ВыравниваниеЭлементовИЗаголовков (ItemsAndTitlesAlign)
Высота (Height)
ГоризонтальноеПоложениеПодчиненных (ChildItemsHorizontalAlign)
ГоризонтальныйИнтервал (HorizontalSpacing)
Группировка (Group)
Доступность (Enabled)
Заголовок (Title)
ЗаголовокГруппыКнопокСоздания (CreateButtonsGroupTitle)
ЗакрыватьПриВыборе (CloseOnChoice)
ЗакрыватьПриЗакрытииВладельца (CloseOnOwnerClose)
ИмяФормы (FormName)
ИспользуемыйСерверФормы (UsedFormServer)
КартинкаГруппыКнопокСоздания (CreateButtonsGroupPicture)
КлючНазначенияИспользования (PurposeUseKey)
КлючСохраненияПоложенияОкна (WindowOptionsKey)
КлючУникальности (UniqueKey)
КоманднаяПанель (CommandBar)
Команды (Commands)
Масштаб (Scale)
МодальныйРежим (ModalMode)
Модифицированность (Modified)
НавигационнаяСсылка (URL)
Окно (Window)
ОписаниеОповещенияОЗакрытии (CallbackDescriptionOnClose)
ОтображатьЗаголовок (ShowTitle)
ОтображатьКнопкуЗакрытия (ShowCloseButton)
ОтображатьКоманднуюПанель (ShowCommandBar)
ОтображениеОбсуждений (ConversationsRepresentation)
Параметры (Parameters)
ПоведениеКлавишиEnter (EnterKeyBehavior)
ПодчиненныеЭлементы (ChildItems)
ПоложениеЗаголовковПодчиненных (ChildItemsTitleLocation)
ПоложениеКоманднойПанели (CommandBarLocation)
ПроверятьЗаполнениеАвтоматически (AutoFillCheck)
РежимБлокировкиПриОткрытииОкна (OnWindowOpenLockMode)
РежимОткрытияОкна (WindowOpeningMode)
РежимОтображенияОкна (WindowViewMode)
СворачиваниеЭлементовПоВажности (CollapseItemsByImportance)
СоставКоманднойПанелиНаМобильномУстройстве (MobileDeviceCommandBarContent)
СохранениеДанныхВНастройках (SaveDataInSettings)
СохраняемыеВНастройкахДанныеМодифицированы (SavedInSettingsDataModified)
ТекущийЭлемент (CurrentItem)
ТолькоПросмотр (ReadOnly)
УникальныйИдентификатор (UUID)
УсловноеОформление (ConditionalAppearance)
Ширина (Width)
ШиринаПодчиненныхЭлементов (SlaveItemsWidth)
Элементы (Items)
ЭтотОбъект (ThisObject)
Методы:
Активизировать (Activate)
ВводДоступен (IsInputAvailable)
ВыбратьИзМеню (ChooseFromMenu)
ВыбратьИзМенюАсинх (ChooseFromMenuAsync)
ВыбратьИзСписка (ChooseFromList)
ВыбратьИзСпискаАсинх (ChooseFromListAsync)
ВыполнитьПереход (ExecuteNavigation)
ЗаблокироватьДанныеФормыДляРедактирования (LockFormDataForEdit)
Закрыть (Close)
ЗаполнитьПриПереоткрытииСДругогоСервера (FillOnReopenFromOtherServer)
ЗначениеВРеквизитФормы (ValueToFormAttribute)
ИзменитьРеквизиты (ChangeAttributes)
НачатьПолучениеОбсуждения (BeginGetConversation)
НачатьРедактированиеЭлемента (BeginEditingItem)
ОбновитьОтображениеДанных (RefreshDataRepresentation)
ОповеститьОбАктивизации (NotifyActivate)
ОповеститьОВыборе (NotifyChoice)
ОповеститьОЗаписиНового (NotifyWritingNew)
ОтключитьОбработчикОжидания (DetachIdleHandler)
ОтключитьОтметкуНезаполненного (ClearMarkIncomplete)
Открыта (IsOpen)
Открыть (Open)
ОткрытьМодально (DoModal)
ОткрытьСправкуФормы (OpenFormHelp)
ОтобразитьИзменениеДанных (RepresentDataChange)
ПереоткрытьСДругогоСервера (ReopenFromOtherServer)
ПодключитьОбработчикОжидания (AttachIdleHandler)
ПоказатьВыборИзМеню (ShowChooseFromMenu)
ПоказатьВыборИзСписка (ShowChooseFromList)
ПолучитьДействие (GetAction)
ПолучитьПараметрыФункциональныхОпцийФормы (GetFormFunctionalOptionParameters)
ПолучитьРеквизиты (GetAttributes)
ПолучитьФункциональнуюОпциюФормы (GetFormFunctionalOption)
ПроверитьЗаполнение (CheckFilling)
РазблокироватьДанныеФормыДляРедактирования (UnlockFormDataForEdit)
РеквизитФормыВЗначение (FormAttributeToValue)
УстановитьВыполнениеОбработчиковСобытия (SetEventHandlersExecution)
УстановитьВыполнениеПослеОбработчиковСобытия (SetExecutionAfterEventHandlers)
УстановитьДействие (SetAction)
УстановитьПараметрыФункциональныхОпцийФормы (SetFormFunctionalOptionParameters)
События:
АвтоПодборПользователейСистемыВзаимодействия (CollaborationSystemUsersAutoComplete)
ВнешнееСобытие (ExternalEvent)
ОбработкаАктивизации (ActivationProcessing)
ОбработкаВыбора (ChoiceProcessing)
ОбработкаЗаписиНового (NewWriteProcessing)
ОбработкаНавигационнойСсылки (URLProcessing)
ОбработкаОповещения (NotificationProcessing)
ОбработкаПерехода (NavigationProcessing)
ОбработкаПолученияНавигационнойСсылки (URLGetProcessing)
ОбработкаПолученияСпискаНавигационныхСсылок (URLListGetProcessing)
ОбработкаПолученияФормыВыбораПользователейСистемыВзаимодействия (CollaborationSystemUsersChoiceFormGetProcessing)
ОбработкаПроверкиЗаполненияНаСервере (FillCheckProcessingAtServer)
ОтключениеВнешнейКомпонентыПриОшибке (AddInDetachmentOnError)
ПередЗагрузкойДанныхИзНастроекНаСервере (BeforeLoadDataFromSettingsAtServer)
ПередЗакрытием (BeforeClose)
ПередПереоткрытиемСДругогоСервера (BeforeReopenFromOtherServer)
ПриВставкеИзБуфераОбмена (OnPasteFromClipboard)
ПриЗагрузкеДанныхИзНастроекНаСервере (OnLoadDataFromSettingsAtServer)
ПриЗакрытии (OnClose)
ПриИзмененииДоступностиОсновногоСервера (OnMainServerAvailabilityChange)
ПриИзмененииПараметровЭкрана (OnChangeDisplaySettings)
ПриОткрытии (OnOpen)
ПриПереоткрытииСДругогоСервера (OnReopenFromOtherServer)
ПриПовторномОткрытии (OnReopen)
ПриСозданииНаСервере (OnCreateAtServer)
ПриСохраненииДанныхВНастройкахНаСервере (OnSaveDataInSettingsAtServer)
Параметры формы:
ВыборДобавлением (ChoiceByAdding)
ЗакрыватьПриВыборе (CloseOnChoice)
ЗакрыватьПриЗакрытииВладельца (CloseOnOwnerClose)
КлючНазначенияИспользования (PurposeUseKey)
ПараметрыФункциональныхОпций (FunctionalOptionParameters)
ТолькоПросмотр (ReadOnly)
Описание:
Используется для доступа к свойствам, методам и событиям формы клиентского приложения в целом, а также к коллекции ее элементов управления. Доступ к свойствам, методам формы клиентского приложения из ее собственного модуля осуществляется непосредственно, используя их имена (без ссылки на какой-либо объект).
Доступность:
Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.
См. также:
ФормаКлиентскогоПриложения, событие ОбработкаПроверкиЗаполненияНаСервере
ФормаКлиентскогоПриложения, свойство ЭтотОбъект
ТаблицаФормы, событие ОбработкаЗаписиНового
ФормаКлиентскогоПриложения
Использование в версии:
Доступен, начиная с версии 8.2.
Описание изменено в версии 8.5.1.
Методическая информация
Практические примеры
Подготовить учебную кнопку-карточку с читаемым заголовком
Карточка использует собственную фоновую картинку. Эффект фона помогает тексту, но не меняет выполняемую команду.
Где и как запускать
Модуль новой управляемой формы учебной внешней обработки. Код содержит готовые процедуры с директивами; вставляйте на уровне модуля, не внутрь другого обработчика. Каждую задачу запускайте в отдельной копии формы.
Подготовка
В учебной базе: Файл → Новый → Внешняя обработка. Создайте управляемую форму и назначьте её основной. Дайте обработке имя УчебнаяТаблица.
Не добавляйте вручную реквизит Товары и одноимённые элементы: код создаст их при открытии. Модуль формы для этой задачи должен быть пустым.
В свойствах формы → События свяжите ПриСозданииНаСервере с одноимённой процедурой. Сохраните отдельную учебную EPF и откройте через Файл → Открыть.
Данные Книга/Ручка создаются в памяти формы. Справочники, документы и регистры вашей конфигурации не читаются и не записываются.
Кнопка и команда УчебноеДействие создаются программно. Не добавляйте их вручную: имена должны оставаться уникальными.
Проверяйте в установленной платформе 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",
ЭтаФорма.Товары.Количество(), ЭтаФорма.Товары.Итог("Количество")));
КонецПроцедуры
Разбор по шагам
Создаём фон из собственных SVG-байтов, не используем файл или URL.
ОтображатьКакКарточку и ВыравниваниеКартинкиИЗаголовкаКарточки описывают особый вид кнопки.
Полупрозрачность уменьшает влияние фона на читаемость; сама командная логика прежняя.
Проверяйте фактическую карточку в подходящем интерфейсе платформы 8.5; установка свойств не является снимком готового UI.
Как проверить результат
Четыре сравнения Истина: карточка, фоновая картинка, эффект и команда.
Проверьте текст, контраст и щелчок в своей теме: результат команды 2 строки и количество 4.
Ожидаемый результат
Создана конфигурация собственной кнопки-карточки с работающим учебным действием.
На что обратить внимание
При другом интерфейсе или режиме совместимости оформление может отличаться.
Нельзя считать полупрозрачность фона защитой данных или ограничением выполнения команды.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.
Связать команду с текущей строкой своей таблицы
Команда работает с текущей строкой, а не со всеми выделенными строками. Даже при настройке команды обработчик проверяет отсутствие текущих данных.
Где и как запускать
Модуль новой управляемой формы учебной внешней обработки. Код содержит готовые процедуры с директивами; вставляйте на уровне модуля, не внутрь другого обработчика. Каждую задачу запускайте в отдельной копии формы.
Подготовка
В учебной базе: Файл → Новый → Внешняя обработка. Создайте управляемую форму и назначьте её основной. Дайте обработке имя УчебнаяТаблица.
Не добавляйте вручную реквизит Товары и одноимённые элементы: код создаст их при открытии. Модуль формы для этой задачи должен быть пустым.
В свойствах формы → События свяжите ПриСозданииНаСервере с одноимённой процедурой. Сохраните отдельную учебную EPF и откройте через Файл → Открыть.
Данные Книга/Ручка создаются в памяти формы. Справочники, документы и регистры вашей конфигурации не читаются и не записываются.
Кнопка и команда УчебноеДействие создаются программно. Не добавляйте их вручную: имена должны оставаться уникальными.
Проверяйте в установленной платформе 8.5.1.1343. Карточки и современное оформление дополнительно зависят от интерфейса, темы и режима совместимости; свойства не являются доказательством одинакового вида во всех клиентах.
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
НовыеРеквизиты = Новый Массив;
НовыеРеквизиты.Добавить(Новый РеквизитФормы("Товары", Новый ОписаниеТипов("ТаблицаЗначений")));
НовыеРеквизиты.Добавить(Новый РеквизитФормы("Код", Новый ОписаниеТипов("Строка"), "Товары", "Код"));
НовыеРеквизиты.Добавить(Новый РеквизитФормы("Наименование", Новый ОписаниеТипов("Строка"), "Товары", "Название"));
НовыеРеквизиты.Добавить(Новый РеквизитФормы("Количество", Новый ОписаниеТипов("Число",
Новый КвалификаторыЧисла(9, 0, ДопустимыйЗнак.Неотрицательный)), "Товары", "Количество"));
ЭтаФорма.ИзменитьРеквизиты(НовыеРеквизиты);
Данные = Новый ТаблицаЗначений;
Данные.Колонки.Добавить("Код", Новый ОписаниеТипов("Строка"));
Данные.Колонки.Добавить("Наименование", Новый ОписаниеТипов("Строка"));
Данные.Колонки.Добавить("Количество", Новый ОписаниеТипов("Число",
Новый КвалификаторыЧисла(9, 0, ДопустимыйЗнак.Неотрицательный)));
СтрокаТовара = Данные.Добавить();
СтрокаТовара.Код = "A-01";
СтрокаТовара.Наименование = "Книга";
СтрокаТовара.Количество = 3;
СтрокаТовара = Данные.Добавить();
СтрокаТовара.Код = "B-02";
СтрокаТовара.Наименование = "Ручка";
СтрокаТовара.Количество = 1;
ЭтаФорма.ЗначениеВРеквизитФормы(Данные, "Товары");
Таблица = ЭтаФорма.Элементы.Добавить("ТаблицаТоваров", Тип("ТаблицаФормы"));
Таблица.ПутьКДанным = "Товары";
Таблица.Заголовок = "Учебные товары";
Таблица.Шапка = Истина;
Таблица.АвтоВводНезаполненного = Ложь;
Таблица.АвтоВводНовойСтроки = Ложь;
Для Каждого ИмяКолонки Из СтрРазделить("Код,Наименование,Количество", ",") Цикл
Колонка = Элементы.Добавить("Товары" + ИмяКолонки, Тип("ПолеФормы"), Таблица);
Колонка.Вид = ВидПоляФормы.ПолеВвода;
Колонка.ПутьКДанным = "Товары." + ИмяКолонки;
Колонка.Заголовок = ИмяКолонки;
КонецЦикла;
КомандаДействия = ЭтаФорма.Команды.Добавить("УчебноеДействие");
КомандаДействия.Действие = "УчебноеДействие";
КомандаДействия.Заголовок = "Проверить учебное количество";
КомандаДействия.Подсказка = "Действие только над данными учебной формы";
КомандаДействия.ИзменяетСохраняемыеДанные = Ложь;
Кнопка = Элементы.Добавить("КнопкаУчебноеДействие", Тип("КнопкаФормы"));
Кнопка.ИмяКоманды = КомандаДействия.Имя;
Кнопка.Заголовок = КомандаДействия.Заголовок;
КомандаДействия.ИспользуемаяТаблица = Таблица;
КомандаДействия.ИспользованиеТекущейСтроки = ИспользованиеТекущейСтроки.Использует;
КомандаДействия.ИспользованиеВыделенныхСтрок = ИспользованиеТекущейСтроки.НеИспользует;
КомандаДействия.НазначениеДействия = НазначениеДействияКомандыФормы.Обычное;
КомандаДействия.Отображение = ОтображениеКнопки.Текст;
Сообщить(КомандаДействия.ИспользуемаяТаблица = Таблица);
Сообщить(КомандаДействия.ИспользованиеТекущейСтроки = ИспользованиеТекущейСтроки.Использует);
КонецПроцедуры
&НаКлиенте
Процедура УчебноеДействие(Команда)
СтрокаТовара = Элементы.ТаблицаТоваров.ТекущиеДанные;
Если СтрокаТовара = Неопределено Тогда
Сообщить("Сначала выберите строку учебной таблицы");
Возврат;
КонецЕсли;
Сообщить(СтрокаТовара.Код + " / " + Строка(СтрокаТовара.Количество));
КонецПроцедуры
Разбор по шагам
ИспользуемаяТаблица обязана принадлежать той же форме; используем созданную здесь ТаблицаТоваров.
Отдельно задаём использование текущей строки и неиспользование выделенного набора.
В обработчике проверяем ТекущиеДанные на Неопределено, затем читаем код и количество выбранной учебной строки.
Как проверить результат
Два сравнения при создании Истина.
Выберите Книга и нажмите: A-01 / 3; выберите Ручка: B-02 / 1. Без строки обработчик даёт понятное сообщение.
Ожидаемый результат
Команда использует выбранный контекст безопасно и предсказуемо.
На что обратить внимание
Текущая строка и ВыделенныеСтроки не одно и то же.
Настройка доступности команды не заменяет проверку отсутствующих данных в обработчике.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.