Имя: Пароль:
1C
1С v8
Не получается Организовать поиск по справочнику
, ,
0 stepanov1991
 
19.07.14
16:42
Добрый ДЕНЬ! Помогите начинающиму) Я совсем новичок в 1С. Так вот нужно организовать поиск по части слова по справочнику "Клиенты" Искать нужно по 2-ум полям это Наименование и адрес. Делал по книжку, но не так хотелось бы. Вот код того что писал.

Процедура ПоискПоТекстуПриИзменении(Элемент)
            Шаблон = "%"+СокрЛП(Элемент.Значение)+"%";
            Т="ВЫБРАТЬ
        |      Клиенты.Ссылка
        |ИЗ
        |      Справочник.Клиенты КАК Клиенты
        |ГДЕ
        |      Клиенты.ПометкаУдаления = ЛОЖЬ
        |      И Клиенты.ЭтоГруппа = ЛОЖЬ
        |      И (Клиенты.Наименование ПОДОБНО """+Шаблон+"""
        |    ИЛИ Клиенты.Адрес ПОДОБНО """+Шаблон+""")";
                       ВремЗапрос=Новый Запрос(Т);
      ТЗ=ВремЗапрос.Выполнить().Выгрузить();
      ТЗ.ВыбратьСтроку();
КонецПроцедуры;
Но такое выдет поиск, но в отдельном окне и не переходит на нужный  элемент, подскажите как сделать, что бы сразу поподал на нужный элемент в справочнике. Если можно с кодом) А то я совсем новичок.
1 Wobland
 
19.07.14
16:46
что такое "поподать на элемент"?
2 Wobland
 
19.07.14
16:46
СписокОрганизаций.ЗагрузитьЗначения(Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку(0));
    ЭлементыФормы.Организации.Значение.Отбор.Ссылка.Использование=Истина;
    ЭлементыФормы.Организации.Значение.Отбор.Ссылка.ВидСравнения=ВидСравнения.ВСписке;
    ЭлементыФормы.Организации.Значение.Отбор.Ссылка.Значение=СписокОрганизаций;
3 stepanov1991
 
19.07.14
17:01
Поподать на элемент, это так как и стандартный поиск ищет. Т.е. Останавливается на элементе этом.
4 Wobland
 
19.07.14
17:02
тикущую строку присваить хочишь?
5 stepanov1991
 
19.07.14
17:03
А можно полноценный код? что бы я разобрался что и куда и откуда идет, а то я туговат на это делоо пока(( никак не соображу.
6 stepanov1991
 
19.07.14
17:05
я хочу, что бы при написании части наименования, если такая чать найдена(искать нужно по всему справочнику), то автоматически перебрасывало на найденное значение. Не хнаю как правильно объяснить.
7 Wobland
 
19.07.14
17:05
отбор удобней, код рабоч
8 stepanov1991
 
19.07.14
17:06
в смысле? какой код?
9 Wobland
 
19.07.14
17:06
(6) какое из 80 тысяч найденных значений имеется в виду?
10 Wobland
 
19.07.14
17:06
(8) что-то мелькало в ветке, сейчас не найду
11 stepanov1991
 
19.07.14
17:08
искать по наименованию и адресу, искать нужно по части слова, А при чем тут 80 тысяч.
12 Wobland
 
19.07.14
17:09
(11) в моём справочнике ровно 80 тысяч наименований подобны %а"
13 stepanov1991
 
19.07.14
17:11
так, все же как написать правильно?
14 Wobland
 
19.07.14
17:11
(13) отбор не нравится?
15 Ярус
 
19.07.14
17:12
(12) а ведь он даже не понял, что твой код надо припилить после его запроса... куда уж про текущую строку то
16 Wobland
 
19.07.14
17:13
(15) и правильно не понял, если у него УФ ;)
17 Ярус
 
19.07.14
17:15
(11) вот смотри хочешь ты искать по части слова, есть 3 контрагента например Иванов, Иванова, Ивантеев вот ты абрал в поле слово Иван, на какую строчку должен встать курсор? Умный дяденька Вьйобланд предлагает сделать по нормальному, чтобы при наборе слова иван у тебя в флрме списуа не курсор встал куда то, а остались все контрагенты которые содержат это иван. так сделано в типовых 1с
18 Ярус
 
19.07.14
17:16
(16) ну пинок то нужную сторону есть
19 Ярус
 
19.07.14
17:16
не не уф судя по коду (0)
20 Wobland
 
19.07.14
17:17
(19) отсутствие "&НаСервере" смущает? так-то код подходит и туда и сюда...
21 stepanov1991
 
19.07.14
17:18
хорошо, помогите реализовать вышесказанное. Ппросто чайник я совсем еще в этом(
22 Ярус
 
19.07.14
17:19
(20) неа, у него Элемент, приИзменении и запрос, а это извини разделено бы было, а не в одной процедуре
23 Wobland
 
19.07.14
17:19
>ВыбратьСтроку()
телепатия Яруса оказалась сильнее. обычные формы ;)
24 Ярус
 
19.07.14
17:20
(21) после своего запроса поставь код из (2)
25 Wobland
 
19.07.14
17:20
+(24) и хорошенько над ним подумай
26 stepanov1991
 
19.07.14
17:23
как баран на новые ворота( Можно по доходчевей разжевать?
27 Wobland
 
19.07.14
17:24
(26) в СП очень доходчево
28 stepanov1991
 
19.07.14
17:35
СП это что
29 Wobland
 
19.07.14
17:35
Святое Писание - это сборник статей, написанный Пророком Нуралиевым и Апостолами-сотрудниками его при помощи Святаго Духа Божьего, открывающий нам тайны Божьего Промысла и дающий спасение душам нашим
30 stepanov1991
 
19.07.14
17:38
шутите?
31 thezos
 
19.07.14
17:41
Все вопросы из этой ветки разжеваны в документации и желтых книжках)
32 Wobland
 
19.07.14
17:41
(30) здесь никто не возьмётся за тебя работу делать. по крайней мере бесплатно. шли 500 в телефон, и будет у тебя готовый код через полчаса
33 Umga2002
 
19.07.14
17:42
(32) Почему?
Уже помогли, направили ....а надо как в сказке....
34 stepanov1991
 
19.07.14
17:45
СписокОрганизаций.ЗагрузитьЗначения(Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку(0));
    ЭлементыФормы.Организации.Значение.Отбор.Ссылка.Использование=Истина;
    ЭлементыФормы.Организации.Значение.Отбор.Ссылка.ВидСравнения=ВидСравнения.ВСписке;
    ЭлементыФормы.Организации.Значение.Отбор.Ссылка.Значение=СписокОрганизаций;

Его нужно отредоктировать под себя?
35 Wobland
 
19.07.14
17:45
(34) бинго!
36 stepanov1991
 
19.07.14
21:37
Вот что такое список Организаций?
37 Wobland
 
19.07.14
21:54
(36)     СписокОрганизаций=Новый СписокЗначений;
38 Wobland
 
19.07.14
21:54
да на тебе всё

Процедура КоманднаяПанельКонтрагентыПоказатьСоответствие(Кнопка)
    Если ЭлементыФормы.Контрагенты.ТекущаяСтрока=Неопределено Тогда
        Возврат;
    КонецЕсли;
    
    СписокОрганизаций=Новый СписокЗначений;
    Запрос=Новый Запрос;
    Запрос.Текст=
    "ВЫБРАТЬ
    |    Организации2ГИС.Ссылка
    |ИЗ
    |    РегистрСведений.СоответствиеКонтрагентов2ГИС КАК СоответствиеКонтрагентов2ГИС
    |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты
    |        ПО СоответствиеКонтрагентов2ГИС.Контрагент = Контрагенты.Ссылка
    |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Организации2ГИС КАК Организации2ГИС
    |        ПО СоответствиеКонтрагентов2ГИС.Код2ГИС = Организации2ГИС.Код2ГИС
    |ГДЕ
    |    Контрагенты.Ссылка = &Ссылка";
    Запрос.УстановитьПараметр("Ссылка", ЭлементыФормы.Контрагенты.ТекущаяСтрока.Ссылка);
    СписокОрганизаций.ЗагрузитьЗначения(Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку(0));
    ЭлементыФормы.Организации.Значение.Отбор.Ссылка.Использование=Истина;
    ЭлементыФормы.Организации.Значение.Отбор.Ссылка.ВидСравнения=ВидСравнения.ВСписке;
    ЭлементыФормы.Организации.Значение.Отбор.Ссылка.Значение=СписокОрганизаций;
    ЭлементыФормы.Рубрики.Доступность=Ложь;
КонецПроцедуры
39 stepanov1991
 
19.07.14
22:42
Сделал короче вот так и все работает(
Процедура ПоискПоТекстуПриИзменении(Элемент)
    
    Шаблон = "%"+СокрЛП(Элемент.Значение)+"%";
    
    Т="ВЫБРАТЬ
      |    Клиенты.Ссылка
      |ИЗ
      |    Справочник.Клиенты КАК Клиенты
      |ГДЕ
      |    Клиенты.ПометкаУдаления = ЛОЖЬ
      |    И Клиенты.ЭтоГруппа = ЛОЖЬ
      |    И (Клиенты.Наименование ПОДОБНО """+Шаблон+"""
      |    ИЛИ Клиенты.Адрес ПОДОБНО """+Шаблон+""")";
        
    
    ВремЗапрос=Новый Запрос(Т);
    ТЗ=ВремЗапрос.Выполнить().Выгрузить();
    ТЗ.ВыбратьСтроку();
    //  ТЗ.ВыбратьСтроку();
Если ТЗ.Количество() > 0 Тогда
ЭлементыФормы.СправочникСписок.ТекущаяСтрока = ТЗ[0][0];
КонецЕсли;

КонецПроцедуры;
40 Wobland
 
19.07.14
22:43
(39) двоечник. ну ладно, пусть будет
41 Wobland
 
19.07.14
22:44
и можешь не благодарить, всё равно не помог
42 stepanov1991
 
19.07.14
22:58
так, а чего не двоечник то, второй раз пишу, сижу вот с книжками разбираюсь((((( Неделю только изучаю 1С, и с прогроммированием мало очень знаком, но хочу осилить(
43 stepanov1991
 
19.07.14
22:59
Посоветуйте книжки хоть для самых маленьких
44 Wobland
 
19.07.14
23:19
(42) вдумываться надо в слова старших ;)
Е.Ю. Хрусталева Разработка сложных отчетов в 1С Предприятии 8.djvu
Ицик Бен-Ган - Microsoft SQL Server 2008. Основы T-SQL - 2009.djvu
1c82_Практическое пособие разработчика.djvu
Закон Брукера: Даже маленькая практика стоит большой теории.