ОтработатьОповещение (БСП)

Автор: 1С
ОбщийМодуль.ВзаимодействияКлиент
БСП

Отработать оповещение. Обработчик для события формы ОбработкаОповещения. Вызывается для взаимодействия.

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

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

///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются 
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////

Рекомендации

Похожие публикации

Данные отработанного времени

Массив видов рабочего времени, отражающих отработанное время

ПоказатьОповещение (БСП)

ОповещениеОбИзменении (БСП)

УстановитьОповещение (БСП)

ОповещениеБезРезультата (БСП)

ОтработатьПризнакИзмененияПометкиУдаленияПриЗаписиПисьма (БСП)

ОтработатьПолучениеФайла (БСП)

ОтработатьКвитанциюПередачиФайла (БСП)

TurboConf - расширение Конфигуратора 1С