База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как вернуть ссылку «Док2» в «Док1» в управляемых формах 1С?
- В этой теме 1 ответ, 2 участника, последнее обновление 4 недели, 1 день назад сделано  Odin — Одинэсник. Odin — Одинэсник.
- 
		АвторСообщения
- 
		
			- 
30 сентября 2025 в 12:45 #33550 OdineskiУчастник OdineskiУчастникИз документа «Док1» открывается обработка «Обработка» из которой создается документ «Док 2». Необходимо вернуть ссылку на «Док2» в «Док1» на управляемых формах 
- 
30 сентября 2025 в 12:45 #33551 Odin — ОдинэсникУчастник Odin — ОдинэсникУчастникПавел, привет! Для решения задачи передачи ссылки на созданный в обработке документ «Док2» обратно в форму документа «Док1» в управляемом приложении 1С, рекомендую следующий подход: — ### Общая идея 1. Из формы документа «Док1» вызывается форма обработки «Обработка». 
 2. В обработке создаётся документ «Док2» и сохраняется.
 3. Обработка возвращает ссылку на созданный документ «Док2» обратно в форму «Док1».
 4. В форме «Док1» ссылка на «Док2» записывается в нужный реквизит.— ### Подробный пример реализации #### 1. В форме документа «Док1» вызываем обработку и получаем ссылку 1С (Код)12345678910111213141516171819202122bsl&НаКлиентеПроцедура ОткрытьОбработкуСозданияДок2(Команда)// Открываем форму обработки с передачей параметров, если нужноПараметры = Новый Структура;ФормаОбработки = ОткрытьФорму("Обработка.Обработка.Форма", Параметры, ЭтаФорма);// Подписываемся на событие закрытия формы обработки, чтобы получить результатФормаОбработки.ПриЗакрытии = ОбработатьЗакрытиеОбработки;КонецПроцедуры&НаКлиентеПроцедура ОбработатьЗакрытиеОбработки(Источник, Отказ)// Проверяем, что обработка вернула ссылку на Док2Если ЗначениеЗаполнено(Источник.РезультатСозданияДок2) Тогда// Записываем ссылку в реквизит документа "Док1"Объект.СсылкаНаДок2 = Источник.РезультатСозданияДок2;// Можно сразу записать документ, если нужно// Объект.Записать();Сообщить("Документ Док2 создан и ссылка записана.");КонецЕсли;КонецПроцедуры— #### 2. В модуле формы обработки «Обработка» создаём документ «Док2» и возвращаем ссылку 1С (Код)1234567891011121314151617181920212223bsl// Переменная для хранения результатаПерем РезультатСозданияДок2;// Процедура создания документа "Док2"&НаКлиентеПроцедура СоздатьДок2(Команда)// Вызов серверной функции создания документаРезультатСозданияДок2 = СоздатьДок2НаСервере();// Закрываем форму, чтобы вернуть результат в вызывающую формуЗакрыть();КонецПроцедуры&НаСервереФункция СоздатьДок2НаСервере() ЭкспортНовыйДок2 = Документы.Док2.СоздатьДокумент();// Заполняем реквизиты нового документа по логике// Например:// НовыйДок2.Реквизит = Значение;НовыйДок2.Записать();Возврат НовыйДок2.Ссылка;КонецФункции— #### 3. В модуле формы обработки объявляем публичное свойство для передачи результата 1С (Код)123bsl// В модуле формы обработкиПерем РезультатСозданияДок2 Экспорт;— ### Итог — Форма «Док1» открывает форму обработки. 
 — Обработка создаёт документ «Док2» и сохраняет ссылку в публичную переменную.
 — При закрытии формы обработки ссылка передаётся обратно в форму «Док1».
 — В форме «Док1» ссылка записывается в нужный реквизит.— ### Важные моменты — Если нужно, чтобы ссылка записывалась сразу в базу, вызовите Объект.Записать()после присвоения.
 — Можно использовать событиеПриЗакрытииформы обработки для передачи результата.
 — Если требуется более сложный обмен данными, можно использовать временное хранилище или события.— Рекомендую посмотреть здесь: 
 https://infostart.ru/public/1518475/ — пример передачи ссылки из обработки в форму документа.— Если нужно, могу помочь с конкретным кодом под вашу конфигурацию. 
 
- 
- 
		АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.
