Всем привет! Данный материал посвящен описанию базовой возможности работы с контактной информацией в конфигурациях, содержащих "Библиотеку стандартных подсистем" (БСП). Данная статья будет полезна для разработчиков, программистов и всех тех, кто решился не придумывать свой "разработку - велосипед" для работы с контактной информацией, а использовать уже готовое. Статья призвана экономить ваше время и повысить эффективность разработки.
- Платформа 8.3.22.1704 и выше
- Версия БСП 3.1.8.476 и выше
Добавим два реквизита: Представление и Адрес
На форме обработки разместим Адрес с видом "Надпись" и поставим флаг "Гиперссылка"
Платформа, на которой тестировался код
&НаКлиенте
Процедура АдресНажатие(Элемент)
ВидАдреса = ПредопределенноеЗначение("Справочник.ВидыКонтактнойИнформации.АдресПоПропискеФизическиеЛица");
РедактироватьАдрес(Элемент, ВидАдреса);
КонецПроцедуры
&НаКлиенте
Процедура РедактироватьАдрес(Элемент, ВидАдреса)
ОписаниеОповещения = Новый ОписаниеОповещения(
"АдресНажатие_Завершение",
ЭтотОбъект,
Элемент);
ПараметрыОткрытия = УправлениеКонтактнойИнформациейКлиент.ПараметрыФормыКонтактнойИнформации(ВидАдреса, ЭтотОбъект[Элемент.Имя]);
ПараметрыОткрытия.Вставить("ТолькоПросмотр", Ложь);
УправлениеКонтактнойИнформациейКлиент.ОткрытьФормуКонтактнойИнформации(ПараметрыОткрытия, , ОписаниеОповещения);
КонецПроцедуры
&НаКлиенте
Процедура АдресНажатие_Завершение(Результат, Элемент) Экспорт
Если Результат = Неопределено Тогда
Возврат;
КонецЕсли;
Адрес = Результат.КонтактнаяИнформация;
Представление = Результат.Представление;
Элемент.Заголовок = Представление;
ЭтотОбъект[Элемент.Имя] = Результат.КонтактнаяИнформация;
// Расскоменнтировать если нужно сохранять настройку
//Сохранить();
КонецПроцедуры
Ну и в случае, если нам нужно где то сохранять и загружать адрес, задействуем обработчик ПриСозданииНаСервере и раскомментировать //Сохранить()
&НаСервере
Процедура Сохранить()
КлючОбъекта = "ОбработкаВводаАдреса";
КлючНастроек = "ВводАдреса";
Настройки = Новый Структура("Адрес,Представление", Адрес,Представление);
ОбщегоНазначения.ХранилищеОбщихНастроекСохранить(КлючОбъекта, КлючНастроек, Настройки,,ИмяПользователя());
КонецПроцедуры
&НаСервере
Процедура Восстановить()
СтруктураОбщихПараметров = Неопределено;
СтруктураОбщихПараметров = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить("ОбработкаВводаАдреса", "ВводАдреса", , , ИмяПользователя());
Если ТипЗнч(СтруктураОбщихПараметров) = Тип("Структура") Тогда
Если СтруктураОбщихПараметров.Свойство("Адрес") Тогда
Адрес = СтруктураОбщихПараметров.Адрес;
Если СтруктураОбщихПараметров.Свойство("Представление") Тогда
Представление = СтруктураОбщихПараметров.Представление;
Элементы.Адрес.Заголовок = Представление;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Восстановить();
КонецПроцедуры