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