powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / [игнор отключен] [закрыт для гостей] / открытие формы справочника контрагентов из документа реализация товаров и услуг
2 сообщений из 2, страница 1 из 1
открытие формы справочника контрагентов из документа реализация товаров и услуг
    #37759830
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
открытие формы справочника контрагентов из документа реализация товаров и услуг
    #37760248
Программист 1с
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НачалоВыбора

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


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