Вызывается перед удалением объекта. Отказ защищает только подготовленную учебную карточку. Проверка относится к физическому удалению.
Где и как запускать
Модуль объекта УчебныеХарактеристики. Дополнительный блок — тело отдельной серверной команды учебной обработки.
Подготовка
Работайте только в собственной пустой учебной конфигурации. В Конфигураторе создайте ПланВидовХарактеристик УчебныеХарактеристики; не добавляйте эти учебные объекты в рабочую базу.
Код — строковый длиной 10, наименование длиной 100. Для справочника, плана обмена и плана видов характеристик включите автонумерацию. Для счетов и видов расчёта код назначается явно в примере.
У плана видов характеристик разрешите тип значения Число. Новый элемент получает ТипЗначения = Новый ОписаниеТипов("Число").
Добавьте реквизиты Комментарий (Строка 100), Лимит (Число 15.2 с разрешённым отрицательным знаком), ЗапретУдаления (Булево). Не делайте их автоматически обязательными: дополнительные правила описаны отдельными обработчиками.
Откройте ПланыВидовХарактеристик → УчебныеХарактеристики → Модуль объекта и вставьте основной обработчик на уровне модуля без директивы НаКлиенте.
Дополнительный блок запускайте в теле серверной команды собственной учебной обработки. Он вызывает настоящий метод подготовленного объекта; обработчик события вручную не вызывайте.
Каждое событие проверяйте как отдельный урок. Обновите только учебную базу; примеры не исполняются HTML-справочником.
Процедура ПередУдалением(Отказ)
Если ЗапретУдаления Тогда
Отказ = Истина;
Сообщить("Учебная карточка защищена от физического удаления");
КонецЕсли;
КонецПроцедурыНастоящий вызов события подготовленным объектом
Объект = ПланыВидовХарактеристик.УчебныеХарактеристики.СоздатьЭлемент();
Объект.Наименование = "Учебная карточка";
Объект.ТипЗначения = Новый ОписаниеТипов("Число");
Объект.Лимит = 100;
Объект.Комментарий = "Учебный пример";
Объект.ЗапретУдаления = Истина;
Объект.Записать();
Попытка
Объект.Удалить();
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;Разбор по шагам
Дополнительный код создаёт реальный объект УчебныеХарактеристики штатным менеджером.
Отказ защищает только подготовленную учебную карточку. Проверка относится к физическому удалению.
Параметры события передаёт платформа; модуль обращается к собственным реквизитам из подготовки.
Как проверить результат
Дополнительный код создаёт только свой новый объект: при ЗапретУдаления = Истина его физическое удаление отменено.
Это событие не означает установку или снятие пометки удаления.
Ожидаемый результат
Запретить физическое удаление защищённой карточки для подготовленного учебного объекта.
На что обратить внимание
Работайте только с объектом, созданным дополнительным кодом, и только в своей учебной базе.
Сообщение внутри события записи не доказывает завершение всей транзакции; не отправляйте оттуда письма и не вызывайте внешние сервисы.
Правила объекта не надо обходить повторной записью из его же обработчика.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.