Тип: КомандаКомандногоИнтерфейса. Содержит сам объект. Используется для передачи в качестве параметра.
Полное описание, параметры и ограничения
КомандаКомандногоИнтерфейса.ЭтотОбъект (CommandInterfaceCommand.ThisObject)
КомандаКомандногоИнтерфейса (CommandInterfaceCommand)
ЭтотОбъект (ThisObject)
Доступен, начиная с версии 8.3.3.
Использование:
Только чтение.
Описание:
Тип: КомандаКомандногоИнтерфейса.
Содержит сам объект. Используется для передачи в качестве параметра.
Доступность:
Тонкий клиент, веб-клиент, толстый клиент.
Использование в версии:
Доступен, начиная с версии 8.3.3.
Методическая информация
Практические примеры
Общая команда и ее ЭтотОбъект: ввод количества 2/3, предпросмотр 500/750
Научиться передавать настоящий модуль общей команды в ОписаниеОповещения и получать результат диалога без записи исходного счета.
Где и как запускать
Windows 8.5.1.1343, тонкий клиент, управляемое приложение Такси, собственная File CF. Модуль общей команды клиентский; native command2 и callback2.
Подготовка
Это самостоятельный будущий ручной опыт, а не запуск здесь. Создайте новую собственную файловую базу C:\1c-labs\OwnCommandCallbackInvoice2_8e8407f0-5212-4dd6-a9f5-85e2d5591983\IB. Нужна платформа Windows 8.5.1.1343, тонкий клиент и интерфейс Такси. Не используйте рабочую базу, другие сеансы, расширения или фоновые задания.
В Конфигураторе назовите конфигурацию УчебнаяКомандаСчета85. Основной режим запуска — УправляемоеПриложение; совместимость — НеИспользовать, язык — Русский. Создайте только собственные форму, общую команду, подсистему, общий модуль и роль, перечисленные ниже. Справочники, документы, отчеты, обработки и сервисы здесь не нужны.
Создайте роль УчебнаяПолная85 с полными правами только этой учебной базы, включая Администрирование. Создайте единственного пользователя УченикКоманды85 и назначьте роль. ПолучитьПользователей требует административных прав; проверка имени роли не доказывает ее содержание. Не меняйте чужие права, пароли или настройки.
Общие → Общие формы → Действия → Добавить: создайте управляемую форму Счет85. Реквизиты ИсходноеКоличество85/КоличествоПредпросмотра85 — Число 1.0, Цена85/ИсходнаяСумма85/Предпросмотр85 — Число 9.0, Шаг85 — Число 9.0; Готово85/Занят85/Остановка85 — Булево. Основного реквизита-объекта, параметров, табличных частей и команд формы нет.
На форму перетащите пять числовых реквизитов: ИсходноеКоличество85, Цена85, ИсходнаяСумма85, КоличествоПредпросмотра85, Предпросмотр85. Имена полей должны совпадать с реквизитами, ПутьКДанным — одноименный реквизит, ТолькоПросмотр — Истина. Флаги и Шаг85 оставьте служебными. Связи читает сервер формы; клиент не использует придуманное свойство Значение элемента.
В свойствах формы свяжите настоящее ПриСозданииНаСервере с одноименной процедурой из полного FORM, два параметра Отказ/СтандартнаяОбработка. Вставьте FORM целиком в Общие → Общие формы → Счет85 → Модуль. Экспортные клиентские методы здесь вызываются программой, но событие создания вручную не вызывается.
Общие → Общие команды → Действия → Добавить: ВвестиКоличество85, синоним Ввести количество. Не задавайте параметр команды, ИзменяетДанные — Нет. В выборе свойства Группа укажите Панель действий → Сервис. Без указанной группы общая команда не появляется в глобальном командном интерфейсе.
Вставьте COMMAND целиком в Общие → Общие команды → ВвестиКоличество85 → Модуль. Точная точка входа — ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды), клиентская директива обязательна. Именно это имя объявлено на странице события CommandProcessing563 и используется в прочитанных модулях общих команд УНФ и УТ11. Общая языковая страница содержит другое имя ОбработатьКоманду(), но не доказывает, что такой псевдоним вызывает платформа. Не создавайте команду формы или второй обработчик и не вызывайте событие из кода.
Общие → Подсистемы → Действия → Добавить: УчебныйСчет85, синоним Учебный счет. На Основные включите Включать в командный интерфейс и выключите Подсистема с одной командой. На Состав включите Общие команды → ВвестиКоличество85.
В редакторе своей подсистемы на Прочее нажмите Командный интерфейс, либо откройте одноименное свойство по ссылке Открыть. В Панель действий → Сервис найдите ВвестиКоличество85, включите общую Видимость и видимость роли УчебнаяПолная85. Другой штатный путь — контекстное меню Общие → Подсистемы → Все подсистемы, затем своя подсистема → Открыть командный интерфейс. Меню и видимость здесь документированы, но фактическое отображение не проверено.
Общие → Общие модули: УчебнаяКомандаСчетаСервер85. Сервер и Вызов сервера — Да; оба клиентских флага, Внешнее соединение, Глобальный и Привилегированный — Нет; повторное использование возвращаемых значений — НеИспользовать. Вставьте полный COMMON. В модуль управляемого приложения вставьте полный APPLICATION. В сервер передаются только обычные вызовы без формы, команды или описания оповещения.
Обновите конфигурацию только собственной базы и запустите ее тонким клиентом под УченикКоманды85. Настоящий ПриНачалеРаботыСистемы получает новую уникальную форму и открывает ее: исходное количество 2, цена 250, исходная сумма и предпросмотр 500. Открыть — процедура, не булевый результат; отдельно читается фактическое Открыта().
В собственном разделе Учебный счет выполните Ввести количество. В настоящем диалоге введите 3 и подтвердите: предпросмотр должен стать 750, исходные 2/250/500 — остаться. ЭтотОбъект получен из реального модуля команды и передан в ОписаниеОповещения как получатель, а не создан конструктором.
Для отдельного опыта отмены начните новый собственный сеанс с 500, выполните команду и нажмите Отмена. Callback получает Неопределено и оставляет предпросмотр 500. Если отменять после уже принятого 750, сохраняется прежний предпросмотр 750, а не обещанный сброс. Количество 2 дает 500; неизвестное число, повтор чужого уведомления или изменение снимка — отказ.
Один запрос допускает одно завершение. Занят и возрастающий Шаг85 сохраняются в форме; полный фиксированный снимок из девяти скаляров проверяется перед принятием. Собственная ссылка формы остается только на клиенте в дополнительных параметрах уведомления, не пересылается серверу. После ошибки сохраняется STOP; автоматического повтора, закрытия формы или отката нет.
Здесь не выполнялись компиляция, запуск 1С, доставка событий, диалог ввода, нажатие команды или отображение чисел. Код сравнивает типы, связи и числовые данные, но не доказывает пиксели. При неработающем UI проверьте только свой стенд вручную; не имитируйте вызов callback.
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
ФормаСчета = Неопределено;
Попытка
ФормаСчета = ЭтотОбъект.ПроверитьКонтекст85();
Если ПараметрКоманды <> Неопределено
Или ТипЗнч(ПараметрыВыполненияКоманды) <> Тип("ПараметрыВыполненияКоманды") Тогда
ВызватьИсключение "Используйте только собственную общую команду без параметра";
КонецЕсли;
СнимокЗапроса = ФормаСчета.НачатьВвод85();
ДополнительныеПараметры = Новый ФиксированнаяСтруктура("Форма,Снимок", ФормаСчета, СнимокЗапроса);
Оповещение = Новый ОписаниеОповещения("ПослеВводаКоличества85", ЭтотОбъект, ДополнительныеПараметры);
Если ТипЗнч(Оповещение.Модуль) <> Тип("КомандаКомандногоИнтерфейса") Тогда
ВызватьИсключение "Получатель уведомления должен быть настоящим модулем общей команды";
КонецЕсли;
ПоказатьВводЧисла(Оповещение, 2, "Введите 2 или 3. Цена равна 250; изменяется только предпросмотр", 1, 0);
Исключение
Если ФормаСчета <> Неопределено Тогда
ФормаСчета.ОстановитьВвод85();
КонецЕсли;
ВызватьИсключение;
КонецПопытки;
КонецПроцедуры
&НаКлиенте
Функция ПроверитьКонтекст85() Экспорт
Если ТипЗнч(ЭтотОбъект) <> Тип("КомандаКомандногоИнтерфейса") Тогда
ВызватьИсключение "ЭтотОбъект здесь получается только в модуле общей команды";
КонецЕсли;
ФормаСчета = ПолучитьСвоюФормуКоманды85();
ФормаСчета.ПроверитьИсточник85();
Возврат ФормаСчета;
КонецФункции
&НаКлиенте
Процедура ПослеВводаКоличества85(Количество, ДополнительныеПараметры) Экспорт
ФормаСчета = Неопределено;
Попытка
ФормаСчета = ЭтотОбъект.ПроверитьКонтекст85();
Если ТипЗнч(ДополнительныеПараметры) <> Тип("ФиксированнаяСтруктура")
Или ДополнительныеПараметры.Количество() <> 2
Или Не ДополнительныеПараметры.Свойство("Форма", ПереданнаяФорма)
Или Не ДополнительныеПараметры.Свойство("Снимок", СнимокЗапроса)
Или ТипЗнч(ПереданнаяФорма) <> Тип("ФормаКлиентскогоПриложения")
Или ПереданнаяФорма <> ФормаСчета Тогда
ВызватьИсключение "Уведомление не относится к этой собственной форме";
КонецЕсли;
ФормаСчета.ЗавершитьВвод85(Количество, СнимокЗапроса);
Исключение
Если ФормаСчета <> Неопределено Тогда
ФормаСчета.ОстановитьВвод85();
КонецЕсли;
ВызватьИсключение;
КонецПопытки;
КонецПроцедурыПолный серверный модуль: проверить только свой учебный стенд
Своя CF → Общие → Общие модули → УчебнаяКомандаСчетаСервер85 → Модуль целиком
Сервер/Вызов сервераДа, все клиентские флагиНет, без привилегий/повторного использования. Только readonly проверки.
Процедура ПроверитьСтенд85() Экспорт
Если СтрокаСоединенияИнформационнойБазы() <> "File=""C:\1c-labs\OwnCommandCallbackInvoice2_8e8407f0-5212-4dd6-a9f5-85e2d5591983\IB"";" Или Метаданные.ОсновнойРежимЗапуска <> РежимЗапускаКлиентскогоПриложения.УправляемоеПриложение Или Метаданные.РежимСовместимости <> Метаданные.СвойстваОбъектов.РежимСовместимости.НеИспользовать Тогда
ВызватьИсключение "Откройте только собственную подготовленную файловую базу 8.5.1.1343";
КонецЕсли;
Если Метаданные.ОбщиеФормы.Количество() <> 1 Или Метаданные.ОбщиеКоманды.Количество() <> 1
Или Метаданные.Подсистемы.Количество() <> 1 Или Метаданные.ОбщиеМодули.Количество() <> 1
Или Метаданные.Роли.Количество() <> 1 Или Метаданные.Справочники.Количество() <> 0
Или Метаданные.Документы.Количество() <> 0 Или Метаданные.Обработки.Количество() <> 0
Или Метаданные.Отчеты.Количество() <> 0 Или Метаданные.РегламентныеЗадания.Количество() <> 0
Или Метаданные.ПодпискиНаСобытия.Количество() <> 0 Или Метаданные.HTTPСервисы.Количество() <> 0
Или Метаданные.WebСервисы.Количество() <> 0 Тогда
ВызватьИсключение "В стенде нужны только свои форма, команда, подсистема, модуль и роль";
КонецЕсли;
Если Метаданные.ОбщиеФормы.Найти("Счет85") = Неопределено
Или Метаданные.ОбщиеМодули.Найти("УчебнаяКомандаСчетаСервер85") = Неопределено
Или Метаданные.Роли.Найти("УчебнаяПолная85") = Неопределено Тогда
ВызватьИсключение "Не совпадает подготовленная форма, серверный модуль или роль";
КонецЕсли;
КомандаСтенда = Метаданные.ОбщиеКоманды.Найти("ВвестиКоличество85");
ПодсистемаСтенда = Метаданные.Подсистемы.Найти("УчебныйСчет85");
Если КомандаСтенда = Неопределено Или ПодсистемаСтенда = Неопределено Тогда
ВызватьИсключение "Не найдены собственные общая команда и подсистема";
КонецЕсли;
Если КомандаСтенда.ИзменяетДанные Или Не ПодсистемаСтенда.ВключатьВКомандныйИнтерфейс
Или ПодсистемаСтенда.ИспользоватьОднуКоманду Тогда
ВызватьИсключение "Команда не должна записывать данные или запускаться автоматически при выборе подсистемы";
КонецЕсли;
Пользователь = ПользователиИнформационнойБазы.ТекущийПользователь();
Если Пользователь = Неопределено Или ПользователиИнформационнойБазы.ПолучитьПользователей().Количество() <> 1 Тогда
ВызватьИсключение "Нужен один собственный пользователь с административными правами учебной базы";
КонецЕсли;
Если Пользователь.Имя <> "УченикКоманды85" Тогда
ВызватьИсключение "Это не пользователь собственного учебного стенда";
КонецЕсли;
КонецПроцедурыПолный модуль приложения: реальное открытие своей уникальной формы
Своя CF → Модуль управляемого приложения целиком
Тонкий клиент Windows; настоящее событие запуска0 и собственное клиентское состояние приложения.
Перем СвояФормаКоманды85, ГотовоПриложение85, ОстановкаПриложение85;
Процедура ПриНачалеРаботыСистемы()
Если ГотовоПриложение85 <> Неопределено Или ОстановкаПриложение85 <> Неопределено Тогда
ВызватьИсключение "Запуск уже обрабатывался; STOP не сбрасывается повторным событием";
КонецЕсли;
ГотовоПриложение85 = Ложь;
ОстановкаПриложение85 = Ложь;
Попытка
УчебнаяКомандаСчетаСервер85.ПроверитьСтенд85();
Кандидат = ПолучитьФорму("ОбщаяФорма.Счет85", , , Истина);
Если Кандидат = Неопределено Или ТипЗнч(Кандидат) <> Тип("ФормаКлиентскогоПриложения") Тогда
ВызватьИсключение "Фабрика не создала собственную управляемую форму";
КонецЕсли;
Если Кандидат.ВладелецФормы <> Неопределено Или Кандидат.Открыта() Тогда
ВызватьИсключение "Нужна новая самостоятельная форма без владельца";
КонецЕсли;
ДоОткрытия = Кандидат.Снимок85();
Если ДоОткрытия.Предпросмотр <> 500 Или ДоОткрытия.Шаг <> 0 Тогда
ВызватьИсключение "Новый счет должен начинаться с 500 без запроса ввода";
КонецЕсли;
Кандидат.Открыть();
Если Не Кандидат.Открыта() Тогда
ВызватьИсключение "Собственная форма не подтверждена как открытая";
КонецЕсли;
Кандидат.СравнитьСнимок85(ДоОткрытия);
СвояФормаКоманды85 = Кандидат;
ГотовоПриложение85 = Истина;
Исключение
ОстановкаПриложение85 = Истина;
ВызватьИсключение;
КонецПопытки;
КонецПроцедуры
Функция ПолучитьСвоюФормуКоманды85() Экспорт
Если ГотовоПриложение85 <> Истина Или ОстановкаПриложение85 <> Ложь Тогда
ВызватьИсключение "Собственная форма не готова или приложение остановлено после ошибки";
КонецЕсли;
Если ТипЗнч(СвояФормаКоманды85) <> Тип("ФормаКлиентскогоПриложения") Тогда
ОстановкаПриложение85 = Истина;
ВызватьИсключение "Потеряна собственная форма";
КонецЕсли;
Если Не СвояФормаКоманды85.Открыта() Или СвояФормаКоманды85.ВладелецФормы <> Неопределено Тогда
ОстановкаПриложение85 = Истина;
ВызватьИсключение "Форма закрыта или изменен ее владелец";
КонецЕсли;
Возврат СвояФормаКоманды85;
КонецФункцииПолная форма: исходный счет, одноразовый запрос и проверка предпросмотра
Своя CF → Общие → Общие формы → Счет85 → Модуль целиком
ПриСозданииНаСервере2 и связи полей только на сервере; экспортные клиентские функции хранят источник, снимок и STOP.
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Отказ = Истина;
Попытка
УчебнаяКомандаСчетаСервер85.ПроверитьСтенд85();
ИсходноеКоличество85 = 2;
Цена85 = 250;
ИсходнаяСумма85 = ИсходноеКоличество85 * Цена85;
КоличествоПредпросмотра85 = 2;
Предпросмотр85 = КоличествоПредпросмотра85 * Цена85;
Готово85 = Истина;
Занят85 = Ложь;
Остановка85 = Ложь;
Шаг85 = 0;
ПроверитьСвязиНаСервере85();
Отказ = Ложь;
Исключение
Остановка85 = Истина;
ВызватьИсключение;
КонецПопытки;
КонецПроцедуры
&НаСервере
Процедура ПроверитьСвязиНаСервере85()
УчебнаяКомандаСчетаСервер85.ПроверитьСтенд85();
Для Каждого ИмяПоля Из СтрРазделить("ИсходноеКоличество85,Цена85,ИсходнаяСумма85,КоличествоПредпросмотра85,Предпросмотр85", ",") Цикл
Поле = ЭтаФорма.Элементы.Найти(ИмяПоля);
Если Поле = Неопределено Или ТипЗнч(Поле) <> Тип("ПолеФормы") Тогда
ВызватьИсключение "Не найдено собственное поле: " + ИмяПоля;
КонецЕсли;
Если Поле.ПутьКДанным <> ИмяПоля Или Не Поле.ТолькоПросмотр Тогда
ВызватьИсключение "Нарушена связь или защита собственного поля: " + ИмяПоля;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура ПроверитьИсточник85() Экспорт
Попытка
Если ТипЗнч(Готово85) <> Тип("Булево") Или Не Готово85
Или ТипЗнч(Остановка85) <> Тип("Булево") Или Остановка85
Или ТипЗнч(Занят85) <> Тип("Булево") Тогда
ВызватьИсключение "Форма не готова или сохраняет STOP после ошибки";
КонецЕсли;
Если ТипЗнч(ИсходноеКоличество85) <> Тип("Число") Или ИсходноеКоличество85 <> 2
Или ТипЗнч(Цена85) <> Тип("Число") Или Цена85 <> 250
Или ТипЗнч(ИсходнаяСумма85) <> Тип("Число") Или ИсходнаяСумма85 <> 500
Или ТипЗнч(КоличествоПредпросмотра85) <> Тип("Число")
Или (КоличествоПредпросмотра85 <> 2 И КоличествоПредпросмотра85 <> 3)
Или ТипЗнч(Предпросмотр85) <> Тип("Число") Или Предпросмотр85 <> КоличествоПредпросмотра85 * Цена85
Или ТипЗнч(Шаг85) <> Тип("Число") Или Шаг85 < 0 Или Шаг85 <> Цел(Шаг85) Тогда
ВызватьИсключение "Исходный счет или числовой предпросмотр изменен вне собственного опыта";
КонецЕсли;
ПроверитьСвязиНаСервере85();
Исключение
Остановка85 = Истина;
ВызватьИсключение;
КонецПопытки;
КонецПроцедуры
&НаКлиенте
Функция Снимок85() Экспорт
ПроверитьИсточник85();
Возврат Новый ФиксированнаяСтруктура("ИсходноеКоличество,Цена,ИсходнаяСумма,КоличествоПредпросмотра,Предпросмотр,Готово,Занят,Остановка,Шаг", ИсходноеКоличество85, Цена85, ИсходнаяСумма85, КоличествоПредпросмотра85, Предпросмотр85, Готово85, Занят85, Остановка85, Шаг85);
КонецФункции
&НаКлиенте
Процедура СравнитьСнимок85(Снимок) Экспорт
ПроверитьИсточник85();
Если ТипЗнч(Снимок) <> Тип("ФиксированнаяСтруктура") Или Снимок.Количество() <> 9 Тогда
ВызватьИсключение "Нужен полный фиксированный снимок собственного счета";
КонецЕсли;
СвежийСнимок = Снимок85();
Для Каждого ПолеСнимка Из СвежийСнимок Цикл
Если Не Снимок.Свойство(ПолеСнимка.Ключ, ЗначениеПоля)
Или ТипЗнч(ЗначениеПоля) <> ТипЗнч(ПолеСнимка.Значение) Или ЗначениеПоля <> ПолеСнимка.Значение Тогда
ВызватьИсключение "Изменено поле полного собственного снимка: " + ПолеСнимка.Ключ;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Функция НачатьВвод85() Экспорт
ПроверитьИсточник85();
Если Занят85 Тогда
ВызватьИсключение "Дождитесь завершения собственного предыдущего диалога";
КонецЕсли;
Занят85 = Истина;
Шаг85 = Шаг85 + 1;
Возврат Снимок85();
КонецФункции
&НаКлиенте
Процедура ЗавершитьВвод85(Количество, Снимок) Экспорт
Попытка
ПроверитьИсточник85();
Если Не Занят85 Тогда
ВызватьИсключение "Нет собственного незавершенного запроса ввода";
КонецЕсли;
СравнитьСнимок85(Снимок);
Если Количество = Неопределено Тогда
Занят85 = Ложь;
После = Снимок85();
Если После.ИсходноеКоличество <> Снимок.ИсходноеКоличество Или После.Цена <> Снимок.Цена
Или После.ИсходнаяСумма <> Снимок.ИсходнаяСумма
Или После.КоличествоПредпросмотра <> Снимок.КоличествоПредпросмотра
Или После.Предпросмотр <> Снимок.Предпросмотр Или После.Шаг <> Снимок.Шаг
Или После.Готово <> Снимок.Готово Или После.Остановка <> Снимок.Остановка Или После.Занят Тогда
ВызватьИсключение "Отмена изменила собственный счет или состояние завершения";
КонецЕсли;
Возврат;
КонецЕсли;
Если ТипЗнч(Количество) <> Тип("Число") Или (Количество <> 2 И Количество <> 3) Тогда
ВызватьИсключение "Разрешены только числа 2 и 3";
КонецЕсли;
КоличествоПредпросмотра85 = Количество;
Предпросмотр85 = КоличествоПредпросмотра85 * Цена85;
Занят85 = Ложь;
После = Снимок85();
Если После.ИсходноеКоличество <> Снимок.ИсходноеКоличество Или После.Цена <> Снимок.Цена
Или После.ИсходнаяСумма <> Снимок.ИсходнаяСумма Или После.Шаг <> Снимок.Шаг
Или После.Готово <> Снимок.Готово Или После.Остановка <> Снимок.Остановка Или После.Занят
Или После.КоличествоПредпросмотра <> Количество Или После.Предпросмотр <> Количество * 250 Тогда
ВызватьИсключение "Не подтвержден числовой предпросмотр и неизмененный исходный счет";
КонецЕсли;
Исключение
Остановка85 = Истина;
ВызватьИсключение;
КонецПопытки;
КонецПроцедуры
&НаКлиенте
Процедура ОстановитьВвод85() Экспорт
Остановка85 = Истина;
КонецПроцедурыРазбор по шагам
Подготовьте отдельную базу, пять readonly полей, общую команду и ее видимость в собственной подсистеме.
Настоящий запуск приложения создает новую форму с исходным счетом 2×250=500 и проверяет полный снимок до/после открытия.
Настоящее выполнение общей команды получает ЭтотОбъект, подтверждает собственную форму и сохраняет незавершенный запрос с полным снимком.
ПоказатьВводЧисла возвращает результат через экспортный callback: число 2/3 или Неопределено при отмене. Не вызывайте callback вручную.
После проверки владельца запроса и всех исходных полей меняется только числовой предпросмотр. Повторное или чужое завершение и ошибка сохраняют STOP.
Как проверить результат
Начальный счет 2×250=500, принятие 3 дает предпросмотр 750; исходный счет всегда 500.
Отмена в свежем сеансе оставляет 500; отмена после принятого 750 сохраняет 750. Проверяются все девять полей снимка и пять readonly связей.
Повторный запуск, закрытая/чужая форма, нечисловое/неразрешенное количество, неправильная фаза или измененный снимок не принимаются.
Проверьте будущую настоящую команду/диалог вручную только на собственном стенде: runtime и компиляция здесь не выполнены.
Ожидаемый результат
Реальный модуль команды получает уведомление, а форма отделяет неизмененный источник от предпросмотра без DB-записи.
На что обратить внимание
ЭтотОбъект только читается и появляется в контексте настоящего модуля общей команды. Конструктора КомандаКомандногоИнтерфейса нет.
Нельзя заменить общую команду командой управляемой формы: источник модуля и тип получателя будут другими.
Дополнительные параметры содержат собственную клиентскую форму и фиксированный снимок; они не являются серверной авторизацией или межсеансовым хранилищем.
Снимок не гарантирует атомарность, откат или отображение. После исключения сохранен STOP, исход частичного UI-действия обследуется вручную.
Событие команды, запуск0, создание формы2 и завершение ввода2 доставляет платформа. Программных вызовов этих обработчиков в уроке нет.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.