izenenie_predstavlenija_ssylki_v_rekvizite_i_v_spiskax_vybora

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

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