Как отловить создание нового документа из формы другого объекта?

1. user1873688 02.07.24 10:06 Сейчас в теме
Существует форма документа с реквизитом, который указывает на тип документа. Например (А,Б,С). И есть реквизит который является ссылкой на документ2, нужно при создании из этой формы нового документа2 заполнять некоторые реквизиты в зависимости от типа (А,Б,С). Надеюсь, что объяснил понятно. Каким образом это может быть реализовано?
По теме из базы знаний
Найденные решения
2. user1706813 03.07.24 10:40 Сейчас в теме
Может подойдет такой вариант?

1. Создадим метод в модуле объекта документа для создания и заполнения нового документа2:

// Метод для создания и заполнения нового документа2
Процедура СоздатьИЗаполнитьДокумент2() Экспорт
// Создание нового документа2
НовыйДокумент2 = Документы.Документ2.СоздатьДокумент();

// Заполнение реквизитов в зависимости от типа документа
Если ЭтотОбъект.ТипДокумента = "А" Тогда
НовыйДокумент2.Реквизит1 = "Значение1";
НовыйДокумент2.Реквизит2 = "Значение2";
ИначеЕсли ЭтотОбъект.ТипДокумента = "Б" Тогда
НовыйДокумент2.Реквизит1 = "Значение3";
НовыйДокумент2.Реквизит2 = "Значение4";
ИначеЕсли ЭтотОбъект.ТипДокумента = "С" Тогда
НовыйДокумент2.Реквизит1 = "Значение5";
НовыйДокумент2.Реквизит2 = "Значение6";
КонецЕсли;

// Запись нового документа2
НовыйДокумент2.Записать();

// Заполнение ссылки на новый документ2 в текущем документе
ЭтотОбъект.СсылкаНаДокумент2 = НовыйДокумент2.Ссылка;
КонецПроцедуры

2. Вызовем этот метод в нужный момент, например, в событии перед записью документа:

// Подписка на событие перед записью документа
Процедура ПередЗаписью(Отказ, РежимЗаписи) Экспорт
// Проверка, что документ создается
Если ЭтоНовый() Тогда
// Вызов метода для создания и заполнения нового документа2
СоздатьИЗаполнитьДокумент2();
КонецЕсли;
КонецПроцедуры
user1873688; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user1706813 03.07.24 10:40 Сейчас в теме
Может подойдет такой вариант?

1. Создадим метод в модуле объекта документа для создания и заполнения нового документа2:

// Метод для создания и заполнения нового документа2
Процедура СоздатьИЗаполнитьДокумент2() Экспорт
// Создание нового документа2
НовыйДокумент2 = Документы.Документ2.СоздатьДокумент();

// Заполнение реквизитов в зависимости от типа документа
Если ЭтотОбъект.ТипДокумента = "А" Тогда
НовыйДокумент2.Реквизит1 = "Значение1";
НовыйДокумент2.Реквизит2 = "Значение2";
ИначеЕсли ЭтотОбъект.ТипДокумента = "Б" Тогда
НовыйДокумент2.Реквизит1 = "Значение3";
НовыйДокумент2.Реквизит2 = "Значение4";
ИначеЕсли ЭтотОбъект.ТипДокумента = "С" Тогда
НовыйДокумент2.Реквизит1 = "Значение5";
НовыйДокумент2.Реквизит2 = "Значение6";
КонецЕсли;

// Запись нового документа2
НовыйДокумент2.Записать();

// Заполнение ссылки на новый документ2 в текущем документе
ЭтотОбъект.СсылкаНаДокумент2 = НовыйДокумент2.Ссылка;
КонецПроцедуры

2. Вызовем этот метод в нужный момент, например, в событии перед записью документа:

// Подписка на событие перед записью документа
Процедура ПередЗаписью(Отказ, РежимЗаписи) Экспорт
// Проверка, что документ создается
Если ЭтоНовый() Тогда
// Вызов метода для создания и заполнения нового документа2
СоздатьИЗаполнитьДокумент2();
КонецЕсли;
КонецПроцедуры
user1873688; +1 Ответить
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот