|
Параметр запроса Ссылка на справочник | ☑ | ||
---|---|---|---|---|
0
Uchenica74
05.04.13
✎
10:59
|
Добрый день! Подскажите пожалуйста как правильно передать параметр в запрос:
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ПаспортныеДанныеФизЛицСрезПоследних.ФизЛицо, | ФизическиеЛица.Ссылка, | ПаспортныеДанныеФизЛицСрезПоследних.ДокументВид |ИЗ | РегистрСведений.ПаспортныеДанныеФизЛиц.СрезПоследних КАК ПаспортныеДанныеФизЛицСрезПоследних | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица КАК ФизическиеЛица | ПО ПаспортныеДанныеФизЛицСрезПоследних.ФизЛицо = ФизическиеЛица.Ссылка |ГДЕ | ФизическиеЛица.Ссылка В (&Ссылка)"; Запрос.УстановитьПараметр("Ссылка",Справочники.ФизическиеЛица.НайтиПоНаименованию("Наименование")); Результат = Запрос.Выполнить().Выбрать(); Пока Результат.Следующий() Цикл Если Результат.ДокументВид = "" Тогда Сообщить ("В справочнике для сотрудника " + Результат.ФизЛицо + " не заполнено поле Удостоверение"); КонецЕсли; КонецЦикла; |
|||
1
Wobland
05.04.13
✎
10:59
|
а так и передавай
|
|||
2
Uchenica74
05.04.13
✎
11:00
|
не находит, результат запроса пустой
|
|||
3
Wobland
05.04.13
✎
11:00
|
(2) всё правильно сделала, молодец
|
|||
4
Wobland
05.04.13
✎
11:01
|
впрочем, тут бы правое соединение...
|
|||
5
ObjectRelation Model
05.04.13
✎
11:01
|
1. таблицы поменять местами
2. проверка на NULL паспортнвх данных 3. зачем В, если проверка на равенство? 4. Зачем ищите по наименованию то? у кого Наименование="Наименование"? |
|||
6
cw014
05.04.13
✎
11:01
|
НайтиПоНаименованию("Наименование")
Вы уверенны, что у вас есть Физлицо с наименованием - "Наименование"? |
|||
7
Uchenica74
05.04.13
✎
11:02
|
сейчас проверю этот момент с наименованием
|
|||
8
Godofsin
05.04.13
✎
11:02
|
Стоп, конфа какая? теряете хватку, Уважаемые =)
|
|||
9
cw014
05.04.13
✎
11:02
|
(8) А тут уже не важно
|
|||
10
Uchenica74
05.04.13
✎
11:02
|
8.1
|
|||
11
cw014
05.04.13
✎
11:03
|
(10) +100500 :))))))
|
|||
12
salvator
05.04.13
✎
11:04
|
(0) Искользуй НайтиПоНаименованию только в КРАЙНИХ случаях
|
|||
13
Wobland
05.04.13
✎
11:04
|
(8) хватку мы теряем в другом
(10) без фото не взлетит |
|||
14
Godofsin
05.04.13
✎
11:04
|
(9) Это должно быть принципиально =)
|
|||
15
Uchenica74
05.04.13
✎
11:05
|
хорошо, тогда как мне параметр то правильно передать, если использовать НайтиПоНаименованию - использовать в крайних случаях
|
|||
16
Wobland
05.04.13
✎
11:05
|
(15) можно попросить юзера его ввести
|
|||
17
cw014
05.04.13
✎
11:06
|
Выведи поле на форму с типом СправочникСсылка.ФизическиеЛица и подставляй его
|
|||
18
salvator
05.04.13
✎
11:06
|
(15) Используй ссылку на элемент.
|
|||
19
Godofsin
05.04.13
✎
11:06
|
(15) наилучший вариант - передай через поле на форме. В запросе "В" замени на "=". Если конечно не в группе ищешь
|
|||
20
Uchenica74
05.04.13
✎
11:07
|
"В" замени на "=" - это уже сделала
|
|||
21
Михаил 1С
05.04.13
✎
11:08
|
(0) Даша, а зачем ты так сложно делаешь?
Прямо в запросе условие по Наименованию: Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ПаспортныеДанныеФизЛицСрезПоследних.ФизЛицо, | ФизическиеЛица.Ссылка, | ПаспортныеДанныеФизЛицСрезПоследних.ДокументВид |ИЗ | РегистрСведений.ПаспортныеДанныеФизЛиц.СрезПоследних КАК ПаспортныеДанныеФизЛицСрезПоследних | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица КАК ФизическиеЛица | ПО ПаспортныеДанныеФизЛицСрезПоследних.ФизЛицо = ФизическиеЛица.Ссылка |ГДЕ | ФизическиеЛица.Ссылка В (&Ссылка)"; Запрос.УстановитьПараметр("Наименование","Сидоров")); Результат = Запрос.Выполнить().Выбрать(); Пока Результат.Следующий() Цикл Если Результат.ДокументВид = "" Тогда Сообщить ("В справочнике для сотрудника " + Результат.ФизЛицо + " не заполнено поле Удостоверение"); КонецЕсли; КонецЦикла; |
|||
22
Михаил 1С
05.04.13
✎
11:08
|
Извини, поторопился.
|
|||
23
Михаил 1С
05.04.13
✎
11:09
|
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ | ПаспортныеДанныеФизЛицСрезПоследних.ФизЛицо, | ФизическиеЛица.Ссылка, | ПаспортныеДанныеФизЛицСрезПоследних.ДокументВид |ИЗ | РегистрСведений.ПаспортныеДанныеФизЛиц.СрезПоследних КАК ПаспортныеДанныеФизЛицСрезПоследних | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица КАК ФизическиеЛица | ПО ПаспортныеДанныеФизЛицСрезПоследних.ФизЛицо = ФизическиеЛица.Ссылка |ГДЕ | ФизическиеЛица.Наименование = &Наименование"; Запрос.УстановитьПараметр("Наименование","Сидоров")); |
|||
24
ObjectRelation Model
05.04.13
✎
11:09
|
Даша, фоту!
|
|||
25
Михаил 1С
05.04.13
✎
11:10
|
Или сделай
| ФизическиеЛица.Наименование Подобно &Наименование"; Запрос.УстановитьПараметр("Наименование","Сидоров&")); |
|||
26
Uchenica74
05.04.13
✎
11:10
|
сейчас попробую
|
|||
27
Михаил 1С
05.04.13
✎
11:10
|
Опять ошибся, надо процент поставить:
Запрос.УстановитьПараметр("Наименование","Сидоров%")); |
|||
28
cw014
05.04.13
✎
11:11
|
(23)(25) Вообщето можно вот так сделать, причем смысл будет тот же:
Запрос.Текст = "ВЫБРАТЬ | ПаспортныеДанныеФизЛицСрезПоследних.ФизЛицо, | ФизическиеЛица.Ссылка, | ПаспортныеДанныеФизЛицСрезПоследних.ДокументВид |ИЗ | РегистрСведений.ПаспортныеДанныеФизЛиц.СрезПоследних КАК ПаспортныеДанныеФизЛицСрезПоследних |ГДЕ | ПаспортныеДанныеФизЛицСрезПоследних.ФизЛицо.Наименование ПОДОБНО &Наименование"; |
|||
29
salvator
05.04.13
✎
11:11
|
(23) Тогда уж без параметра вообще
|ГДЕ | ФизическиеЛица.Наименование = "Горбачев" |
|||
30
cw014
05.04.13
✎
11:11
|
Упс
|
|||
31
cw014
05.04.13
✎
11:11
|
Запрос.Текст = "ВЫБРАТЬ
| ПаспортныеДанныеФизЛицСрезПоследних.ФизЛицо, | ПаспортныеДанныеФизЛицСрезПоследних.ДокументВид |ИЗ | РегистрСведений.ПаспортныеДанныеФизЛиц.СрезПоследних КАК ПаспортныеДанныеФизЛицСрезПоследних |ГДЕ | ПаспортныеДанныеФизЛицСрезПоследних.ФизЛицо.Наименование ПОДОБНО &Наименование"; |
|||
32
cw014
05.04.13
✎
11:11
|
Вот так от вот
|
|||
33
cw014
05.04.13
✎
11:12
|
(26) Человек прав, без фото не взлетит
|
|||
34
Uchenica74
05.04.13
✎
11:12
|
странно, поле Наименование пустое, что то не так делаю значит
|
|||
35
cw014
05.04.13
✎
11:12
|
(34) Может потому что оно не заполнено?
|
|||
36
Uchenica74
05.04.13
✎
11:14
|
не, не, все правильно, не туда смотрела
|
|||
37
Михаил 1С
05.04.13
✎
11:14
|
(34) Эх, Даша, с красивой фотографией было бы гораздо приятнее, а то я вот - уже два раза ошибался. Хотя, и то приятно, что девушке помог, с вами приятнее.
|
|||
38
Михаил 1С
05.04.13
✎
11:15
|
(37) Красавица!
|
|||
39
rutony
05.04.13
✎
11:15
|
Ну теперь все сразу взлетит :D
|
|||
40
salvator
05.04.13
✎
11:15
|
(36) Элемент-то есть с таким наименованием?
|
|||
41
Uchenica74
05.04.13
✎
11:15
|
))))
|
|||
42
salvator
05.04.13
✎
11:16
|
+(40) ЛЕВОЕ на ПРАВОЕ соединение поменяла?
|
|||
43
cw014
05.04.13
✎
11:16
|
(41) Землячка... И где то я тебя уже видел
|
|||
44
Uchenica74
05.04.13
✎
11:18
|
блин, не меняет соединение((
|
|||
45
Uchenica74
05.04.13
✎
11:18
|
надо разобраться со всеми советами)))
|
|||
46
salvator
05.04.13
✎
11:19
|
(44) Что значит "не меняет"?
|
|||
47
Uchenica74
05.04.13
✎
11:21
|
с чем может быть связано: в результате запроса "ошибка чтения значения"?
|
|||
48
Uchenica74
05.04.13
✎
11:22
|
наверно с тем что снова не правильно передаю параметр((
|
|||
49
salvator
05.04.13
✎
11:23
|
Давай код сюда еще раз, исправленный.
|
|||
50
rutony
05.04.13
✎
11:24
|
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ | ФизическиеЛица.Ссылка КАК ФизЛицо, | ПаспортныеДанныеФизЛицСрезПоследних.ДокументВид |ИЗ | Справочник.ФизическиеЛица КАК ФизическиеЛица | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПаспортныеДанныеФизЛиц.СрезПоследних КАК ПаспортныеДанныеФизЛицСрезПоследних | ПО (ПаспортныеДанныеФизЛицСрезПоследних.ФизЛицо = ФизическиеЛица.Ссылка) |ГДЕ | ФизическиеЛица.Наименование ПОДОБНО &Наименование" Запрос.УстановитьПараметр("Наименование","%Сидоров%")); ЗапросВыполнить = Запрос.Выполнить(); Если Не ЗапросВыполнить.Пустой() Тогда Результат = ЗапросВыполнить.Выбрать(); Пока Результат.Следующий() Цикл Если Не ЗначениеЗаполнено(Результат.ДокументВид) Тогда Сообщить("В справочнике для сотрудника " + Результат.ФизЛицо + " не заполнено поле Удостоверение"); КонецЕсли; КонецЦикла; КонецЕсли; |
|||
51
Uchenica74
05.04.13
✎
11:25
|
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ | ПаспортныеДанныеФизЛицСрезПоследних.ФизЛицо, | ПаспортныеДанныеФизЛицСрезПоследних.ДокументВид, | ФизическиеЛица.Наименование |ИЗ | РегистрСведений.ПаспортныеДанныеФизЛиц.СрезПоследних КАК ПаспортныеДанныеФизЛицСрезПоследних | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица КАК ФизическиеЛица | ПО ПаспортныеДанныеФизЛицСрезПоследних.ФизЛицо = ФизическиеЛица.Наименование |ГДЕ | ФизическиеЛица.Наименование = &Наименование"; Запрос.УстановитьПараметр("Наименование",Справочники.ФизическиеЛица.Наименование); Результат = Запрос.Выполнить().Выбрать(); Пока Результат.Следующий() Цикл Если Результат.ДокументВид = "" Тогда Сообщить ("В справочнике для сотрудника " + Результат.ФизЛицо + " не заполнено поле Удостоверение"); КонецЕсли; КонецЦикла; |
|||
52
Галахад
гуру
05.04.13
✎
11:29
|
Фотка пропала, вот и не получается.
|
|||
53
salvator
05.04.13
✎
11:29
|
(51) исправь
|ГДЕ | ФизическиеЛица.Наименование = "Иванов"" и убери УстановитьПараметр ну и "Иванов" замени на нужную фамилию |
|||
54
Uchenica74
05.04.13
✎
11:29
|
"Фотка пропала, вот и не получается." не может быть такого
|
|||
55
salvator
05.04.13
✎
11:29
|
сорри, |ГДЕ
| ФизическиеЛица.Наименование = ""Иванов"""; |
|||
56
salvator
05.04.13
✎
11:30
|
Ты поле "Наименование" пытаешься сравнивать со ссылкой, вот и не получается.
|
|||
57
Uchenica74
05.04.13
✎
11:31
|
это понятно, но суть в том что, документ о приеме на работу не должен проводиться, если у сотрудника не заполнены паспотрные данные, поэтому я не могу сразу задавать параметр "иванов"
|
|||
58
cw014
05.04.13
✎
11:32
|
(57) А что ты пытаешься вообще найти?
|
|||
59
Godofsin
05.04.13
✎
11:34
|
(57) Ну так передавай ссылку из приемаНаРаботу! там же проверка идет
|
|||
60
Uchenica74
05.04.13
✎
11:34
|
теперь у меня вообще вопрос зачем я спрачоник соединяю с регистром
|
|||
61
Uchenica74
05.04.13
✎
11:35
|
справочник*
|
|||
62
salvator
05.04.13
✎
11:36
|
Вот держи
СсылкаНаФизЛицо = // определи тут проверяемого физика Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ПаспортныеДанныеФизЛицСрезПоследних.ФизЛицо, | ЕСТЬNULL(ПаспортныеДанныеФизЛицСрезПоследних.ДокументВид,"""") КАК ДокументВид, | ФизическиеЛица.Ссылка |ИЗ | РегистрСведений.ПаспортныеДанныеФизЛиц.СрезПоследних КАК ПаспортныеДанныеФизЛицСрезПоследних | ПРАВОЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица КАК ФизическиеЛица | ПО ПаспортныеДанныеФизЛицСрезПоследних.ФизЛицо = ФизическиеЛица.Наименование |ГДЕ | ФизическиеЛица.Ссылка = &ФизЛицо"; Запрос.УстановитьПараметр("ФизЛицо",СсылкаНаФизЛицо); Результат = Запрос.Выполнить().Выбрать(); Пока Результат.Следующий() Цикл Если Результат.ДокументВид = "" Тогда Сообщить ("В справочнике для сотрудника " + Результат.ФизЛицо + " не заполнено поле Удостоверение"); КонецЕсли; КонецЦикла; |
|||
63
Галахад
гуру
05.04.13
✎
11:37
|
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ | ПаспортныеДанныеФизЛицСрезПоследних.ДокументВид |ИЗ | РегистрСведений.ПаспортныеДанныеФизЛиц.СрезПоследних КАК ПаспортныеДанныеФизЛицСрезПоследних |ГДЕ | ПаспортныеДанныеФизЛицСрезПоследних.ФизЛицо = &ФизЛицо"; Запрос.УстановитьПараметр("ФизЛицо",Справочники.ФизическиеЛица.НайтиПоНаименованию("Наименование")); Результат = Запрос.Выполнить(); Если Результат.Пустой() Тогда Нету документов!!! КонецЕсли; |
|||
64
Uchenica74
05.04.13
✎
11:40
|
все поняла
|
|||
65
Uchenica74
05.04.13
✎
11:41
|
моя ошибка в том что не было переменной с Физ лицом, сделала "СсылкаНаФизЛицо = // определи тут проверяемого физика" - все получилось, спасибо большое
|
|||
66
rutony
05.04.13
✎
11:44
|
Выборка = РегистрыСведений.ПаспортныеДанныеФизЛиц.Выбрать(,,Новый Структура("ФизЛицо", Справочники.ФизическиеЛица.НайтиПоНаименованию("Боброва Вера Владимировна")));
Если Выборка.Следующий() = Ложь Тогда Сообщить("Нету ничего"); КонецЕсли; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |