|
Получить значение реквизита | ☑ | ||
---|---|---|---|---|
0
nemel09
21.06.19
✎
14:13
|
Привет всем, помогите разобраться в чем ошибка. Задача состоит в следующем. Из обработка делаю запрос к реквизиту формы АдресДоставки и хочу проверить заполнено ли поле или нет.
[Code] Запрос = Новый Запрос; Запрос.Текст = " |ВЫБРАТЬ | ЗаказПокупателя.АдресДоставки | |ИЗ | Документ.ЗаказПокупателя КАК ЗаказПокупателя | где | заказПокупателя.номер = ""00000001440"" |"; РезультатЗапроса = Запрос.Выполнить(); Выборка = РезультатЗапроса.Выбрать(); Если РезультатЗапроса.Пустой() Тогда Сообщить ("Адреса нет"); Возврат Ложь; Иначе Сообщить ("Адрес есть"); Возврат Истина; КонецЕсли; [/Code] В результате не зависимо то того заполнено ли поле или нет ответ Адрес есть. |
|||
1
lxs
21.06.19
✎
14:18
|
плять))) пятница, ёпт)) Откуда вы повелезали такие????
|
|||
2
Beduin
21.06.19
✎
14:19
|
(1) Он Учится.
(0) Ты проверяешь наличие документа. |
|||
3
palsergeich
21.06.19
✎
14:20
|
(2) А документ априори есть)
Тебе еще надо проверку на сам адрес |
|||
4
bootini
21.06.19
✎
14:22
|
а у выборки есть метод Пустой()?
|
|||
5
Rapelsina
21.06.19
✎
14:22
|
Проверка на пустоту запроса должна выполняться перед Выборкой.
|
|||
6
bootini
21.06.19
✎
14:23
|
Если РезультатЗапроса.Следующий() Тогда
адрес есть инече адреса нет конецЕсли |
|||
7
bootini
21.06.19
✎
14:26
|
пятница
|
|||
8
lxs
21.06.19
✎
14:28
|
(0) message(?(not isblankstring(documents.заказпокупателя.findbynumber("00000001440", current date()).адресдоставки),"адрес есть","адреса нет");
|
|||
9
lxs
21.06.19
✎
14:38
|
message(
?(documents.заказпокупателя.findbynumber("00000001440", current date())=undefined, "документ не найден", ?(not isblankstring( documents.заказпокупателя.findbynumber("00000001440", current date()).адресдоставки), "адрес есть", "адреса нет"))); |
|||
10
nemel09
21.06.19
✎
14:40
|
Запрос = Новый Запрос;
Запрос.Текст = " |ВЫБРАТЬ | ЗаказПокупателя.АдресДоставки | |ИЗ | Документ.ЗаказПокупателя КАК ЗаказПокупателя | где | ЗаказПокупателя.номер = ""00000001440"" |"; РезультатЗапроса = Запрос.Выполнить(); Если РезультатЗапроса.Пустой() Тогда Сообщить ("Адреса нет"); Иначе Сообщить ("Адрес есть"); КонецЕсли; Не пойму при любом значении и без значения результат выводится что адрес есть |
|||
11
lxs
21.06.19
✎
14:45
|
(10) да уж...
Заказ = Документы.ЗаказПокупателя.НайтиПоНомеру("00000001440", ТекущаяДата(); Если Не Заказ = Неопределено Тогда Сообщить(?(Не ПустаяСтрока(Заказ.АдресДоставки), "Адрес есть", "Адреса нет")); КонецЕсли; |
|||
12
lxs
21.06.19
✎
14:52
|
(10)
1. Говоря примитивным языком, запросом ты получаешь поле документа, а не его значение. 2. РезультатЗапроса.Пустой() вернёт ложь тогда, когда не будет найден документ. 3. Если ты сделаешь хотя бы так, как ниже написано, то получишь то, что хочешь: Если РезультатЗапроса.Пустой() Тогда Сообщить("Документ не найден"); Иначе Выборка = РезультатЗапроса.Выбрать(); Выборка.Следующий(); Если ПустаяСтрока(Выборка.АдресДоставки) Тогда Сообщить("Адреса нет"); Иначе Сообщить("Адрес есть"); КонецЕсли; КонецЕсли; |
|||
13
nemel09
21.06.19
✎
15:05
|
(12) Хорошо, кажется понял смотри если я хочу сделать чтоб любой документ проверялся и напишу вот так
Запрос = Новый Запрос; Запрос.Текст = " |ВЫБРАТЬ | ЗаказПокупателя.АдресДоставки | |ИЗ | Документ.ЗаказПокупателя КАК ЗаказПокупателя |"; РезультатЗапроса = Запрос.Выполнить(); Выборка = РезультатЗапроса.Выбрать(); Выборка.Следующий(); Если ПустаяСтрока(Выборка.АдресДоставки) Тогда Сообщить("Адреса нет"); Иначе Сообщить("Адрес есть"); КонецЕсли; Я получу ответ Адрес есть, так как это поле документа, а не его значение. для значения отдельно надо написать проверку? |
|||
14
lxs
21.06.19
✎
15:10
|
(13) Вот здесь Выборка.АдресДоставки ты получаешь уже само значение
|
|||
15
hhhh
21.06.19
✎
15:21
|
(13) но это будет не любой документ, а самый-самый первый в базе. Заказ от две тысячи лохматого года.
|
|||
16
nemel09
21.06.19
✎
15:24
|
(15) не я выбираю конкретный документ, и результат все равно Адрес есть, хотя его нет там.
|
|||
17
hhhh
21.06.19
✎
15:37
|
(16) конкретный это здесь
| где | ЗаказПокупателя.номер = ""00000001440"" а в (13) неконкретный. |
|||
18
lxs
21.06.19
✎
15:50
|
(16) ты мой код используешь?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |