ОбновитьКонтактнуюИнформацию (БСП)

Автор: 1С
ОбщийМодуль.УправлениеКонтактнойИнформацией
1С БСП

Обновить контактную информацию. Добавляет (удаляет) поле ввода или комментарий на форму, обновляя данные.

// Добавляет (удаляет) поле ввода или комментарий на форму, обновляя данные.
// Вызывается из модуля формы объекта-владельца контактной информации.
//
// Параметры:
//    Форма     - ФормаКлиентскогоПриложения - Форма объекта-владельца, предназначенная для вывода контактной информации.
//    Объект    - Произвольный     - Объект-владелец контактной информации.
//    Результат - Произвольный     - Необязательный служебный реквизит, полученный из предыдущего обработчика события.
//
// Возвращаемое значение:
//    Неопределено - значение не используется, обратная совместимость.
//
Функция ОбновитьКонтактнуюИнформацию(Форма, Объект, Результат = Неопределено) Экспорт
	
	Если Результат = Неопределено Тогда
		Возврат Неопределено;
	КонецЕсли;
	
	Если Результат.Свойство("ЭтоДобавлениеКомментария") Тогда
		ИзменитьКомментарий(Форма, Результат.ИмяРеквизита, Результат.ИмяЭлементаДляРазмещения);
	ИначеЕсли Результат.Свойство("ДобавляемыйВид") Тогда
		ДобавитьСтрокуКонтактнойИнформации(Форма, Результат, Результат.ИмяЭлементаДляРазмещения);
	ИначеЕсли Результат.Свойство("ПоменятьМестамиЭлементы") Тогда
		
		Отбор = Новый Структура("ИмяРеквизита", Результат.ПервыйЭлемент);
		ОписаниеКонтактнойИнформации = Форма.КонтактнаяИнформацияОписаниеДополнительныхРеквизитов;
		ПервыйЭлемент = ОписаниеКонтактнойИнформации.НайтиСтроки(Отбор)[0];
		Отбор = Новый Структура("ИмяРеквизита", Результат.ВторойЭлемент);
		ВторойЭлемент = ОписаниеКонтактнойИнформации.НайтиСтроки(Отбор)[0];
		
		СписокПереносимыхСвойств = "Комментарий,Представление,Значение";
		ВременныйБуфер = Новый Структура(СписокПереносимыхСвойств);
		
		ЗаполнитьЗначенияСвойств(ВременныйБуфер, ПервыйЭлемент);
		ЗаполнитьЗначенияСвойств(ПервыйЭлемент, ВторойЭлемент, СписокПереносимыхСвойств);
		ЗаполнитьЗначенияСвойств(ВторойЭлемент, ВременныйБуфер);
		
		Форма[Результат.ПервыйЭлемент] = ПервыйЭлемент.Представление;
		Форма[Результат.ВторойЭлемент] = ВторойЭлемент.Представление;
		
		Форма.Элементы[Результат.ПервыйЭлемент].РасширеннаяПодсказка.Заголовок = ПервыйЭлемент.Комментарий;
		Форма.Элементы[Результат.ВторойЭлемент].РасширеннаяПодсказка.Заголовок = ВторойЭлемент.Комментарий;
		
	КонецЕсли;
	
	Если Результат.Свойство("ОбновитьКонтекстноеМеню") Тогда
		Если Результат.Свойство("ИмяЭлементаДляРазмещения") Тогда
			ОбновитьКонтекстноеМеню(Форма, Результат.ИмяЭлементаДляРазмещения);
			
			Если Результат.Свойство("ИмяРеквизита") Тогда
				ОписаниеКонтактнойИнформации = Форма.КонтактнаяИнформацияОписаниеДополнительныхРеквизитов;
				Отбор = Новый Структура("ИмяРеквизита", Результат.ИмяРеквизита);
				НайденнаяСтрока = ОписаниеКонтактнойИнформации.НайтиСтроки(Отбор)[0];
				Если УправлениеКонтактнойИнформациейКлиентСервер.ЭтоКонтактнаяИнформацияВJSON(НайденнаяСтрока.Значение) Тогда
					КонтактнаяИнформацияПоПолям = УправлениеКонтактнойИнформациейСлужебный.СтрокуJSONВСтруктуру(НайденнаяСтрока.Значение);
					КонтактнаяИнформацияПоПолям.Comment = ?(Результат.Свойство("Комментарий"), Результат.Комментарий, "");
					НайденнаяСтрока.Значение = УправлениеКонтактнойИнформациейСлужебный.СтруктураВСтрокуJSON(КонтактнаяИнформацияПоПолям);
				КонецЕсли;
			КонецЕсли;
			
		Иначе
			Для каждого ИмяЭлементаРазмещения Из Форма.ПараметрыКонтактнойИнформации Цикл
				ОбновитьКонтекстноеМеню(Форма, ИмяЭлементаРазмещения.Ключ);
			КонецЦикла;
		КонецЕсли;
	КонецЕсли;
	
	Возврат Неопределено;
	
КонецФункции

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

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

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

ОбновитьКонтактнуюИнформациюДляСписков (БСП)

ОбновитьКонтактнуюИнформациюДляСписковОтложенно (БСП)

ОбновитьКонтактнуюИнформациюДляСписковДляОбъекта (БСП)

КонтактнаяИнформацияИзJSONВXML (БСП)

ОбновитьПредопределенныеВидыКонтактнойИнформацииПользователей (БСП)

УстановитьКонтактнуюИнформациюОбъекта (БСП)

JSONВКонтактнуюИнформациюПоПолям (БСП)

НоваяКонтактнаяИнформация (БСП)

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