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

1. r.moschenskiy 23 23.12.19 12:34 Сейчас в теме
Возможно ли в обработчике ОбработкаПолученияДанныхВыбора() сделать так, чтобы при вводе по строке по полю, отличному от наименования, значения в ДанныеВыбора формировались из значения этого поля и наименования, как при стандартной обработке? К примеру, при вводе кода 925, в автоподборе текст выглядел бы так: "925 Иванов". Сейчас в автоподборе текст состоит только из наименования.
По теме из базы знаний
Найденные решения
5. r.moschenskiy 23 23.12.19 16:44 Сейчас в теме
Выкладываю код, может кому пригодится:
Процедура ОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка)
	
	СтандартнаяОбработка = Ложь;
	
	Запрос = Новый Запрос;
	Запрос.Текст =	
	"ВЫБРАТЬ
	|	ФизическиеЛица.Ссылка КАК Ссылка,
	|	ФизическиеЛица.НомерПрофсоюзногоБилета КАК НомерПрофсоюзногоБилета,
	|	ИСТИНА КАК НайденПоНаименованию,
	|	ФизическиеЛица.Наименование КАК Наименование
	|ИЗ
	|	Справочник.ЧленыПрофсоюза КАК ЧленыПрофсоюза
	|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица КАК ФизическиеЛица
	|		ПО ЧленыПрофсоюза.ФизЛицо = ФизическиеЛица.Ссылка
	|ГДЕ
	|	ЧленыПрофсоюза.ДатаВыбытия = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
	|	И НЕ ЧленыПрофсоюза.ВАрхиве
	|	И ФизическиеЛица.Наименование ПОДОБНО &СтрокаПоиска
	|
	|ОБЪЕДИНИТЬ
	|
	|ВЫБРАТЬ
	|	ФизическиеЛица.Ссылка,
	|	ФизическиеЛица.НомерПрофсоюзногоБилета,
	|	ЛОЖЬ,
	|	ФизическиеЛица.Наименование
	|ИЗ
	|	Справочник.ЧленыПрофсоюза КАК ЧленыПрофсоюза
	|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица КАК ФизическиеЛица
	|		ПО ЧленыПрофсоюза.ФизЛицо = ФизическиеЛица.Ссылка
	|ГДЕ
	|	ЧленыПрофсоюза.ДатаВыбытия = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
	|	И НЕ ЧленыПрофсоюза.ВАрхиве
	|	И ФизическиеЛица.НомерПрофсоюзногоБилета ПОДОБНО &СтрокаПоиска
	|
	|УПОРЯДОЧИТЬ ПО
	|	Наименование";
	
	Запрос.УстановитьПараметр("СтрокаПоиска", Параметры.СтрокаПоиска + "%");
	Результат = Запрос.Выполнить();
	ВыборкаДетальныеЗаписи = Результат.Выбрать();
	
	Список = Новый СписокЗначений;
	Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
		Если ВыборкаДетальныеЗаписи.НайденПоНаименованию Тогда
			Представление = ВыборкаДетальныеЗаписи.Наименование;
		Иначе
			Представление = ВыборкаДетальныеЗаписи.НомерПрофсоюзногоБилета + " (" + ВыборкаДетальныеЗаписи.Наименование + ")";
		КонецЕсли;
		Список.Добавить(ВыборкаДетальныеЗаписи.Ссылка, Представление);
	КонецЦикла;
	
	ДанныеВыбора = Список;

КонецПроцедуры
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. login1020 134 23.12.19 13:31 Сейчас в теме
(1) Возможно этот материал подойдет для решения вашей задачи.
ИТС ПолучениеДанныхВыбора()
2. VmvLer 23.12.19 12:40 Сейчас в теме
в 8.1., на ранних УПП, писали запросы со своим блек-джеком и танцовщицами в обработках выбора.
в 8.3. ничто не мешает создать такое же казино, просто многие привыкли, что платформа это делает сама.
4. r.moschenskiy 23 23.12.19 16:41 Сейчас в теме
Пришлось вручную формировать представление списка значений ДанныеВыбора в зависимости от того, по какому полю было найдено искомое значение.
5. r.moschenskiy 23 23.12.19 16:44 Сейчас в теме
Выкладываю код, может кому пригодится:
Процедура ОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка)
	
	СтандартнаяОбработка = Ложь;
	
	Запрос = Новый Запрос;
	Запрос.Текст =	
	"ВЫБРАТЬ
	|	ФизическиеЛица.Ссылка КАК Ссылка,
	|	ФизическиеЛица.НомерПрофсоюзногоБилета КАК НомерПрофсоюзногоБилета,
	|	ИСТИНА КАК НайденПоНаименованию,
	|	ФизическиеЛица.Наименование КАК Наименование
	|ИЗ
	|	Справочник.ЧленыПрофсоюза КАК ЧленыПрофсоюза
	|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица КАК ФизическиеЛица
	|		ПО ЧленыПрофсоюза.ФизЛицо = ФизическиеЛица.Ссылка
	|ГДЕ
	|	ЧленыПрофсоюза.ДатаВыбытия = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
	|	И НЕ ЧленыПрофсоюза.ВАрхиве
	|	И ФизическиеЛица.Наименование ПОДОБНО &СтрокаПоиска
	|
	|ОБЪЕДИНИТЬ
	|
	|ВЫБРАТЬ
	|	ФизическиеЛица.Ссылка,
	|	ФизическиеЛица.НомерПрофсоюзногоБилета,
	|	ЛОЖЬ,
	|	ФизическиеЛица.Наименование
	|ИЗ
	|	Справочник.ЧленыПрофсоюза КАК ЧленыПрофсоюза
	|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица КАК ФизическиеЛица
	|		ПО ЧленыПрофсоюза.ФизЛицо = ФизическиеЛица.Ссылка
	|ГДЕ
	|	ЧленыПрофсоюза.ДатаВыбытия = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
	|	И НЕ ЧленыПрофсоюза.ВАрхиве
	|	И ФизическиеЛица.НомерПрофсоюзногоБилета ПОДОБНО &СтрокаПоиска
	|
	|УПОРЯДОЧИТЬ ПО
	|	Наименование";
	
	Запрос.УстановитьПараметр("СтрокаПоиска", Параметры.СтрокаПоиска + "%");
	Результат = Запрос.Выполнить();
	ВыборкаДетальныеЗаписи = Результат.Выбрать();
	
	Список = Новый СписокЗначений;
	Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
		Если ВыборкаДетальныеЗаписи.НайденПоНаименованию Тогда
			Представление = ВыборкаДетальныеЗаписи.Наименование;
		Иначе
			Представление = ВыборкаДетальныеЗаписи.НомерПрофсоюзногоБилета + " (" + ВыборкаДетальныеЗаписи.Наименование + ")";
		КонецЕсли;
		Список.Добавить(ВыборкаДетальныеЗаписи.Ссылка, Представление);
	КонецЦикла;
	
	ДанныеВыбора = Список;

КонецПроцедуры
Показать
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот