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