Обновить контактную информацию. Добавляет (удаляет) поле ввода или комментарий на форму, обновляя данные.
// Добавляет (удаляет) поле ввода или комментарий на форму, обновляя данные.
// Вызывается из модуля формы объекта-владельца контактной информации.
//
// Параметры:
// Форма - ФормаКлиентскогоПриложения - Форма объекта-владельца, предназначенная для вывода контактной информации.
// Объект - Произвольный - Объект-владелец контактной информации.
// Результат - Произвольный - Необязательный служебный реквизит, полученный из предыдущего обработчика события.
//
// Возвращаемое значение:
// Неопределено - значение не используется, обратная совместимость.
//
Функция ОбновитьКонтактнуюИнформацию(Форма, Объект, Результат = Неопределено) Экспорт
Если Результат = Неопределено Тогда
Возврат Неопределено;
КонецЕсли;
Если Результат.Свойство("ЭтоДобавлениеКомментария") Тогда
ИзменитьКомментарий(Форма, Результат.ИмяРеквизита, Результат.ИмяЭлементаДляРазмещения);
ИначеЕсли Результат.Свойство("ДобавляемыйВид") Тогда
ДобавитьСтрокуКонтактнойИнформации(Форма, Результат, Результат.ИмяЭлементаДляРазмещения);
ИначеЕсли Результат.Свойство("ПоменятьМестамиЭлементы") Тогда
Отбор = Новый Структура("ИмяРеквизита", Результат.ПервыйЭлемент);
ОписаниеКонтактнойИнформации = Форма.КонтактнаяИнформацияОписаниеДополнительныхРеквизитов;
ПервыйЭлемент = ОписаниеКонтактнойИнформации.НайтиСтроки(Отбор)[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 (БСП)
ОбновитьПредопределенныеВидыКонтактнойИнформацииПользователей (БСП)
УстановитьКонтактнуюИнформациюОбъекта (БСП)
Канал FastCode 1C в Телеграм! Шаблоны кода, статьи, полезные советы, курсы по 1С (8К участников)