Изенение представления ссылки в реквизите и в списках выбора
В модуле менеджера
//++Троцкий 13012026
//Меняем представление сылки в самом реквизите
Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Представление = ПолучитьКастомноеПредставление(Данные.Ссылка);
КонецПроцедуры
Процедура ОбработкаПолученияПолейПредставления(Поля, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Поля.Добавить("Ссылка");
Поля.Добавить("Наименование");
Поля.Добавить("Область");
Поля.Добавить("Район");
Поля.Добавить("Тип");
КонецПроцедуры
//Меняем представление сылки в списке выбора
Процедура ОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка)
Если СтрДлина(Параметры.СтрокаПоиска)>0 Тогда
СтандартнаяОбработка = Ложь;
ДанныеВыбора = Новый СписокЗначений;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 20
| НП.Ссылка КАК Ссылка
|ИЗ
| Справочник.НП_СписокНаселенныхПунктов КАК НП
|ГДЕ
| НП.Наименование ПОДОБНО &СтрокаПоиска
|
|УПОРЯДОЧИТЬ ПО
| НП.Наименование";
Запрос.УстановитьПараметр("СтрокаПоиска", "%" + Параметры.СтрокаПоиска + "%");
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
ПредставлениеЭлемента = ПолучитьКастомноеПредставление(Выборка.Ссылка);
ДанныеВыбора.Добавить(Выборка.Ссылка, ПредставлениеЭлемента);
КонецЦикла;
КонецЕсли;
КонецПроцедуры
Функция ПолучитьКастомноеПредставление(мСсылка)
Возврат "" + мСсылка.Наименование + ", " + мСсылка.Тип + ", " + мСсылка.Область + ", " + мСсылка.Район;
КонецФункции
Функция ПолучитьИнформациюПоНаселенномуПункту(НП_НаселенныйПунктСсылка) Экспорт
СтруктураВозврата = Новый Структура;
СтруктураВозврата.Вставить("CityRef");
СтруктураВозврата.Вставить("RecipientCityName");
СтруктураВозврата.Вставить("CityType");
СтруктураВозврата.Вставить("RecipientArea");
СтруктураВозврата.Вставить("RecipientAreaRegions");
СтруктураВозврата.Вставить("CityCode");
Если не ЗначениеЗаполнено(НП_НаселенныйПунктСсылка) Тогда Возврат СтруктураВозврата; КонецЕсли;
УстановитьПривилегированныйРежим(Истина);
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| НП_СписокНаселенныхПунктов.Код КАК CityRef,
| НП_СписокНаселенныхПунктов.Наименование КАК RecipientCityName,
| НП_СписокНаселенныхПунктов.Тип КАК CityType,
| НП_СписокНаселенныхПунктов.Область КАК RecipientArea,
| НП_СписокНаселенныхПунктов.Район КАК RecipientAreaRegions,
| НП_СписокНаселенныхПунктов.КодГорода КАК CityCode
|ИЗ
| Справочник.НП_СписокНаселенныхПунктов КАК НП_СписокНаселенныхПунктов
|ГДЕ
| НП_СписокНаселенныхПунктов.Ссылка = &Ссылка";
Запрос.УстановитьПараметр("Ссылка", НП_НаселенныйПунктСсылка);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
ЗаполнитьЗначенияСвойств(СтруктураВозврата, ВыборкаДетальныеЗаписи);
КонецЦикла;
УстановитьПривилегированныйРежим(Истина);
Возврат СтруктураВозврата;
КонецФункции
//--