ОбработкаАктивизацииОбъекта: собственная обычная форма

Учебные задачи

Связанные обычные формы используют настоящее оповещение выбора / записи / активизации. Параметр приходит платформой от показанного источника, не ручным вызовом события.

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

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

Подготовка

  1. Создайте собственную внешнюю обработку с обычной формой. Запуск — толстый клиент, обычные формы; основной блок назначается указанному событию самой формы.

  2. Реквизиты формы: Наименование (Строка 100), Количество (Число 10.0), Цена и Сумма (Число 12.2), Статус (Строка 200), КоличествоПовторныхОткрытий (Число 10.0), РазрешитьЗакрытие (Булево). Выведите нужные поля и флажок на форму.

  3. Добавьте обычную надпись СуммаНадпись без связи с данными. Для расчётных опытов вручную задайте Количество = 3, Цена = 100, Наименование = Книга. Данные находятся только в форме.

  4. Каждый пример — отдельный вариант формы. Не вызывайте обработчик события вручную; используйте указанное действие или дополнительную кнопку.

  5. В учебной конфигурации создайте обычную общую форму УчебныйСвязанныйУрок. Форма-получатель и отправитель задаются дополнительной кнопкой; это не произвольное чужое окно.

  6. В своей внешней форме создайте кнопку ОткрытьСвязанныйУрок; в общей форме — ПередатьДанные. Назначьте соответствующие дополнительные обработчики.

  7. Для активизации основной обработчик разместите в модуле общей подчинённой формы. Кнопка ОткрытьСвязанныйУрок находится у владельца; тот посылает активный объект после открытия подчинённой формы.

  8. Создайте собственный справочник УчебныеТоварыФорм: код Строка 10 с автонумерацией, наименование 100. В оповещение передаётся настоящая ссылка только что записанного собственного товара, не произвольная строка.

Процедура ОбработкаАктивизацииОбъекта(АктивныйОбъект, Источник)
    Статус = "Получено от своей связанной формы: " + Строка(АктивныйОбъект);
    Сообщить(Статус);
    Сообщить("Источник передан платформой");
КонецПроцедуры
Обычная форма-владелец: открыть получателя и оповестить об активизации
Процедура ОткрытьСвязанныйУрок(Кнопка)
    Товар = Справочники.УчебныеТоварыФорм.СоздатьЭлемент();
    Товар.Наименование = "Собственная активная книга";
    Товар.Записать();
    Подчиненная = ПолучитьОбщуюФорму("УчебныйСвязанныйУрок", ЭтаФорма);
    Подчиненная.Открыть();
    ЭтаФорма.ОповеститьОбАктивизацииОбъекта(Товар.Ссылка);
КонецПроцедуры

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

  1. Подготавливаем свою обычную форму и назначаем её точное событие.

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

  3. Связанные обычные формы используют настоящее оповещение выбора / записи / активизации. Параметр приходит платформой от показанного источника, не ручным вызовом события.

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

  1. Выполните показанный дополнительный сценарий: статус получателя показывает реально переданное значение.

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

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

Показан конкретный контекст события обычной формы и пределы его применимости.

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

  1. Обычная и управляемая формы имеют разные сигнатуры событий; этот блок не переносится в управляемую форму дословно.

  2. Отказ от стандартной обработки не равнозначен отмене операции: например, закрытие отменяет Отказ.

  3. Не заменяйте реальные события ручным вызовом одноимённой процедуры и не выдавайте статический разбор за выполнение 1С.

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

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

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

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

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