|
Ошибка чтения значения | ☑ | ||
---|---|---|---|---|
0
ivangrant
23.10.19
✎
16:16
|
Тысячу тем нашёл и ни одной нет решения :(
При выполнении запроса выпадает "ошибка чтения значения" по всем отбираемым полям в запросе. Ошибку ловил в отладчике. Пробовал и ссылки запихивать и строки, и в отбор и в запрос. Бестолку. Консолькой всё показывает. В запросе не хочет. Запрос находится во внешнем обработчике. Вот сам он: [code]Функция ПолучитьРуководителя(Организация, Дата) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ОтветственныеЛица.Руководитель КАК Руководитель, | ОтветственныеЛицаПолномочия.Должность КАК Должность, | ОтветственныеЛицаПолномочия.ОснованиеПодписи |ИЗ | РегистрСведений.СведенияОбОтветственныхЛицах.СрезПоследних КАК ОтветственныеЛица | ЛЕВОЕ СОЕДИНЕНИЕ | РегистрСведений.ОснованияПолномочийОтветственныхЛиц КАК ОтветственныеЛицаПолномочия | ПО | ОтветственныеЛица.Организация = ОтветственныеЛицаПолномочия.Организация | И ОтветственныеЛица.Руководитель = ОтветственныеЛицаПолномочия.ФизическоеЛицо |ГДЕ | ОтветственныеЛица.Период <= &Период | И ОтветственныеЛица.Организация = &Организация"; Запрос.УстановитьПараметр("Организация", Организация); Запрос.УстановитьПараметр("Период", Дата); Выбор = Запрос.Выполнить().Выбрать(); Если Выбор.Следующий() Тогда Возврат Новый Структура ("Руководитель, Должность, ОснованиеПодписи", Выбор.Руководитель, Выбор.Должность, Выбор.ОснованиеПодписи); КонецЕсли; Возврат Неопределено; КонецФункции [/code] Где ещё посмотреть варианты решения? |
|||
1
ДенисЧ
23.10.19
✎
16:17
|
На какой строке отладчик останавливал?
|
|||
2
Deon
23.10.19
✎
16:20
|
(0) В какой момент ошибка выпадает?
|
|||
3
Deon
23.10.19
✎
16:21
|
Кстати, предполагаю, что параметр &Период должен быть не в секции ГДЕ, а в параметрах виртуальной таблицы СрезПоследних
|
|||
4
hhhh
23.10.19
✎
16:25
|
(0) да, вот так пробуй
|ИЗ | РегистрСведений.СведенияОбОтветственныхЛицах.СрезПоследних(&Период, Организация = &Организация) КАК ОтветственныеЛица а ГДЕ выкинь. Это оно у тебя от временного помутнения в мозгу влезло. |
|||
5
GROOVY
23.10.19
✎
16:30
|
Да и "Возврат Неопределено" выкинуть можно.
|
|||
6
Chameleon1980
23.10.19
✎
16:32
|
Автор не дошёл до выбор.следующий
|
|||
7
ivangrant
23.10.19
✎
16:32
|
(1) Вот здесь: Если Выбор.Следующий() Тогда
И потом выборку делал. В условие не заходит. В КонецЕсли та же беда. |
|||
8
ДенисЧ
23.10.19
✎
16:33
|
(7) А надо смотреть на Возврат;
На крайний случай - смотреть на Выбор.Количество() |
|||
9
ДенисЧ
23.10.19
✎
16:33
|
А если выборка пустая, то явно параметры не те. Или база не та.
|
|||
10
Chameleon1980
23.10.19
✎
16:37
|
Результат запроса значит пустой
Учти ситуацию и верни пустую структупу А почему результат пустой это не вопрос про ошибку чтения. тут ты под условия не попал. я тебе в (6)написал ответ на 0 |
|||
11
hhhh
23.10.19
✎
16:39
|
(7) на Если Выбор.Следующий() Тогда
на надо останавливаться. Там выдаст ошибку "ошибка чтения значения" после смотрите. |
|||
12
ivangrant
23.10.19
✎
16:41
|
ДА! Заработала! Перенес условия в параметры вирт. таблицы.
Я прошу прощения, недавно только запросы освоил))) почему не срабатывало условие в предложении ГДЕ ? |
|||
13
ivangrant
23.10.19
✎
16:41
|
Благодарю за помощь.
|
|||
14
ДенисЧ
23.10.19
✎
16:41
|
(12) Потому что у тебя виртуальная таблица, а не обычная
|
|||
15
Deon
23.10.19
✎
16:41
|
(0) А покажи полный текст ошибки
|
|||
16
hhhh
23.10.19
✎
16:43
|
(12) потому что период больше твоей даты. А ты написал
|ГДЕ | ОтветственныеЛица.Период <= &Период |
|||
17
Deon
23.10.19
✎
16:43
|
Мне думается, что ошибка вообще в другой функции живет, которая не ожидает получить Неопределено и пытается через точку из этого Неопределено читать реквизиты
|
|||
18
ivangrant
23.10.19
✎
17:51
|
Ну и в догонку. Почти такой же по структуре запрос. Но с той же ошибкой.
Опять что-то недосмотрел? [code] Функция ПолучитьФИО(Физлицо, Период) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ФИОФизическихЛицСрезПоследних.Фамилия КАК Фамилия, | ФИОФизическихЛицСрезПоследних.Имя КАК Имя, | ФИОФизическихЛицСрезПоследних.Отчество КАК Отчество |ИЗ | РегистрСведений.ФИОФизическихЛиц.СрезПоследних(&Период, ФизическоеЛицо = &ФизЛицо) КАК ФИОФизическихЛицСрезПоследних"; Запрос.УстановитьПараметр("Период", Период); Запрос.УстановитьПараметр("ФизЛицо", ФизЛицо); Выбор = Запрос.Выполнить().Выбрать(); Если Выбор.Следующий() Тогда Возврат Новый Структура("Фамилия, Имя, Отчество", Выбор.Фамилия, Выбор.Имя, Выбор.Отчество); КонецЕсли; Возврат Неопределено; КонецФункции [/code] |
|||
19
hhhh
23.10.19
✎
17:55
|
(18) текст ошибки давай. и номер строки там должен быть
|
|||
20
ivangrant
23.10.19
✎
18:07
|
(19) Не правильно сформулировал.
Ошибки нет.Но параметры не передаются, и структура не формируется. Ловил отладчиком ошибку: "ошибка чтения значения". Смотрел в КонецЕсли. В консоли тот же запрос формируется без проблем. Период передаю - Текущую дату. В Физическое лицо - Сотрудника из справочника Сотрудники. |
|||
21
ivangrant
23.10.19
✎
18:09
|
Запрос: РегистрСведений.ФИОФизическихЛиц.СрезПоследних (Записей в результате: 1)
Фамилия Имя Отчество ФизическоеЛицо Андреев Андрей Андреевич Андреев Андрей Андреевич Это итог запроса в отладчике. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |