kb-personal/src/content/docs/knowledge-base/Общие/(БСП) Стандартные подсистемы/3.1.10/Настройка порядка элементов/Подключение к подсистеме Настройка порядка элементов.md
wakadakawaka 3bff7690a5 upgrade
2025-08-05 22:06:25 +05:00

4.6 KiB
Raw Blame History

title, slug
title slug
Подключение к подсистеме Настройка порядка элементов общие-бсп-стандартные-подсистемы-3-1-10-настройка-порядка-элементов/подключение-к-подсистеме-настройка-порядка-элементов

Описание

Подсистема позволяет устанавливать пользовательский порядок элементов в динамических списках:

  • Справочников
  • Планов видов характеристик
  • Планов видов расчета Изображение

Подключение к подсистеме

Для подключения этой подсистемы нужно:

  1. Создать в нужном объекте числовой реквизит РеквизитДопУпорядочивания (Число(5,0)). Установить для него свойство Индексировать в Индексировать с доп. упорядочиванием
  2. Добавить объект в определяемый тип ОбъектСНастраиваемымПорядком
  3. Создать форму списка, подключить к подсистеме Подключаемые команды
  4. В динамическом списке настроить упорядочивание по реквизиту РеквизитДопУпорядочивания. Установить в свойствах элемента пользовательских настроек режим редактирвоания Недоступный Изображение

Настройка данных выбора

Чтобы сохранить порядок элементов при выборе из выпадающего списка в поле ввода нужно:

  1. Для поля ввода реквизита определить обработчик АвтоПодбор
&НаКлиенте
Процедура СтатусАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)
	СтандартнаяОбработка = Ложь;
	ПолучитьДанныеВыбора(Тип("СправочникСсылка.СтатусыЗаказовКлиента"), ПараметрыПолученияДанных);
КонецПроцедуры
  1. В модуле менеджера спраовчника переопределяем

Процедура ОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка)

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

	Пока Выборка.Следующий() Цикл
		
		ДанныеВыбора.Добавить(Выборка.Ссылка, Выборка.Представление);
		
	КонецЦикла;
	
КонецПроцедуры

Если после всех манипуляций что-то не работает - ПЕРЕЗАПУСТИ КОНФИГУРАТОР