|
Запрос работает в консоли запросов, но в ФормеЭлемента не определяет тип, в чем причина? 🠗 (Фрэнки 26.06.2020 13:20) | ☑ | ||
---|---|---|---|---|
0
Mythe
26.06.20
✎
10:00
|
Данный запрос, в консоли запросов работает как часы, но вот при его реализации на практике он не определяет тип строки, почему?
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Таксофоны.Номер КАК Номер |ИЗ | Справочник.Таксофоны КАК Таксофоны |ГДЕ | Таксофоны.Абоненты.ФИО = &ФИО"; Запрос.УстановитьПараметр("ФИО", Объект.Наименование); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Объект.Блокировка = ВыборкаДетальныеЗаписи.Номер; КонецЦикла; При Debug`e Функции "ВыборкаДетальныеЗаписи.Следующий()" пишет Поле Объекта не обнаружено(следующий). Если же проверять переменную "ВыборкаДетальныеЗаписи" то в поле Номер в значении пишет Ошибка чтения значения. |
|||
1
Галахад
гуру
26.06.20
✎
10:03
|
А это чему равно? "Объект.Наименование"
|
|||
2
Mythe
26.06.20
✎
10:04
|
(1) ФИО
|
|||
3
Mythe
26.06.20
✎
10:05
|
Тип Строка
|
|||
4
Mythe
26.06.20
✎
10:06
|
я через дебаг смотрел, там все нормально отображает, то что нужно
|
|||
5
Timon1405
26.06.20
✎
10:06
|
1. Не добавляйте ВыборкаДетальныеЗаписи.Следующий() в табло отладки и не смотрите на него в отладчике
2. остановитесь на строке Объект.Блокировка = ВыборкаДетальныеЗаписи.Номер; и уже там смотрите переменную "ВыборкаДетальныеЗаписи" |
|||
6
Mythe
26.06.20
✎
10:08
|
(5) В этом то и проблема, если я ставлю остановку на этой строке, она не срабатывает
|
|||
7
Mythe
26.06.20
✎
10:09
|
Программа дальше работает игнорируя остановку
|
|||
8
Mythe
26.06.20
✎
10:10
|
Если делать выгрузку, то в значении "Номера" пишет Строка.Null
|
|||
9
Василий Алибабаевич
26.06.20
✎
10:11
|
(8) Не находится абонент с ФИО = Объект.Наименование
|
|||
10
Mythe
26.06.20
✎
10:12
|
А почему в консоли запросов тогда все работает? (9)
|
|||
11
Масянька
26.06.20
✎
10:12
|
(2) Сообщить("" + ВыборкаДетальныеЗаписи.Количество());
После ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); что выведет? |
|||
12
ДенисЧ
26.06.20
✎
10:12
|
тз = РезультатЗапроса.Выгрузить();
тз.ВыбратьСтроку() что покажет? |
|||
13
Масянька
26.06.20
✎
10:13
|
(9) Ну, нельзя же так... В лоб... Надо издалека... :)))))
|
|||
14
Масянька
26.06.20
✎
10:13
|
(10) Нужно проверять, что запрос нашел требуемое.
|
|||
15
Mythe
26.06.20
✎
10:14
|
(11) 0
|
|||
16
Масянька
26.06.20
✎
10:14
|
(15) Вот и ответ - по заданному условию запрос ничего не нашел.
|
|||
17
Mythe
26.06.20
✎
10:16
|
(16) Запрос наипростейший, как его ещё изменить чтобы он работал то, ночь не сплю пытаюсь, разные связи пытался сделать и тд
|
|||
18
Mythe
26.06.20
✎
10:19
|
И тогда в чем разница консоли запросов?
|
|||
19
Mythe
26.06.20
✎
10:20
|
(12) не соответствует типу(номер)
|
|||
20
vova1122
26.06.20
✎
10:36
|
1. Ты же убедился в (15) что в результате запроса у тебя нет данных
2. Значит ФИО не соответстует искомому наименованию. скорее всего в конце ФИО есть пробелы |
|||
21
Fedor-1971
26.06.20
✎
10:45
|
(0) Как минимум:
Запрос.УстановитьПараметр("ФИО", СокрЛП(Объект.Наименование)); Ну и проверь в Объект.Наименование всякие Символы.НПП и т.д., часто при копировании прихватывают разные служебные символы. Чай в консоли вводил руками и красиво |
|||
22
Mythe
26.06.20
✎
10:48
|
(21) Там нету никаких проблем в этом наименовании, у меня большинство запросов такие же и все нормально работает
|
|||
23
Фрэнки
26.06.20
✎
10:50
|
(22) Ну напиши тогда для отладки просто явным образом
Запрос.УстановитьПараметр("ФИО", "ОченьКрасиваяНужнаяФИО"); И ты увидишь, запрос правильный но ничего не смог найти. И решай проблему дальше. |
|||
24
Mythe
26.06.20
✎
10:50
|
Только там я параметр ставлю Спр-ки.Спр-к.НайтиПоНаименованию(); потому что значений мало, а тут я не собираюсь каждого абонента перечислять
|
|||
25
Mythe
26.06.20
✎
10:52
|
(23) знать бы куда двигаться, ночь уже сижу, по разному же этот запрос пытался перефразировать
|
|||
26
Mythe
26.06.20
✎
10:53
|
Если я вот так указываю Наименование, то все работает Запрос.УстановитьПараметр("ФИО",Справочники.Абоненты.НайтиПоНаименованию("Гоголь Брик Федорович"));
|
|||
27
Mythe
26.06.20
✎
10:54
|
Но При Сообщить(Объект.Наименование) одно и тоже выдает, в чем проблема то тогда заключается?
|
|||
28
Фрэнки
модератор
26.06.20
✎
10:55
|
(24) так тут тебя никто и не заставляет что-то перечислять
Но оскорблять присутствующих тупостью своих постов у тебя не выйдет. (25) Там нет проблемы в запросе - не хер его переписывать. У тебя в значении Объект.Наименование нет строки "Гоголь Брик Федорович" вот оно и не находит его тебе. Что тут не понятного? |
|||
29
Mythe
26.06.20
✎
10:56
|
(28) В каком месте я оскроблял?
|
|||
30
Fedor-1971
26.06.20
✎
10:56
|
(26) Справочники.Абоненты.НайтиПоНаименованию("Гоголь Брик Федорович") - возвращает ССЫЛКУ, а не строку
ФИО - типа ссылка на пользователя или кого-то там? |
|||
31
Mythe
26.06.20
✎
10:58
|
(30) А как ещё можно получить ссылку, не указывая конкретное значение?
|
|||
32
Фрэнки
модератор
26.06.20
✎
10:58
|
(27) Сообщить производит преобразования типа значение в Строку при выводе.
вот эта строка Справочники.Абоненты.НайтиПоНаименованию("Гоголь Брик Федорович") - возвращает Ссылку. Тип значения СправочникСсылка и в запросе | Таксофоны.Абоненты.ФИО = &ФИО" скорей всего, что Абоненты.ФИО - по ошибке ФИО - это тоже ссылка на справочник, а не строка. Какой там текст запроса в консоле - его тут я в ветке не вижу. |
|||
33
Mythe
26.06.20
✎
10:59
|
Потому что в некоторых запросах я ставил Объект. и все работало
|
|||
34
Фрэнки
модератор
26.06.20
✎
11:00
|
какой тип значения показывает окно Отладчика для вот этого
Объект.Наименование что это? Он же пишет не только значение, но и тип - какой? |
|||
35
Mythe
26.06.20
✎
11:00
|
(34) Щас посмотрю
|
|||
36
Mythe
26.06.20
✎
11:01
|
Строку возвращает
|
|||
37
Fedor-1971
26.06.20
✎
11:03
|
(31) как вариант, передать её параметром в функцию
Если хочешь вывести список телефонов, вызови ПолучитьСписокТелефонов(Объект.ССылка) (36) теперь в конфигураторе посмотри что есть Таксофоны.Абоненты.ФИО, какого типа |
|||
38
Mythe
26.06.20
✎
11:04
|
(37) Там ссылка
|
|||
39
Фрэнки
26.06.20
✎
11:04
|
(36) Угу. А еще посмотри, что когда в Консоли запросов свой текст мучаешь, то там в Параметры запроса небось ручками заносишь конкретное нужное значение там тоже у тебя Строка?
теперь в конфигураторе посмотри что есть Таксофоны.Абоненты.ФИО, какого типа |
|||
40
Mythe
26.06.20
✎
11:04
|
По этому и не находит
|
|||
41
Фрэнки
26.06.20
✎
11:05
|
эврика
|
|||
42
Mythe
26.06.20
✎
11:06
|
(39) Я уже глянул где я писал Объект.что-то в других запросах и там ссылка, я уже понял что я так не смогу этот запрос сделать. Потому что в справочнике Абоненты Я создаю абонента как строку и уже везде на эту строку ссылаюсь
|
|||
43
Fedor-1971
26.06.20
✎
11:10
|
(42) ты список телефонов пытаешься вытащить из формы абонента?
|
|||
44
vova1122
26.06.20
✎
11:10
|
(42) Тогда так и пиши, НайтиПоНаимеванию
|
|||
45
Фрэнки
26.06.20
✎
11:10
|
Эту всю кухню кроме тебя никто не видит, а так как у тебя нет опыта, то также как и ты, и по такой как у тебя логике, никто делать не станет.
Ищи готовые примеры и учись на них писать не допуская путаницы в типах. |
|||
46
Фрэнки
26.06.20
✎
11:12
|
Если это переделка из какой=то типовой, то скажи всем, какая это типовая, чтоб советовали из нужной кухни.
А если это самописка, то ее вообще никто никогда не видел и не угадает взамен тебя, что там и откуда и как правильно. |
|||
47
craxx
26.06.20
✎
11:14
|
(0) конфликт имен. Проверяй реквизиты формы.
|
|||
48
Mythe
26.06.20
✎
11:16
|
Уже все исправил, переделал ссылку на строку
|
|||
49
Mythe
26.06.20
✎
11:16
|
Спасибо всем))
|
|||
50
Mythe
26.06.20
✎
11:16
|
Все работает
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |