ПланВидовРасчетаОбъект.<Имя плана видов расчета>.ПередУдалением

События · BeforeDelete

Возникает перед непосредственным удалением объекта из базы данных.

Синтаксис

ПередУдалением(<Отказ>)
Полное описание, параметры и ограничения

ПланВидовРасчетаОбъект.<Имя плана видов расчета>.ПередУдалением (ChartOfCalculationTypesObject.<Chart of calculation types name>.BeforeDelete)

ПланВидовРасчетаОбъект.<Имя плана видов расчета> (ChartOfCalculationTypesObject.<Chart of calculation types name>)

ПередУдалением (BeforeDelete)

Доступен, начиная с версии 8.0.

Синтаксис:
ПередУдалением(<Отказ>)
Параметры:

<Отказ>
Тип: Булево.
Признак отказа от удаления объекта. Если в теле процедуры-обработчика установить данному параметру значение Истина, удаление выполнено не будет.
Значение по умолчанию: Ложь.
Описание:

Возникает перед непосредственным удалением объекта из базы данных.

Доступность:

Сервер, толстый клиент, внешнее соединение.

Замечание:

Безопасный режим на время исполнения данного обработчика будет отключен. Данное замечание не относится к обработчикам событий, расположенным в расширении конфигурации.
Использование в версии:

Доступен, начиная с версии 8.0.

Методическая информация

Практические примеры

Запретить физическое удаление защищённой карточки: УчебныеВидыРасчета

Возникает перед непосредственным удалением объекта из базы данных. Отказ защищает только подготовленную учебную карточку. Проверка относится к физическому удалению.

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

Модуль объекта УчебныеВидыРасчета. Дополнительный блок — тело отдельной серверной команды учебной обработки.

Подготовка

  1. Работайте только в собственной пустой учебной конфигурации. В Конфигураторе создайте ПланВидовРасчета УчебныеВидыРасчета; не добавляйте эти учебные объекты в рабочую базу.

  2. Код — строковый длиной 10, наименование длиной 100. Для справочника, плана обмена и плана видов характеристик включите автонумерацию. Для счетов и видов расчёта код назначается явно в примере.

  3. Для плана видов расчёта не включайте зависимость от базового периода и действие по периоду. Регистры расчёта в этом уроке не нужны.

  4. Добавьте реквизиты Комментарий (Строка 100), Лимит (Число 15.2 с разрешённым отрицательным знаком), ЗапретУдаления (Булево). Не делайте их автоматически обязательными: дополнительные правила описаны отдельными обработчиками.

  5. Откройте ПланыВидовРасчета → УчебныеВидыРасчета → Модуль объекта и вставьте основной обработчик на уровне модуля без директивы НаКлиенте.

  6. Дополнительный блок запускайте в теле серверной команды собственной учебной обработки. Он вызывает настоящий метод подготовленного объекта; обработчик события вручную не вызывайте.

  7. Каждое событие проверяйте как отдельный урок. Обновите только учебную базу; примеры не исполняются HTML-справочником.

Процедура ПередУдалением(Отказ)
    Если ЗапретУдаления Тогда
        Отказ = Истина;
        Сообщить("Учебная карточка защищена от физического удаления");
    КонецЕсли;
КонецПроцедуры
Настоящий вызов события подготовленным объектом
Объект = ПланыВидовРасчета.УчебныеВидыРасчета.СоздатьВидРасчета();
Объект.Наименование = "Учебная карточка";
Объект.Код = Лев(Строка(Новый УникальныйИдентификатор), 8);
Объект.Лимит = 100;
Объект.Комментарий = "Учебный пример";
Объект.ЗапретУдаления = Истина;
Объект.Записать();
Попытка
    Объект.Удалить();
Исключение
    Сообщить(ОписаниеОшибки());
КонецПопытки;

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

  1. Дополнительный код создаёт реальный объект УчебныеВидыРасчета штатным менеджером.

  2. Отказ защищает только подготовленную учебную карточку. Проверка относится к физическому удалению.

  3. Параметры события передаёт платформа; модуль обращается к собственным реквизитам из подготовки.

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

  1. Дополнительный код создаёт только свой новый объект: при ЗапретУдаления = Истина его физическое удаление отменено.

  2. Это событие не означает установку или снятие пометки удаления.

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

Запретить физическое удаление защищённой карточки для подготовленного учебного объекта.

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

  1. Работайте только с объектом, созданным дополнительным кодом, и только в своей учебной базе.

  2. Сообщение внутри события записи не доказывает завершение всей транзакции; не отправляйте оттуда письма и не вызывайте внешние сервисы.

  3. Правила объекта не надо обходить повторной записью из его же обработчика.

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

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

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

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

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