Имя: Пароль:
1C
 
Быстрый ввод склада по части кода. УПП 1.3
0 slitov
 
29.09.17
16:53
Чет у меня лыжи не едут или копаю не там, помогите.
Надо реализовать ввод склада в документы по коду, без лидирующих нулей и префикса, нашел такое решение: https://helpf.pro/faq83/view/1767.html
Первый вариант не взлетел, как я понимаю он для управляемых форм.
По второму варианту в модуле менеджера справочника склада прописал, хотел посмотреть, что приходит, чтоб подправить запрос, но точка останова не рабоает...

Процедура ОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка)
    
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    Склады.Ссылка
        |ИЗ
        |    Справочник.Склады КАК Склады
        |ГДЕ
        |    Склады.Наименование ПОДОБНО Склады.Наименование";
        
        
    Запрос.УстановитьПараметр("Наименование", "%" + Параметры.СтрокаПоиска + "%");
    
    РезультатЗапроса = Запрос.Выполнить();
    Таблица = РезультатЗапроса.Выгрузить();
    Массив = Таблица.ВыгрузитьКолонку("Ссылка");
    
    ДанныеВыбора = Новый СписокЗначений;
    ДанныеВыбора.ЗагрузитьЗначения(Массив);
    СтандартнаяОбработка = Ложь;
КонецПроцедуры
1 vicof
 
29.09.17
16:58
Возникает на сервере перед стандартным формированием списка при вводе по строке, автоподборе текста и быстром выборе, а также при выполнении метода ПолучитьДанныеВыбора.
2 Heckfy
 
29.09.17
16:58
3 Филиал-msk
 
29.09.17
16:59

|ГДЕ
|    Склады.Наименование ПОДОБНО Склады.Наименование";


Прекрасно
4 slitov
 
29.09.17
17:07
(3) Я тоже на эту красоту обратил внимание, подправить то не проблема, обращение к процедуре не происходит.
(2) Отладка работает.
(1) Т.е. из документа реализации при вводе в поле СкладОрдер должна теоретически попасть в эту процедуру, может я еще чего не учел...
5 _Batoo
 
29.09.17
17:26
(4)

Так и делать надо тогда в форме документа, а не в ОбработкаПолученияДанныхВыбора справочника.
6 slitov
 
29.09.17
17:52
(5) Добавил в модель менеджера документа поступления ОбработкаПолученияДанныхВыбора, не обращается туда при вводе склада (((

Может еще есть варианты?
7 _Batoo
 
29.09.17
17:56
(6)

Снова не попал)

Форма документа - реквизит СкладОрдер - событие АвтоПодбор
8 slitov
 
29.09.17
18:12
(7) Я наверно тугой или... Но туда передаются:
(Элемент, Текст, ТекстАвтоПодбора, СтандартнаяОбработка)
В элементе есть нечто похожее, но не то:
Элемент.СписокВыбора

ДанныеВыбора я нигде не нашел, буду благодарен, если тыкните носом, куда заполнить найденные значения, чтоб высветилось пользователю? ТекстАвтоПодбора вроде строка, как туда ссылку запихнуть то...
9 Филиал-msk
 
29.09.17
19:10
(8) Туда передаются (Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)

Но только в управляемых формах. Что, наверно, все и объясняет.
10 slitov
 
29.09.17
19:18
Вот подсказали в другом месте:
(0) Список найденных складов поместить в СписокЗначений, затем:
1. Проверить, что он не пустой
2. Вызвать метод глобального контекста ВыбранноеЗначение = ВыбратьИзСписка(СписокЗначений)
3. Обработать ВыбранноеЗначение.
4. СтандартнаяОбработка = Ложь

В результате, вы имитируете выпадающий список подобранных значений.
Вот работающий код для истории


Процедура СкладОрдерАвтоПодборТекста(Элемент, Текст, ТекстАвтоПодбора, СтандартнаяОбработка)
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    Склады.Ссылка
        |ИЗ
        |    Справочник.Склады КАК Склады
        |ГДЕ
        |    Склады.КОД ПОДОБНО &КОД";
        
        
    Запрос.УстановитьПараметр("КОД", "%" + Текст + "%");
    
    РезультатЗапроса = Запрос.Выполнить();
    Таблица = РезультатЗапроса.Выгрузить();
    Массив = Таблица.ВыгрузитьКолонку("Ссылка");
    
    ДанныеВыбора = Новый СписокЗначений;
    ДанныеВыбора.ЗагрузитьЗначения(Массив);
    Элемент.СписокВыбора = ДанныеВыбора;
    Вид = ВыбратьИзСписка(ДанныеВыбора, Элемент);
    
    //СтандартнаяОбработка = Ложь;
    
КонецПроцедуры

[1С/]