|
Вопрос по автоподбору | ☑ | ||
---|---|---|---|---|
0
oleg_prg
24.12.13
✎
14:23
|
Уважаемые форумчане, добрый день, подскажите пожалуйста как наложить отбор на автоподбор.
Вот фото http://yadi.sk/d/YU70IEJaEqyAJ Спасибо! |
|||
1
kosts
24.12.13
✎
14:30
|
(0) В обычных формах - создать свой список и показать его пользователю. Внешне не отличается.
|
|||
2
oleg_prg
24.12.13
✎
14:38
|
Спасибо за совет, но у меня упр.формы
|
|||
3
sixis
24.12.13
✎
14:45
|
В модуле менеджера справочника есть предопределенная процедура ОбработкаПолученияДанныхВыбора. В ней можно установить отбор.
|
|||
4
oleg_prg
24.12.13
✎
15:54
|
Сделал так http://yadi.sk/d/LXV1VDVAErKcq
Ошибка, "неправильное условие отбора", подскажите пожалуйста, что ни так??? |
|||
5
samozvanec
24.12.13
✎
16:00
|
СправочникМенеджер.<Имя справочника> (CatalogManager.<Имя справочника>)
ОбработкаПолученияДанныхВыбора (ChoiceDataGetProcessing) Синтаксис: ОбработкаПолученияДанныхВыбора(<ДанныеВыбора>, <Параметры>, <СтандартнаяОбработка>) Параметры: <ДанныеВыбора> Тип: СписокЗначений. В обработчике можно сформировать и передать в этом параметре данные для выбора. При этом параметр <СтандартнаяОбработка> должен быть установлен в Ложь. |
|||
6
samozvanec
24.12.13
✎
16:02
|
(4) а так, по ходу, только на равенство получится установить
|
|||
7
oleg_prg
24.12.13
✎
16:04
|
Добавил СтандартнаяОбработка = ложь;
Процедура ОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка) СтандартнаяОбработка = ложь; Если Параметры.Свойство("Город") Тогда Список = новый СписокЗначений; Запрос = новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Районы.Ссылка |ИЗ | Справочник.Районы КАК Районы |ГДЕ | Районы.Владелец = &Владелец"; Запрос.УстановитьПараметр("Владелец", Параметры.Город); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл Список.Добавить(Выборка.Ссылка); КонецЦикла; ЗначениеОтбора = Новый Структура("Владелец", Список); ПараметрыВыбора = Новый Структура("Отбор", ЗначениеОтбора); Параметры.Отбор = ЗначениеОтбора; КонецЕсли; КонецПроцедуры Вообще при выборе теперь ничего не происходит, нет списка для автоподбора, он исчез |
|||
8
samozvanec
24.12.13
✎
16:06
|
(7) печалька
|
|||
9
samozvanec
24.12.13
✎
16:07
|
а если так?
СправочникМенеджер.<Имя справочника> (CatalogManager.<Имя справочника>) ОбработкаПолученияДанныхВыбора (ChoiceDataGetProcessing) Синтаксис: ОбработкаПолученияДанныхВыбора(<ДанныеВыбора>, <Параметры>, <СтандартнаяОбработка>) Параметры: <ДанныеВыбора> Тип: СписокЗначений. В обработчике можно сформировать и передать в этом параметре данные для выбора. |
|||
10
oleg_prg
24.12.13
✎
16:07
|
проблема в том что если сделать вот так то все ок
Процедура ОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка) Если Параметры.Свойство("Город") Тогда Параметры.Отбор.Владелец = Справочник.Район.НайтиПоНаименованию("Московский"); КонецЕсли; КонецПроцедуры т.е. один элемент сравнивает, а структуру элементов как запихнуть - ума не приложу, уже пол дня убил на эту хрень.... |
|||
11
oleg_prg
24.12.13
✎
16:08
|
Если можно, напишите код пожалуйста, я уже в тихой истерике ))))
|
|||
12
samozvanec
24.12.13
✎
16:11
|
(11) запросом получи, что тебе надо пользователю показать для выбора, сунь в список значений, этот список значений в данные выбора(первый параметр процедуры). и стандартную обработку лучше внутри условия выставлять.
|
|||
13
oleg_prg
24.12.13
✎
16:14
|
УРРРАААА! спасибо samozvanec! Вроде то что надо!!!
|
|||
14
oleg_prg
24.12.13
✎
16:24
|
Вот решение, может кому пригодится
Подмена списка автоподбора Процедура ОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка) СтандартнаяОбработка = ложь; Если Параметры.Свойство("Город") Тогда Запрос = новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Улицы.Ссылка |ИЗ | Справочник.Улицы КАК Улицы |ГДЕ | (Улицы.Владелец.Владелец = &Владелец) И (Улицы.Наименование ПОДОБНО &СтрокаПоиска)"; Запрос.УстановитьПараметр("Владелец", Параметры.Город); Запрос.УстановитьПараметр("СтрокаПоиска", СокрЛП(Параметры.СтрокаПоиска)+"%"); ДанныеВыбора = новый СписокЗначений; Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл ДанныеВыбора.Добавить(Выборка.Ссылка); КонецЦикла; КонецЕсли; КонецПроцедуры |
|||
15
dj_serega
24.12.13
✎
16:35
|
(14) Данные выбора это же список значений?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |