|
Сортировка и поиск по владельцу в форме списка подчиненного справочника | ☑ | ||
---|---|---|---|---|
0
Cyberhawk
01.09.11
✎
14:02
|
Типовая УТ 10.3. Есть форма списка справочника "Договоры контрагентов". Второй день бьюсь над реализацией механизма поиска/фильтра списка по наименованию владельца (т.е. контрагента). Конечная цель для пользователя: в форме списка договоров иметь возможность, введя несколько букв названия контрагента, встать на первый договор по нему (ну, или если брать отбор - увидеть все строки (договора) подходящих контрагентов).
Сортировки добился установкой свойства НастройкаПорядка у колонки реквизита формы СправочникСписок в обработчике формы "ПриОткрытии". ЭлементУП = ЭлементыФормы.СправочникСписок.НастройкаПорядка.Найти("Владелец"); Если ЭлементУП <> Неопределено Тогда ЭлементУП.Доступность = Истина; КонецЕсли; С поиском/отбором возникли некоторые проблемки. Сейчас дошел уже до того, что повесил на форму поле ввода и в событии "АвтоПодборТекста" планирую подменять источник данных (СправочникСписок) для табличного поля формы списка. Также есть вариант добавить текстовую колонку в источник данных (реквизит формы СправочникСписок), заполнить ее наименованием контрагентов и обновить табличное поле на форме. Друзья, если кто-то реализовывал такой механизм - подкиньте пример или подскажите, в каком направлении двигаться. Позиционирование на нужной строке или отбор - не имеет значения, важно только то, что это выполняется для колонки со ссылочным типом (либо для программно добавленной колонкки). |
|||
1
Cyberhawk
01.09.11
✎
14:05
|
Пардон, выше ошибка: свойство "НастройкаПорядка" не у колонки реквизита формы, а у колонки табличного поля формы, источником данных для которого является этот реквизит.
|
|||
2
Cyberhawk
05.09.11
✎
07:26
|
Сделал, как мне кажется, по-тупому: поместил поле ввода на форму и на событие АвтоПодборТекста() повесил функцию, которая запросом выгребает нужных мне контрагентов и программно устанавливает отбор вида "В списке" по этим контрагентам.
Процедура ПолеПоискаАвтоПодборТекста(Элемент, Текст, ТекстАвтоПодбора, СтандартнаяОбработка) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Контрагенты.Ссылка |ИЗ | Справочник.Контрагенты КАК Контрагенты |ГДЕ | Контрагенты.Наименование ПОДОБНО ""%""+&Параметр+""%"""; Запрос.УстановитьПараметр("Параметр", Текст); Результат = Запрос.Выполнить().Выгрузить(); СписокПодобранных = Новый СписокЗначений; СписокПодобранных.ЗагрузитьЗначения(Результат.ВыгрузитьКолонку("Ссылка")); СправочникСписок.Отбор.Владелец.ВидСравнения=ВидСравнения.ВСписке; СправочникСписок.Отбор.Владелец.Значение=СписокПодобранных; СправочникСписок.Отбор.Владелец.Использование=ЗначениеЗаполнено(ЭлементыФормы.ПолеПоиска.Значение); Работает шустро, но и контрагентов в базе не больше тысячи (больше не предвидится). Все-таки кто-то, возможно, реализовывал данный функционал по-другому? Подскажите более красивое решение, если оно есть, буду благодарен. |
|||
3
Cyberhawk
09.09.11
✎
06:15
|
Ап.
|
|||
4
Рэйв
09.09.11
✎
06:45
|
СправочникСписок.<Имя справочника> (CatalogList.<Имя справочника>)
Отбор (Filter) Использование: Только чтение. Описание: Тип: Отбор. Позволяет установить отбор по реквизитам справочника. Имена элементов отбора совпадают с именами колонок списка справочника, а также дополняются критериями отбора, затрагивающими справочник. См. также: СправочникСписок, свойство Колонки |
|||
5
Cyberhawk
09.09.11
✎
08:45
|
Хм, ну Я это и использую в своем варианте решения. Вы попробуйте поиск (позиционирование/фильтр) сделать, а не отбор :)
Интересует стандартное поведение 1С в случае с текстовыми колонками, но перенесенное для колонки владельцев (начните печатать на клавиатуре в форме списка номенклатуры - вот так же хочу и для владельца в форме списка договоров контрагентов). |
|||
6
Cyberhawk
13.09.11
✎
11:07
|
Ап.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |