Поиск в списке справочника по подстроке...

В данном разделе можно задавать вопросы по программированию на платформе 1С:Предприятие 8.
(Раздел предназначен для тех, кто уже прошел обучение в нашем учебном центре)

p.s. Просьба задавать вопросы только по программированию. На вопросы по типовым конфигурациям обычно не отвечаю по двум причинам
1. В последнее время редко с ними работаю.
2. Чтобы ответить на вопрос требуется: установить соответствующую базу нужного релиза, смоделировать ситуацию, и только после этого возможно залезть в конфигуратор и разобраться что не так (к сожалению, у меня нет столько времени).

Поиск в списке справочника по подстроке...

Сообщение cobra77777 » 20 ноя 2016, 20:55

Здравствуйте!
Платформа: 8.3.9.1818.
Заинтересовал Ваш метод "Поиск в списке справочника по подстроке, в процессе набора текста" (далее метод)
Сергей скажите пожалуйсто хочу тоже реализовать (на своей конфигурации) по Вашему методу, но к сожалению Поиск не работает по набору
текста. В чём может быть ошибка ? Спасибо.
cobra77777
 
Сообщений: 52
Зарегистрирован: 11 авг 2012, 21:26

Re: Поиск в списке справочника по подстроке...

Сообщение admin » 21 ноя 2016, 17:37

Странный вопрос... Где код или хотя бы описание ваших действий?
admin
Администратор
 
Сообщений: 241
Зарегистрирован: 14 дек 2011, 11:11

Re: Поиск в списке справочника по подстроке...

Сообщение cobra77777 » 21 ноя 2016, 21:07

Код. Собственно непонятно почему не идёт выборка при наборе текста.

&НаКлиенте
Процедура СтрокаПоискаПриИзменении(Элемент)
ВыполнитьПоиск (СтрокаПоиска);
КонецПроцедуры

&НаКлиенте
Процедура СтрокаПоискаИзменениеТекстаРедактирования(Элемент, Текст, СтандартнаяОбработка)
ВыполнитьПоиск (Текст);
КонецПроцедуры


&НаКлиенте
Процедура ВыполнитьПоиск (СтрокаОтбора)

Для каждого ЭлементОтбора Из Список.КомпоновщикНастроек.Настройки.Отбор.Элементы Цикл
Если ЭлементОтбора.Представление = "ПоискПоПодстроке" Тогда
ЭлементОтбора.Использование = СокрЛП (СтрокаОтбора) <> "";
Если ЭлементОтбора.Использование Тогда
Для каждого ЭлементПоиска из ЭлементОтбора.Элементы Цикл
ЭлементПоиска.ПравоеЗначение = СтрокаОтбора;
КонецЦикла;
Элементы.Список.Отображение = ОтображениеТаблицы.Список;
Иначе
Элементы.Список.Отображение = ОтображениеТаблицы.ИерархическийСписок;
КонецЕсли;
Прервать;
КонецЕсли;

КонецЦикла;

КонецПроцедуры
cobra77777
 
Сообщений: 52
Зарегистрирован: 11 авг 2012, 21:26

Re: Поиск в списке справочника по подстроке...

Сообщение admin » 21 ноя 2016, 23:31

&НаКлиенте
Процедура СтрокаПоискаИзменениеТекстаРедактирования(Элемент, Текст, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ВыполнитьПоиск (Текст);
КонецПроцедуры

&НаКлиенте
Процедура СтрокаПоискаПриИзменении(Элемент)
Поиск(СтрокаПоиска);
ТекущийЭлемент = Элементы.СписокНоменклатуры;
КонецПроцедуры

Кроме этого, для корректной работы кода обработчика ИзменениеТекстаРедактирования в настройках поля СтрокаПоиска свойство ОбновлениеТекстаРедактирования необходимо установить в значение НеИспользовать.
admin
Администратор
 
Сообщений: 241
Зарегистрирован: 14 дек 2011, 11:11

Re: Поиск в списке справочника по подстроке...

Сообщение cobra77777 » 22 ноя 2016, 20:43

весь код:
В Вашем примере Справочник -> Номенклатура, в моём случае Справочник ->Техника.

> Кроме этого, для корректной работы кода обработчика ИзменениеТекстаРедактирования в настройках поля СтрокаПоиска свойство ОбновлениеТекстаРедактирования необходимо установить в значение НеИспользовать.
- Выполнено.

&НаКлиенте
Процедура СтрокаПоискаПриИзменении(Элемент)
ВыполнитьПоиск (СтрокаПоиска);
ТекущийЭлемент = Элементы.Список?????????; <----- вот здесь проблема в моём случае не выдаёт СписокТехника :(

КонецПроцедуры

&НаКлиенте
Процедура СтрокаПоискаИзменениеТекстаРедактирования(Элемент, Текст, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ВыполнитьПоиск (Текст);
КонецПроцедуры


&НаКлиенте
Процедура ВыполнитьПоиск (СтрокаОтбора)

Для каждого ЭлементОтбора Из Список.КомпоновщикНастроек.Настройки.Отбор.Элементы Цикл
Если ЭлементОтбора.Представление = "ПоискПоПодстроке" Тогда
ЭлементОтбора.Использование = СокрЛП (СтрокаОтбора) <> "";
Если ЭлементОтбора.Использование Тогда
Для каждого ЭлементПоиска из ЭлементОтбора.Элементы Цикл
ЭлементПоиска.ПравоеЗначение = СтрокаОтбора;
КонецЦикла;
Элементы.Список.Отображение = ОтображениеТаблицы.Список;
Иначе
Элементы.Список.Отображение = ОтображениеТаблицы.ИерархическийСписок;
КонецЕсли;
Прервать;
КонецЕсли;

КонецЦикла;

КонецПроцедуры
cobra77777
 
Сообщений: 52
Зарегистрирован: 11 авг 2012, 21:26

Re: Поиск в списке справочника по подстроке...

Сообщение admin » 23 ноя 2016, 10:07

cobra77777 писал(а):ТекущийЭлемент = Элементы.Список?????????; <----- вот здесь проблема в моём случае не выдаёт СписокТехника :(

Тогда пишите как выдает, наверное просто "Список".
admin
Администратор
 
Сообщений: 241
Зарегистрирован: 14 дек 2011, 11:11

Re: Поиск в списке справочника по подстроке...

Сообщение cobra77777 » 23 ноя 2016, 21:29

Извините, но и "Список" тоже не работает.
Вложения
1с_8.3.9.1818.jpg
1с_8.3.9.1818.jpg (162.27 KiB) Просмотров: 6033
cobra77777
 
Сообщений: 52
Зарегистрирован: 11 авг 2012, 21:26

Re: Поиск в списке справочника по подстроке...

Сообщение admin » 24 ноя 2016, 12:12

В свойствах конфигурации какое значение установлено для режима совместимости?
admin
Администратор
 
Сообщений: 241
Зарегистрирован: 14 дек 2011, 11:11


Re: Поиск в списке справочника по подстроке...

Сообщение admin » 24 ноя 2016, 16:55

Для базы в режиме совместимости с версией 8.2 нужно так:
Код: выделить все
&НаКлиенте
Процедура ВыполнитьПоиск (СтрокаОтбора)
   Для каждого ЭлементОтбора Из Список.Отбор.Элементы Цикл
      Если ЭлементОтбора.Представление = "ПоискПоПодстроке" Тогда
...
admin
Администратор
 
Сообщений: 241
Зарегистрирован: 14 дек 2011, 11:11

След.

Вернуться в Вопросы по программированию

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron