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