Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / [игнор отключен] [закрыт для гостей] / открытие формы справочника контрагентов из документа реализация товаров и услуг / 2 сообщений из 2, страница 1 из 1
18.04.2012, 19:31
    #37759830
ppc
ppc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
открытие формы справочника контрагентов из документа реализация товаров и услуг
Как программно открыть форму из документа?

Коод формы документа выглядит так:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Процедура КонтрагентПриИзменении(Элемент)

	ПриИзмененииКонтрагента();

КонецПроцедуры // КонтрагентПриИзменении()


Процедура ПриИзмененииКонтрагента()

	// Выполняем общие действия для всех документов при изменении Контрагент.
	ЗаполнениеДокументов.ПриИзмененииЗначенияКонтрагента(ЭтотОбъект, мСтруктураПараметровДляПолученияДоговора);

	// Могли поменять договор.
	ПриИзмененииДоговора();

КонецПроцедуры // ПриИзмененииКонтрагента()



Смотрим процедуру ПриИзмененииЗначенияКонтрагента

Код: sql
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.
Процедура ПриИзмененииЗначенияКонтрагента(ДокументОбъект, СтруктураПараметровДляПолученияДоговора = Неопределено) Экспорт

	МетаданныеДокумента = ДокументОбъект.Метаданные();

	ЕстьДоговорКонтрагента        = ОбщегоНазначения.ЕстьРеквизитДокумента("ДоговорКонтрагента", МетаданныеДокумента);
	ЕстьКонтактноеЛицоКонтрагента = ОбщегоНазначения.ЕстьРеквизитДокумента("КонтактноеЛицоКонтрагента", МетаданныеДокумента);
	
	Если ДокументОбъект.Контрагент = Неопределено Тогда
		ДокументОбъект.Контрагент = Справочники.Контрагенты.ПустаяСсылка();
	КонецЕсли; 

	Если ТипЗнч(ДокументОбъект.Контрагент) <> Тип("СправочникСсылка.Контрагенты") Тогда
		Если НЕ ЗначениеЗаполнено(ДокументОбъект.Контрагент) Тогда
			Если ТипЗнч(ДокументОбъект.Контрагент) = Тип("Строка") Тогда
				КонтактноеЛицоКонтрагента = "";
			Иначе
				КонтактноеЛицоКонтрагента = Справочники.КонтактныеЛицаКонтрагентов.ПустаяСсылка();
			КонецЕсли; 
		КонецЕсли;
	Иначе

		// Если в документе уже выбран "правильный" договор, то не будем его менять.
		Если ЕстьДоговорКонтрагента Тогда
			Если  МожноИспользоватьДоговорДляДокумента(ДокументОбъект.ДоговорКонтрагента, ДокументОбъект.Контрагент, ДокументОбъект.Организация, СтруктураПараметровДляПолученияДоговора) Тогда
			ДоговорКонтрагента = ДокументОбъект.ДоговорКонтрагента;
			Иначе
				ДоговорКонтрагента = ПолучитьДоговорПоОрганизацииИКонтрагенту(ДокументОбъект.Организация, ДокументОбъект.Контрагент, СтруктураПараметровДляПолученияДоговора);
			КонецЕсли;
		КонецЕсли;

		Если ЕстьКонтактноеЛицоКонтрагента Тогда
			Если НЕ ЗначениеЗаполнено(ДокументОбъект.КонтактноеЛицоКонтрагента)
			 ИЛИ ТипЗнч(ДокументОбъект.КонтактноеЛицоКонтрагента) <> Тип("СправочникСсылка.КонтактныеЛицаКонтрагентов") Тогда
				КонтактноеЛицоКонтрагента = ОбщегоНазначения.ПолучитьОсновноеКонтактноеЛицоКонтрагента(ДокументОбъект.Контрагент);
			Иначе
				Если ДокументОбъект.КонтактноеЛицоКонтрагента.Владелец <> ДокументОбъект.Контрагент Тогда
					КонтактноеЛицоКонтрагента = ОбщегоНазначения.ПолучитьОсновноеКонтактноеЛицоКонтрагента(ДокументОбъект.Контрагент);
				КонецЕсли; 
			КонецЕсли; 
		КонецЕсли; 
	КонецЕсли;

	Если ЕстьДоговорКонтрагента Тогда
		ДокументОбъект.ДоговорКонтрагента = ДоговорКонтрагента;
		Если ОбщегоНазначения.ЕстьРеквизитДокумента("Организация", МетаданныеДокумента)
		   И ДоговорКонтрагента <> Неопределено 
		   И (НЕ ЗначениеЗаполнено(ДокументОбъект.Организация)) Тогда
			ДокументОбъект.Организация        = ДоговорКонтрагента.Организация;
			Если Не ПустаяСтрока(ДокументОбъект.Номер) Тогда
				ДокументОбъект.Номер = "";
			КонецЕсли;
		КонецЕсли;
	КонецЕсли;

	Если ЕстьКонтактноеЛицоКонтрагента 
	    И КонтактноеЛицоКонтрагента <> Неопределено Тогда
		ДокументОбъект.КонтактноеЛицоКонтрагента = КонтактноеЛицоКонтрагента;
	КонецЕсли; 

	Если ОбщегоНазначения.ЕстьРеквизитДокумента("Сделка", МетаданныеДокумента) Тогда
		ДокументОбъект.Сделка = Неопределено; // Для сделки нет значения по умолчанию в договоре
	КонецЕсли;

	Если ОбщегоНазначения.ЕстьРеквизитДокумента("ТипЦен", МетаданныеДокумента)
	   И ЗначениеЗаполнено(ДокументОбъект.ТипЦен)
	   И ДокументОбъект.ТипЦен.Метаданные().Имя = "ТипыЦенНоменклатурыКонтрагентов"
	   И Не ДокументОбъект.ТипЦен.Владелец = ДокументОбъект.Контрагент Тогда
		// очистим тип цен
		ДокументОбъект.ТипЦен =  Неопределено;
	КонецЕсли;

	Если ОбщегоНазначения.ЕстьРеквизитДокумента("БанковскийСчетКонтрагента", МетаданныеДокумента) Тогда
		ДокументОбъект.БанковскийСчетКонтрагента = ДокументОбъект.Контрагент.ОсновнойБанковскийСчет;
	КонецЕсли;

КонецПроцедуры // ПриИзмененииЗначенияКонтрагента()



При добавлении этих процедур в свою обработку выходит только "".
Чито есть в своей обработке ну во первых само поле контрагенты

В обработчик событии как и в документе реализация товаров и услуг поставил при изменении процедуру КонтрагентПриИзменении
Все вроде так же объясните пожалуйста как этот код работает плз.
...
Рейтинг: 0 / 0
19.04.2012, 01:41
    #37760248
Программист 1с
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
открытие формы справочника контрагентов из документа реализация товаров и услуг
НачалоВыбора

И там поставьте отказ от обработки, и пишите свою.
...
Рейтинг: 0 / 0
Форумы / [игнор отключен] [закрыт для гостей] / открытие формы справочника контрагентов из документа реализация товаров и услуг / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]