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