|
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
|
:) пойду в другую тему, по изменению реквизитов формы, меняет, но при сохранении нет..
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |