• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

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

  • Автор темы KiR
  • Дата начала
K

KiR

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

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

SanyAV

Привет!

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

Если Выполнить(<ТекстЗапроса>) = 1 Тогда
...
Иначе
Возврат;
КонецЕсли;
 
L

LSH

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

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

KiR

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

Zab

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

KiR

Zab
Сори. просто никто не отвечал на последний вопрос и я вынес в отдельный топик
И спасибо большое за условие! :lol:
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!