Имя: Пароль:
1C
 
поиск данных при наборе текста в поле
0 falselight
 
15.01.17
17:25
Подскажите пожалуйста по такому вопросу.
У меня в нем вообще нет ясности.
Есть поле у табличной части документа, типа справочник номенклатура.
В это поле начинают вводить данные с клавиатуры.
Срабатывает автопоиск наверное по всему справочнику, по первым буквам. Так ли это?
И как в этот поиск можно передавать что бы он происходил не по всему
справочнику, а только в определенном каталоге справочника?
1 Неверный Параметр И
 
15.01.17
17:37
Красная кнопочка "Я" даст ответ тебе, ливингстар
2 falselight
 
16.01.17
06:29
есть примеры

Процедура ПолеВвода1АвтоПодборТекста (Элемент, Текст, ТекстАвтоПодбора, СтандартнаяОбработка)
    // Примерный текст обработчика
    Если Текст = "п" Тогда
        ТекстАвтоПодбора = "пункт";
        СтандартнаяОбработка = Ложь;
    КонецЕсли;
КонецПроцедуры


Процедура ПолеВвода1ОкончаниеВводаТекста(Элемент, Текст, Значение, СтандартнаяОбработка)
    Если Элемент = ЭлементыФормы.ПолеВвода1 Тогда
        Если Текст = "одежда" Тогда
            Значение = Новый СписокЗначений();
            Значение.Добавить(Справочники.Номенклатура.НайтиПоНаименованию("Рубашка"));
            Значение.Добавить(Справочники.Номенклатура.НайтиПоНаименованию("Брюки"));
            СтандартнаяОбработка = Ложь;
        КонецЕсли;
    КонецЕсли;
КонецПроцедуры
3 falselight
 
16.01.17
06:31
(2+) Но у меня задача производить поиск в справочнике
сотрудники организаций. Например есть выборка сделанная запросом, где имеются только сотрудники у которых вид занятости = основное рабочее место.

Как можно производить поиск в этой выборке по первым введенным символам?
4 falselight
 
16.01.17
06:39
К примеру, -
В выборке запроса отобраны записи среди которых есть "фитнес".
Я набираю в поле с клавиатуры фит, нажимаю enter
открывается и фитнес и ещё 4 записи с началом фит.

Как сделать что бы открывалась только запись фитнес?
Так как только она есть в выборке!
5 Неверный Параметр И
 
16.01.17
07:20
В найденных тобой примерах и СП есть все, что тебе нужно, Ливингстар.
6 falselight
 
16.01.17
07:45
(5) понял! делаю!!!!
7 falselight
 
16.01.17
10:29
Сделал эту подстановку по вводимым первым символам
по примеру, для обычных форм

Процедура ПолеВвода1ОкончаниеВводаТекста(Элемент, Текст, Значение, СтандартнаяОбработка)
    Если Элемент = ЭлементыФормы.ПолеВвода1 Тогда
        Если Текст = "одежда" Тогда
            Значение = Новый СписокЗначений();
            Значение.Добавить(Справочники.Номенклатура.НайтиПоНаименованию("Рубашка"));
            Значение.Добавить(Справочники.Номенклатура.НайтиПоНаименованию("Брюки"));
            СтандартнаяОбработка = Ложь;
        КонецЕсли;
    КонецЕсли;
КонецПроцедуры


но теперь это не работает для управляемой формы, пишет
что нет в списке, красным текстом.
Как можно сделать аналогично для управляемой формы?
8 falselight
 
16.01.17
10:34
(7+) Там в этой процедуре, другие параметры в скобках, -

(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка)

Как тут сделать аналог (7) ?
9 Fedor-1971
 
16.01.17
10:35
(7) в функции НаСервере сформируй список и присвой его в Значение
10 Fedor-1971
 
16.01.17
10:36
(8) конфигуратором посмотри типы данных и почитай в СП что ожидают в каждом из параметров
11 falselight
 
16.01.17
10:41
(9) В управляемом приложении нет Значения!
Там есть, - Текст, ДанныеВыбора, ПараметрыПолученияДанных
Что из этого нужно сделать списком?

На сервере в смысле эту процедуру вообще выполнять?
12 falselight
 
16.01.17
10:44
(10) Че то с СП вообще другая процедура ОкончаниеВводаТекста, с другими параметрами ((((
Там есть Значение
13 Fedor-1971
 
16.01.17
10:45
(11) сгоняй НаСерверБезКонтекста и из функции верни сформированный список значений (прямо так, как сделано).
Потом читаем СП на предмет узнать что именно надо заполнить СпискомЗначений

(12) Значит как-то не правильно смотришь в СП
14 falselight
 
16.01.17
10:48
(13)
Там есть /Поле Формы/Расширение поля ввода/ - это что у меня.

и

/Элементы управления/Поле ввода/ - вот тут есть и текст и значение.
15 falselight
 
16.01.17
10:53
(13) Но список в управляемой форме я и так получаю, не нужно на сервер идти за этим. Важно как что бы его высвечивать в поле как в обычной форме?
В процедуре этой нет Значения, там есть, -
Текст, ДанныеВыбора, ПараметрыПолученияДанных .
16 falselight
 
16.01.17
10:54
Я Значение меняю на ДанныеВыбора и его заполняю как список, н очт ото не то пока
17 falselight
 
16.01.17
10:57
Если я набираю того чего нет в списке, то вываливается куча значения из тех что не те что я передал в список (
18 Fedor-1971
 
16.01.17
11:00
(17) СтандартнаяОбработка=ложь - выключи стандартный механизм
19 falselight
 
16.01.17
11:08
(18) Он у меня первой строкой идет в процедуре. Но все по прежнему(((( Начинаешь вводить, пишет нет в списке.

https://cloud.mail.ru/public/GKSd/73bPLWXkG
20 falselight
 
16.01.17
11:14
(19) СтандартнаяОбработка = Ложь
отключил
добавляю нужные значения в ДанныеВыбора

ну и все должно работать как в обычном приложении по идее
почему не работает?
21 Fedor-1971
 
16.01.17
11:18
(19) сними галку у поля "РежимВыбораИзСписка" - она ограничивает выбор только списком из "СписокВыбора", а он пустой, соответственно тебе об этом и сообщают
22 Fedor-1971
 
16.01.17
11:21
(19) мощно, запрос НаКлиенте (НаКлиенте - общаемся с клиентом, НаСервере - выбираем и корректируем данные). Почитай что нить по УФ, там так с наскока не прорубить
23 falselight
 
16.01.17
11:23
(22) ошибки же не выдало, хотя да, нужно на сервере получать и возвращать как вы говорили да? Но тут не ругается я вот и делаю далее.
24 falselight
 
16.01.17
11:24
(21) РежимВыбораИзСписка нет галки
есть галка ВыбратьТип и РедактированиеТекста

Как с этим быть тогда?
Если галка РежимВыбораИзСписка и так не установлена?
25 Fedor-1971
 
16.01.17
11:28
(23) лучше привыкай сразу, потом будет сложнее (возможно, запущен толстый клиент или включена совместимость. Тонкий сразу ругается)

(24) если ругается на список, значит он пустой и с ним система пытается нечто сверить. (возможно типы не совпадают поля и того где выбираешь, например поле - текст, а выборка из справочника - сравнение по строкам пролетает)
Тут у меня уже закончились предположения, дальше помочь нечем.
26 falselight
 
16.01.17
11:31
(25) Это все понятно, пока затык что не работает выбор по первым вводимым символам, как в обычном приложении, не пойму что придумать.
27 falselight
 
16.01.17
11:31
(25) ну так пример же в (19)
подобный аналог работает в обычном приложении
28 Fedor-1971
 
16.01.17
11:51
(27) в обычном да, но для УФ надо менять логику и смотреть на имеющиеся параметры обработчика, может что-нить изменилось
29 falselight
 
16.01.17
11:51
сообщение что бы не выводилось "Нет в списке"
в процедуре ИзменениеТекстаРедактирования поставил
СтандартнаяОбработка = Ложь;

галки РежимВыбораИзСписка нет

если значение есть то оно проставляется, если нет пишет что его нет
буду сейчас искать примеры где в списке несколько позиций на одну букву
30 falselight
 
16.01.17
11:59
Если в списке 2 значения к примеру на букву Ф.
Вываливается список с одним элементом (((
Но если нажать на тч, на свободное место, то открывается список с двумя этими элементами. Пока не понял как разобрать это все...
31 falselight
 
16.01.17
12:15
Короче в управляемой форме, нужно в этих процедурах
ставить стандартную обработку в ложь, тоже

АвтоПодбор
ИзменениеТекстаРедактирования
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший