1c7. черный запрос

KiR

НЕ шибка опытный програмер)
11.09.2007
1 581
0
#1
Читаю по синтакс-помощнику:
Синтаксис:
Выполнить(<ТекстЗапроса>)
Назначение:
Выполнить запрос.
Возвращает: 1 - если запрос выполнен, 0 - иначе.

В связи с этим вопрос - почему когда запрос выполняется и возвращает пустое значение (реально ничего не отбирает) - запрос возвращает 1? При каких ситуациях запрос может вернуть 0?
И как организовать проверку - вернул ли запрос какие-то данные или нет?
 
S

SanyAV

#2
Привет!

Единица или Ноль возвращаются как результат выполнения самого запроса. Если в тексте (<ТекстЗапроса>) есть ошибки, то 0,
а если все верно и отработался запрос, то 1.
Независимо от того содержатся ли какие то данные в полученной выборке или запрос впустую оттарабанил.
Это используется для иключения ошибок:

Если Выполнить(<ТекстЗапроса>) = 1 Тогда
...
Иначе
Возврат;
КонецЕсли;
 
L
#3
Функция Выполнить(ТекстЗапроса) возвращает 0 только в случае ошибки в запросе. Если запрос составлен правильно и выполнился без ошибок, то функция вернет 1 (даже если запрос пустой).
Проще всего проверить:

ТЗ = СоздатьОбъект("ТаблицаЗначений");
Запрос.Выгрузить(ТЗ,0,0);
Если ТЗ.КоличествоСтрок() = 0 Тогда
//пустой запрос
Иначе
//есть результаты запроса
КонецЕсли;
 

KiR

НЕ шибка опытный програмер)
11.09.2007
1 581
0
#4
Спасибо. понятно. Есть еще один вопрос-просьба.
Есть запрос, но при его выполнени почему-то не отрабатывает условие
Код:
"//{{ЗАПРОС(Расчитать)
|Период с (НачГода(ТекущаяДата())) по (КонГода(ТекущаяДата()));
|ОбрабатыватьДокументы все;
|Без итогов;
|Номер = Документ."Счет.НомерДок;
|Условие (ТипЗначения(Число(Прав(СокрЛП(Номер)),1) = 1);
|Группировка Номер;
|"//}}ЗАПРОС
В счетах строковая нумерация. Есть номер 234В, 2Х, 354. Так вот мне нужно чтобы отобрались все номера, в которых последним символом является цифра. Как мне этого добиться?
 

Zab

Well-known member
07.08.2006
583
0
#5
1. Не там запятая
2. ТипЗначения(Число(зн)) - всегда 1
3.
Код:
|Условие (СокрЛП(Число(Прав(СокрЛП(Номер),1))) = Прав(СокрЛП(Номер),1));
 

KiR

НЕ шибка опытный програмер)
11.09.2007
1 581
0
#7
Zab
Сори. просто никто не отвечал на последний вопрос и я вынес в отдельный топик
И спасибо большое за условие! :lol: