|   |   | 
| 
 | 1C8.1 Поиск Элемента в справочнике по 2 значениям | ☑ | ||
|---|---|---|---|---|
| 0
    
        leftmails 06.09.12✎ 10:26 | 
        Друзья! приветсвую...
  Пожалуйста подскажите, а можно ли осуществить поиск по справочнику по двум условиям? Ищу по наименованиею, а хотелось бы добавтьб еще и по "Версия" Данные = Справочники.Инт_Процессы.Выбрать(); Данные =Справочники.Инт_Процессы.НайтиПоНаименованию(СтрПоиска); Пожалуйста подскажите как найти по 2 параметрам? | |||
| 1
    
        ZanderZ 06.09.12✎ 10:27 | 
        запросом     | |||
| 2
    
        Smit1C 06.09.12✎ 10:27 | 
        (0) запросом можешь искать хоть по 5 условиям     | |||
| 3
    
        orefkov 06.09.12✎ 10:28 | 
        (0) семерочник чтоле?     | |||
| 4
    
        Skylark 06.09.12✎ 10:39 | 
        "Иваааан!!! Семерошник штоле!?..." 
  :-) | |||
| 5
    
        leftmails 06.09.12✎ 10:45 | 
        Не получается у меня что то запросом
  {Справочник.Тест.Форма.Форма(98)}: Ошибка при вызове метода контекста (Выполнить): {(5, 1)}: Синтаксическая ошибка "ПО" <<?>>ПО запросик.Наименование = Наименование Запрос.Выполнить().Выбрать().Следующий(); по причине: {(5, 1)}: Синтаксическая ошибка "ПО" <<?>>ПО запросик.Наименование = Наименование Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ |Инт_Процессы.Наименование, |Инт_Процессы.Версия |ИЗ Справочники.Инт_Процессы КАК запросик |ПО запросик.Наименование = Наименование"; Запрос.Выполнить().Выбрать().Следующий(); | |||
| 6
    
        Maxus43 06.09.12✎ 10:48 | 
        открой для себя конструктор запросов.
  (3) однозначно) | |||
| 7
    
        leftmails 06.09.12✎ 10:50 | 
        (6) , (3) Новичек))     | |||
| 8
    
        leftmails 06.09.12✎ 10:54 | 
        А как сделать конструктор запросов.. ?     | |||
| 9
    
        Повелитель 06.09.12✎ 10:59 | 
        Правой кнопкой по пустому месту - "Конструктор запросов"     | |||
| 10
    
        leftmails 06.09.12✎ 11:00 | 
        Да нашел , пасиб.. ща делаю:)     | |||
| 11
    
        Maxus43 06.09.12✎ 11:03 | 
        лучше шаблоны - прочее - запрос с параметром     | |||
| 12
    
        leftmails 06.09.12✎ 11:10 | 
        Сформировал
  Запрос.Текст = "ВЫБРАТЬ | Инт_Процессы.Наименование, | Инт_Процессы.Версия |ИЗ | Справочник.Инт_Процессы КАК Инт_Процессы |ГДЕ | Инт_Процессы.Версия = &Версия | И Инт_Процессы.Наименование = &Наименование"; Запрос.Выполнить().Выбрать().Следующий() Ругается {Справочник.Тест.Форма.Форма(105)}: Ошибка при вызове метода контекста (Выполнить): {(7, 24)}: Не задано значение параметра "Версия" Инт_Процессы.Версия = <<?>>&Версия Запрос.Выполнить().Выбрать().Следующий(); по причине: {(7, 24)}: Не задано значение параметра "Версия" Инт_Процессы.Версия = <<?>>&Версия | |||
| 13
    
        Maxus43 06.09.12✎ 11:14 | 
        (12) как 1с догадается что такое &Версия и &Наименование? подумай просто     | |||
| 14
    
        thezos 06.09.12✎ 11:15 | 
        Запрос.УстановитьПараметр()     | |||
| 15
    
        orefkov 06.09.12✎ 11:15 | 
        "Не хватает маны для выполнения запроса"
  Ищи, ищи, квест почти пройден. | |||
| 16
    
        leftmails 06.09.12✎ 11:17 | 
        Я стваил
  Инт_Процессы.Версия = 1 И Инт_Процессы.Наименование = 'письма'"; Ругается на письма, типа не найден | |||
| 17
    
        BICO 06.09.12✎ 11:24 | 
        (15) ))
  попробуй Запрос.Текст = "ВЫБРАТЬ | Инт_Процессы.Наименование, | Инт_Процессы.Версия |ИЗ | Справочник.Инт_Процессы КАК Инт_Процессы |ГДЕ | Инт_Процессы.Версия = &Версия | И Инт_Процессы.Наименование = &Наименование"; Запрос.УстановитьПараметр("Версия",ПеременнаяВерсия); Запрос.УстановитьПараметр("Наименование",ПеременнаяНаименование); | |||
| 18
    
        leftmails 06.09.12✎ 11:25 | 
        Сделал:
  Запрос = Новый Запрос; Версия=1; Наименование="тест файла"; Запрос.УстановитьПараметр("письмо","письмо"); Запрос.Текст = "ВЫБРАТЬ | Инт_Процессы.Наименование, | Инт_Процессы.Версия |ИЗ | Справочник.Инт_Процессы КАК Инт_Процессы |ГДЕ | Инт_Процессы.Версия = 1 | И Инт_Процессы.Наименование = &письмо"; Запрос.Выполнить().Выбрать().Следующий(); Ниче не происходит, как воспользоваться условиеми | |||
| 19
    
        BICO 06.09.12✎ 11:26 | 
        уже скоро будет происходить     | |||
| 20
    
        leftmails 06.09.12✎ 11:27 | 
        (17), (19) Ни в моем запросе не в вашем нет ошибок...
  Как теперь воспользоваться поиском? ну есть или нет.. Делаю Сообщить(запрос); Пишет запрос | |||
| 21
    
        BICO 06.09.12✎ 11:36 | 
        текст всей процедуры можно увидеть ??     | |||
| 22
    
        Maxus43 06.09.12✎ 11:37 | 
        (21) не стоит... там ужас     | |||
| 23
    
        Serg_1960 06.09.12✎ 11:37 | 
        (15) заигрался? в WoW? :)
  (18) "Запрос.Выполнить().Выбрать().Следующий();" - так нельзя писать. Можно: Выборка = Запрос.Выполнить().Выбрать(); Выборка.Следующий(); // если, например, запрос возвращает только одну запись. Пока Выборка.Следующий() Цикл // если запрос возвращает одну или несколько записей ... КонецЦикла; | |||
| 24
    
        BICO 06.09.12✎ 11:38 | 
        ну я видел этот ужас раньше .. сам начинал после 7.7, пока все в голове сложилось ..     | |||
| 25
    
        BICO 06.09.12✎ 11:39 | 
        (23) вот как пишет мы не видим, мб там все оформленно красиво.     | |||
| 26
    
        leftmails 06.09.12✎ 11:45 | 
        Вот я  без запроса на 1 параметр так:
  Данные =Справочники.Инт_Процессы.НайтиПоНаименованию(СтрПоиска); Сообщить(Данные.Ссылка); А здесь даже не знаю как получить данные | |||
| 27
    
        BICO 06.09.12✎ 11:51 | 
        (26) ну вот и чудненько и распрекрасненько.     | |||
| 28
    
        palpetrovich 06.09.12✎ 11:52 | 
        (26) см (23) должно помочь, если Инт_Процессы.Версия - тип число конечно     | |||
| 29
    
        leftmails 06.09.12✎ 11:52 | 
        (27) А как получить после Запрос.Выполнить()?     | |||
| 30
    
        BICO 06.09.12✎ 11:53 | 
        (29) текст весь покажи.     | |||
| 31
    
        leftmails 06.09.12✎ 11:55 | 
        Запрос = Новый Запрос; 
  ПеременнаяВерсия="1"; ПеременнаяНаименование="тест файла"; Запрос.Текст = "ВЫБРАТЬ | Инт_Процессы.Наименование, | Инт_Процессы.Версия |ИЗ | Справочник.Инт_Процессы КАК Инт_Процессы |ГДЕ | Инт_Процессы.Версия = &Версия | И Инт_Процессы.Наименование = &Наименование"; Запрос.УстановитьПараметр("Версия",ПеременнаяВерсия); Запрос.УстановитьПараметр("Наименование",ПеременнаяНаименование); Выборка = Запрос.Выполнить().Выбрать(); Выборка.Следующий(); Надо вывести данные найденного, ссылку и т.д. | |||
| 32
    
        BICO 06.09.12✎ 11:58 | 
        1) Выборка = Запрос.Выполнить().Выбрать();
  замени на ТЗ = Запрос.Выполнить().Выгрузить(); в ТЗ будет таблица значений, там уже разберешься. 1) если через выборку делать, то по именам обращайся Пока Выборка.Следующий() Цикл Перем1 = Выборка.Наименование; КонецЦикла; | |||
| 33
    
        BICO 06.09.12✎ 12:01 | 
        и в запросе ты не получаешь ссылку, т.е. по твоему запросу ответом будет таблица из "Наименование" и "версия" с типом данных строка.     | |||
| 34
    
        BICO 06.09.12✎ 12:09 | 
        Процедура ВывестиЧтото()
  Запрос = Новый Запрос; ПеременнаяВерсия="1"; ПеременнаяНаименование="тест файла"; Запрос.Текст = "ВЫБРАТЬ | Инт_Процессы.Наименование, | Инт_Процессы.Ссылка КАК Ссылка, | Инт_Процессы.Версия КАК Версия |ИЗ | Справочник.Инт_Процессы КАК Инт_Процессы |ГДЕ | Инт_Процессы.Версия = &Версия | И Инт_Процессы.Наименование = &Наименование"; Запрос.УстановитьПараметр("Версия",ПеременнаяВерсия); Запрос.УстановитьПараметр("Наименование",ПеременнаяНаименование); ТЗ = Запрос.Выполнить().Выгрузить(); Если ТЗ.Количество()>0 Тогда Для Каждого СтрТЗ ИЗ ТЗ Цикл Сообщить("Наименование: "+СтрТЗ.Наименование+", версия: "+СтрТЗ.Версия); КонецЦикла; КонецЕсли; | |||
| 35
    
        BICO 06.09.12✎ 12:13 | 
        Сообщить("Наименование: "+СтрТЗ.Наименование+", версия: "+СтрТЗ.Версия);
  можно было сделать как Сообщить("Наименование: "+СтрТЗ.Ссылка.Наименование+", версия: "+СтрТЗ.Ссылка.Версия); ведь в СтрТЗ.Ссылка находится ссылка на объект БД, но т.к. мы получили эти данные в запросе, выводим их из результата (ТЗ). | |||
| 36
    
        leftmails 06.09.12✎ 12:14 | 
        Спасибо, но  странно, ни чего не выводит.. пусто..     | |||
| 37
    
        BICO 06.09.12✎ 12:15 | 
        потому как ты задал неверные отборы ..     | |||
| 38
    
        BICO 06.09.12✎ 12:15 | 
        ПеременнаяВерсия="1";
  ПеременнаяНаименование="тест файла"; уверен что в справочнике они без лишних пробелов ?? | |||
| 39
    
        BICO 06.09.12✎ 12:17 | 
        ПеременнаяВерсия="1";
  в справочнике например "00001" | |||
| 40
    
        del123 06.09.12✎ 12:21 | 
        BICO разошелся))     | |||
| 41
    
        BICO 06.09.12✎ 12:22 | 
        да учетка давно(полоска длинная), а ничего не пишу, а тут вопрос, думаю справлюсь, не по космическим кораблям     | |||
| 42
    
        leftmails 06.09.12✎ 12:22 | 
        Да не, я же делал так:
  СтрПоиска = "тест файла"; Данные =Справочники.Инт_Процессы.НайтиПоНаименованию(СтрПоиска); Сообщить(Данные.Ссылка); Решил вывести Количество перед условием, но получил ошибку Сообщить(Строка(ТЗ.Количество)); Если ТЗ.Количество()>0.. {Справочник.Тест.Форма.Форма(110)}: Поле объекта не обнаружено (Количество) Сообщить(Строка(ТЗ.Количество)); Ничего не понимаю:) | |||
| 43
    
        BICO 06.09.12✎ 12:25 | 
        может ..
  Сообщить(Строка(ТЗ.Количество())); после Количество () ?? | |||
| 44
    
        BICO 06.09.12✎ 12:27 | 
        пока каша в голове, но думаю утрамбуется со временем.     | |||
| 45
    
        leftmails 06.09.12✎ 12:31 | 
        А ну да, возвращает 0:(
  Попробую по одному... Действительно по наименованию ищет... буду думать что с версией.. Хотя версию возвращает 0, 1 | |||
| 46
    
        BICO 06.09.12✎ 12:32 | 
        ПеременнаяВерсия="1";
  замени на ПеременнаяВерсия=1; | |||
| 47
    
        leftmails 06.09.12✎ 12:32 | 
        Сделал ПеременнаяВерсия=1;
  И все норм стало:) Огромное спасибо всем! Особенно BICO:_) | |||
| 48
    
        leftmails 06.09.12✎ 12:33 | 
        (46) ага:)     | |||
| 49
    
        BICO 06.09.12✎ 12:33 | 
        до 100 не догнал ..     | |||
| 50
    
        leftmails 06.09.12✎ 13:03 | 
        :) пойду в другую тему, по изменению реквизитов формы, меняет, но при сохранении  нет..     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |