| 
    
            
         
         | 
    
    
  | 
Вопрос по автоподбору | ☑ | ||
|---|---|---|---|---|
| 
    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) Данные выбора это же список значений?     
         | 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |