Самообслуживание партнеров / Изменение контактной информации / Модуль формы

файл

#Область ОбработчикиСобытийФормы

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	
	// Пропускаем инициализацию, чтобы гарантировать получение формы при передаче параметра "АвтоТест".
	Если Параметры.Свойство("АвтоТест") Тогда
		Возврат;
	КонецЕсли;
	
	ЗаполнитьЗначенияСвойств(ЭтотОбъект, ПартнерыИКонтрагентыВызовСервера.ДанныеАвторизовавшегосяВнешнегоПользователя());
	
	Если Партнер = Неопределено ИЛИ Партнер.Пустая() Тогда
		Отказ = Истина;
		Возврат;
	КонецЕсли;
	
	Запрос = Новый Запрос;
	Запрос.Текст = "
	|ВЫБРАТЬ РАЗРЕШЕННЫЕ
	|	ПартнерыКонтактнаяИнформация.НомерСтроки           КАК НомерСтроки,
	|	ПартнерыКонтактнаяИнформация.Тип                   КАК Тип,
	|	ПартнерыКонтактнаяИнформация.Вид                   КАК Вид,
	|	ПартнерыКонтактнаяИнформация.Представление         КАК Представление,
	|	ПартнерыКонтактнаяИнформация.ЗначенияПолей         КАК ЗначенияПолей,
	|	ПартнерыКонтактнаяИнформация.Страна                КАК Страна,
	|	ПартнерыКонтактнаяИнформация.Регион                КАК Регион,
	|	ПартнерыКонтактнаяИнформация.Город                 КАК Город,
	|	ПартнерыКонтактнаяИнформация.АдресЭП               КАК АдресЭП,
	|	ПартнерыКонтактнаяИнформация.ДоменноеИмяСервера    КАК ДоменноеИмяСервера,
	|	ПартнерыКонтактнаяИнформация.НомерТелефона         КАК НомерТелефона,
	|	ПартнерыКонтактнаяИнформация.НомерТелефонаБезКодов КАК НомерТелефонаБезКодов
	|ИЗ
	|	Справочник.Партнеры.КонтактнаяИнформация КАК ПартнерыКонтактнаяИнформация
	|ГДЕ
	|	ПартнерыКонтактнаяИнформация.Ссылка = &Партнер
	|
	|УПОРЯДОЧИТЬ ПО
	|	НомерСтроки";
	
	Запрос.УстановитьПараметр("Партнер",Партнер);
	
	КонтактнаяИнформация.Загрузить(Запрос.Выполнить().Выгрузить());
	
	// СтандартныеПодсистемы.КонтактнаяИнформация
	ДополнительныеПараметрыКИ = УправлениеКонтактнойИнформацией.ПараметрыКонтактнойИнформации();
	ДополнительныеПараметрыКИ.Вставить("ИмяЭлементаДляРазмещения", "ГруппаКонтактнаяИнформация");
	ДополнительныеПараметрыКИ.Вставить("ПоложениеЗаголовкаКИ", ПоложениеЗаголовкаЭлементаФормы.Лево);
	УправлениеКонтактнойИнформацией.ПриСозданииНаСервере(ЭтотОбъект, ЭтотОбъект, ДополнительныеПараметрыКИ);
	
	Если ПолучитьФункциональнуюОпцию("ИспользоватьПартнеровКакКонтрагентов") Тогда
		
		КонтрагентПартнера = ПартнерыИКонтрагенты.ПолучитьКонтрагентаПартнераПоУмолчанию(Партнер);
		
		ДополнительныеПараметрыКИ.Вставить("ИмяЭлементаДляРазмещения", "ГруппаКонтактнаяИнформацияКонтрагента");
		ДополнительныеПараметрыКИ.Вставить("ПоложениеЗаголовкаКИ", ПоложениеЗаголовкаЭлементаФормы.Лево);
		ДополнительныеПараметрыКИ.Вставить("СкрываемыеВиды",  ОбщегоНазначенияУТПовтИсп.МассивИсключаемыхВидовКИКонтрагентаДляВыводаВФормеПартнера());
		УправлениеКонтактнойИнформацией.ПриСозданииНаСервере(ЭтотОбъект, КонтрагентПартнера, ДополнительныеПараметрыКИ);
	
	КонецЕсли;
	// Конец СтандартныеПодсистемы.КонтактнаяИнформация
	
	Ссылка = Партнер;
	
КонецПроцедуры

#КонецОбласти

#Область ОбработчикиСобытийЭлементовТаблицыФормыКонтактнаяИнформация

&НаКлиенте
Процедура Подключаемый_КонтактнаяИнформацияПриИзменении(Элемент)
	УправлениеКонтактнойИнформациейКлиент.НачатьИзменение(ЭтотОбъект, Элемент);
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_КонтактнаяИнформацияНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
	УправлениеКонтактнойИнформациейКлиент.НачатьВыбор(ЭтотОбъект, Элемент, , СтандартнаяОбработка);
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_КонтактнаяИнформацияПриНажатии(Элемент, СтандартнаяОбработка)
	УправлениеКонтактнойИнформациейКлиент.НачатьВыбор(ЭтотОбъект, Элемент,, СтандартнаяОбработка);
КонецПроцедуры

// Обработчик события очистки контактной информации
// 
// Параметры:
// 	Элемент              - ПолеФормы -
// 	СтандартнаяОбработка - Булево -
&НаКлиенте
Процедура Подключаемый_КонтактнаяИнформацияОчистка(Элемент, СтандартнаяОбработка)
	УправлениеКонтактнойИнформациейКлиент.НачатьОчистку(ЭтотОбъект, Элемент.Имя);
КонецПроцедуры


// Выполняет подключаемую команду контактной информации
// 
// Параметры:
// 	Команда - КомандаФормы - 
//
&НаКлиенте
Процедура Подключаемый_КонтактнаяИнформацияВыполнитьКоманду(Команда)
	УправлениеКонтактнойИнформациейКлиент.НачатьВыполнениеКоманды(ЭтотОбъект, Команда.Имя);
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_КонтактнаяИнформацияАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)
	
	УправлениеКонтактнойИнформациейКлиент.АвтоПодборАдреса(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка);
	
КонецПроцедуры

// Обработка выбора элемента контактной информации
// 
// Параметры:
// 	Элемент              - ПолеФормы - 
// 	ВыбранноеЗначение    - Произвольный
// 	СтандартнаяОбработка - Булево -
&НаКлиенте
Процедура Подключаемый_КонтактнаяИнформацияОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
	
	УправлениеКонтактнойИнформациейКлиент.ОбработкаВыбора(ЭтотОбъект, ВыбранноеЗначение, Элемент.Имя, СтандартнаяОбработка);
	
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_КонтактнаяИнформацияОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
	УправлениеКонтактнойИнформациейКлиент.НачатьОбработкуНавигационнойСсылки(ЭтотОбъект, Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка);
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_ПродолжитьОбновлениеКонтактнойИнформации(Результат, ДополнительныеПараметры) Экспорт
	
	ОбновитьКонтактнуюИнформацию(Результат);
	
КонецПроцедуры

#КонецОбласти

#Область ОбработчикиКомандФормы

&НаКлиенте
Процедура Сохранить(Команда)
	
	ЗаписатьКонтактнуюИнформациюПартнера();
	Оповестить("Запись_Партнеры", Новый Структура("Партнер",Партнер));
	
КонецПроцедуры

&НаКлиенте
Процедура ЗаписатьИЗакрыть(Команда)
	
	ЗаписатьКонтактнуюИнформациюПартнера();
	Оповестить("Запись_Партнеры", Новый Структура("Партнер",Партнер));
	Закрыть();
	
КонецПроцедуры

#КонецОбласти

#Область СлужебныеПроцедурыИФункции

&НаСервере
Процедура ЗаписатьКонтактнуюИнформациюПартнера()
	
	Если Модифицированность Тогда
		
		УстановитьПривилегированныйРежим(Истина);
		
		Отказ = Ложь;
		ОбъектПартнер = Партнер.ПолучитьОбъект();
		УправлениеКонтактнойИнформацией.ПередЗаписьюНаСервере(ЭтаФорма, ОбъектПартнер, Отказ);
		ОбъектПартнер.Записать();
		
		УстановитьПривилегированныйРежим(Ложь);
		
		Если ПолучитьФункциональнуюОпцию("ИспользоватьПартнеровКакКонтрагентов") И ЗначениеЗаполнено(КонтрагентПартнера) Тогда
			КонтрагентОбъект = КонтрагентПартнера.ПолучитьОбъект();
			УправлениеКонтактнойИнформацией.ПередЗаписьюНаСервере(ЭтотОбъект, КонтрагентОбъект);
			КонтрагентОбъект.Записать();
		КонецЕсли;
		Модифицированность = Ложь;
		
	КонецЕсли;
	
КонецПроцедуры

&НаСервере
Процедура ОбновитьКонтактнуюИнформацию(Результат)
	
	УправлениеКонтактнойИнформацией.ОбновитьКонтактнуюИнформацию(ЭтотОбъект, Объект, Результат);
	
КонецПроцедуры

#КонецОбласти

Связанные материалы