Как программно открыть форму из документа?
Коод формы документа выглядит так:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Процедура КонтрагентПриИзменении(Элемент)
ПриИзмененииКонтрагента();
КонецПроцедуры // КонтрагентПриИзменении()
Процедура ПриИзмененииКонтрагента()
// Выполняем общие действия для всех документов при изменении Контрагент.
ЗаполнениеДокументов.ПриИзмененииЗначенияКонтрагента(ЭтотОбъект, мСтруктураПараметровДляПолученияДоговора);
// Могли поменять договор.
ПриИзмененииДоговора();
КонецПроцедуры // ПриИзмененииКонтрагента()
Смотрим процедуру ПриИзмененииЗначенияКонтрагента
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
Процедура ПриИзмененииЗначенияКонтрагента(ДокументОбъект, СтруктураПараметровДляПолученияДоговора = Неопределено) Экспорт
МетаданныеДокумента = ДокументОбъект.Метаданные();
ЕстьДоговорКонтрагента = ОбщегоНазначения.ЕстьРеквизитДокумента("ДоговорКонтрагента", МетаданныеДокумента);
ЕстьКонтактноеЛицоКонтрагента = ОбщегоНазначения.ЕстьРеквизитДокумента("КонтактноеЛицоКонтрагента", МетаданныеДокумента);
Если ДокументОбъект.Контрагент = Неопределено Тогда
ДокументОбъект.Контрагент = Справочники.Контрагенты.ПустаяСсылка();
КонецЕсли;
Если ТипЗнч(ДокументОбъект.Контрагент) <> Тип("СправочникСсылка.Контрагенты") Тогда
Если НЕ ЗначениеЗаполнено(ДокументОбъект.Контрагент) Тогда
Если ТипЗнч(ДокументОбъект.Контрагент) = Тип("Строка") Тогда
КонтактноеЛицоКонтрагента = "";
Иначе
КонтактноеЛицоКонтрагента = Справочники.КонтактныеЛицаКонтрагентов.ПустаяСсылка();
КонецЕсли;
КонецЕсли;
Иначе
// Если в документе уже выбран "правильный" договор, то не будем его менять.
Если ЕстьДоговорКонтрагента Тогда
Если МожноИспользоватьДоговорДляДокумента(ДокументОбъект.ДоговорКонтрагента, ДокументОбъект.Контрагент, ДокументОбъект.Организация, СтруктураПараметровДляПолученияДоговора) Тогда
ДоговорКонтрагента = ДокументОбъект.ДоговорКонтрагента;
Иначе
ДоговорКонтрагента = ПолучитьДоговорПоОрганизацииИКонтрагенту(ДокументОбъект.Организация, ДокументОбъект.Контрагент, СтруктураПараметровДляПолученияДоговора);
КонецЕсли;
КонецЕсли;
Если ЕстьКонтактноеЛицоКонтрагента Тогда
Если НЕ ЗначениеЗаполнено(ДокументОбъект.КонтактноеЛицоКонтрагента)
ИЛИ ТипЗнч(ДокументОбъект.КонтактноеЛицоКонтрагента) <> Тип("СправочникСсылка.КонтактныеЛицаКонтрагентов") Тогда
КонтактноеЛицоКонтрагента = ОбщегоНазначения.ПолучитьОсновноеКонтактноеЛицоКонтрагента(ДокументОбъект.Контрагент);
Иначе
Если ДокументОбъект.КонтактноеЛицоКонтрагента.Владелец <> ДокументОбъект.Контрагент Тогда
КонтактноеЛицоКонтрагента = ОбщегоНазначения.ПолучитьОсновноеКонтактноеЛицоКонтрагента(ДокументОбъект.Контрагент);
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Если ЕстьДоговорКонтрагента Тогда
ДокументОбъект.ДоговорКонтрагента = ДоговорКонтрагента;
Если ОбщегоНазначения.ЕстьРеквизитДокумента("Организация", МетаданныеДокумента)
И ДоговорКонтрагента <> Неопределено
И (НЕ ЗначениеЗаполнено(ДокументОбъект.Организация)) Тогда
ДокументОбъект.Организация = ДоговорКонтрагента.Организация;
Если Не ПустаяСтрока(ДокументОбъект.Номер) Тогда
ДокументОбъект.Номер = "";
КонецЕсли;
КонецЕсли;
КонецЕсли;
Если ЕстьКонтактноеЛицоКонтрагента
И КонтактноеЛицоКонтрагента <> Неопределено Тогда
ДокументОбъект.КонтактноеЛицоКонтрагента = КонтактноеЛицоКонтрагента;
КонецЕсли;
Если ОбщегоНазначения.ЕстьРеквизитДокумента("Сделка", МетаданныеДокумента) Тогда
ДокументОбъект.Сделка = Неопределено; // Для сделки нет значения по умолчанию в договоре
КонецЕсли;
Если ОбщегоНазначения.ЕстьРеквизитДокумента("ТипЦен", МетаданныеДокумента)
И ЗначениеЗаполнено(ДокументОбъект.ТипЦен)
И ДокументОбъект.ТипЦен.Метаданные().Имя = "ТипыЦенНоменклатурыКонтрагентов"
И Не ДокументОбъект.ТипЦен.Владелец = ДокументОбъект.Контрагент Тогда
// очистим тип цен
ДокументОбъект.ТипЦен = Неопределено;
КонецЕсли;
Если ОбщегоНазначения.ЕстьРеквизитДокумента("БанковскийСчетКонтрагента", МетаданныеДокумента) Тогда
ДокументОбъект.БанковскийСчетКонтрагента = ДокументОбъект.Контрагент.ОсновнойБанковскийСчет;
КонецЕсли;
КонецПроцедуры // ПриИзмененииЗначенияКонтрагента()
При добавлении этих процедур в свою обработку выходит только "".
Чито есть в своей обработке ну во первых само поле контрагенты
В обработчик событии как и в документе реализация товаров и услуг поставил при изменении процедуру КонтрагентПриИзменении
Все вроде так же объясните пожалуйста как этот код работает плз.