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

Тема в разделе "1C и всё что с ней связано", создана пользователем KiR, 18 июн 2008.

  1. KiR

    KiR НЕ шибка опытный програмер)
    1C Team

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

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

    SanyAV Гость

    Привет!

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

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

    LSH Гость

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

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

    KiR НЕ шибка опытный програмер)
    1C Team

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

    Zab Well-Known Member
    1C Team

    Регистрация:
    7 авг 2006
    Сообщения:
    583
    Симпатии:
    0
    1. Не там запятая
    2. ТипЗначения(Число(зн)) - всегда 1
    3.
    Код (Text):
    |Условие (СокрЛП(Число(Прав(СокрЛП(Номер),1))) = Прав(СокрЛП(Номер),1));
     
  6. Zab

    Zab Well-Known Member
    1C Team

    Регистрация:
    7 авг 2006
    Сообщения:
    583
    Симпатии:
    0
  7. KiR

    KiR НЕ шибка опытный програмер)
    1C Team

    Регистрация:
    11 сен 2007
    Сообщения:
    1.581
    Симпатии:
    0
    Zab
    Сори. просто никто не отвечал на последний вопрос и я вынес в отдельный топик
    И спасибо большое за условие! :lol:
     
Загрузка...
Похожие Темы - 1c7 черный запрос
  1. KiR
    Ответов:
    11
    Просмотров:
    6.786
  2. KiR
    Ответов:
    22
    Просмотров:
    9.921
  3. KiR
    Ответов:
    1
    Просмотров:
    2.707
  4. vbs
    Ответов:
    7
    Просмотров:
    2.372
  5. vbs
    Ответов:
    8
    Просмотров:
    4.009

Поделиться этой страницей