8.х Проверка на пустые значения

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем ИринаСМ, 18 май 2010.

  1. TopicStarter Overlay
    ИринаСМ
    Offline

    ИринаСМ Опытный в 1С

    Регистрация:
    23 апр 2010
    Сообщения:
    158
    Симпатии:
    0
    Баллы:
    26
    Добрый день! Подскажите, можно ли результат запроса в выборке проверить на пустые значения? Сразу все значения?
  2. Draco
    Online

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.639
    Симпатии:
    948
    Баллы:
    204
    Не совсем понятен вопрос? Все значения запроса выполучите только после его выполнения.В самих же запросах используют оператор ЕСТЬNULL(Сумма,0) для избежания пустых значений. Соответсвенно если в поле сумма пустое значение то мы туда заносим 0. Соответсвенно можно создать поле счетчик ЕСТЬNULL(Сумма,1) и сделать итоги, тогда просмотрев певую итоговую запись из выборке по этому полю и если итог будет больше нуля значит были пустые значения
  3. TopicStarter Overlay
    ИринаСМ
    Offline

    ИринаСМ Опытный в 1С

    Регистрация:
    23 апр 2010
    Сообщения:
    158
    Симпатии:
    0
    Баллы:
    26
    Нет, запрос выполнен.

    Выборка = Запрос.Выполнить().Выбрать();
    Пока Выборка.Следующий() Цикл

    Здесь мне нужно проверить на пустые значения
    .....
    КонецЦикла;
  4. Draco
    Online

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.639
    Симпатии:
    948
    Баллы:
    204
    Ну проверяйте поле на Неопределно и NULL и все. Но вообще это не очень правильно как я сказал для этого в запросе делают ЕСТЬNULL и тогда пустх значений нет. Если по запросу есть возможность появления пустого значения а проверки нет то на аттестациях придирались к этому

    Если Выборка.Контрагент=Неопределенно или Выборка.Контрагент=NULL Тогда
    Сообщить("Пустой контрагент");
    КонецЕсли
  5. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.566
    Симпатии:
    717
    Баллы:
    204
    Мож все такие Если НЕ ЗначениеЗаполнено(Выборка.Контрагент) Тогда....?
  6. TopicStarter Overlay
    ИринаСМ
    Offline

    ИринаСМ Опытный в 1С

    Регистрация:
    23 апр 2010
    Сообщения:
    158
    Симпатии:
    0
    Баллы:
    26
    ну да, придется так...я хотела всю строку

    Спасибо большое!
  7. Draco
    Online

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.639
    Симпатии:
    948
    Баллы:
    204
    Да так лучше будет. Просто переодически про нее забываю т.к в 8.0 эту функцию приходилось самому поисывать в самописных конфах
  8. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.566
    Симпатии:
    717
    Баллы:
    204
    в 8.0 будет:

    Если Выборка.Контрагент = Справочники.Контрагенты.ПустаяСсылка() Тогда.....
  9. Draco
    Online

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.639
    Симпатии:
    948
    Баллы:
    204
    Запрос то не пустую ссылку возвращает...Вот и приходилось на Неорпеделнно проверять
  10. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.566
    Симпатии:
    717
    Баллы:
    204
    Дополнительно проверяем на NULL, если в запросе не сделано.
  11. Draco
    Online

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.639
    Симпатии:
    948
    Баллы:
    204
    Ну эт ясно про проверку в запросе я в самом начале писал. Это уже мы что то далеко от темы пошли
  12. Dem0lisher
    Offline

    Dem0lisher Профессионал в 1С

    Регистрация:
    4 авг 2009
    Сообщения:
    1.025
    Симпатии:
    51
    Баллы:
    54
    К слову о пустых значениях: Как проверить на пустое значение табличную часть в предопределенной процедуре документа ПриЗаписи()?
  13. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.566
    Симпатии:
    717
    Баллы:
    204
    Отбор = Новый Структура ("ИмяКолонки1,ИмяКолонки2",ЗначениеКолонки1,ЗначениеКолонки2);
    МассивСтрок = ТЗ.НайтиСтроки(отбор);
    Если ЗначениеЗаполнено(МассивСтрок) Тогда
    ......
    КонецЕсли.
  14. mialord
    Offline

    mialord Модераторы Команда форума Модератор

    Регистрация:
    31 июл 2009
    Сообщения:
    5.398
    Симпатии:
    40
    Баллы:
    54
    Здраствуйте!
    Рекомендую с первых дней начинать писать правильно.
    1. Массив, штука слабенькая и малофункциональная в отличии от таблицы значений посему рекомендую писать следующим образом...
    2. НЕ надо клепать двадцать параметров для выполнения простых операций

    Код:
    Если НЕ ТабличнаяЧасть.Выгрузить().Скопировать(Новый Структура ("ИмяКолонки",ПустоеЗначениеКолонки)).Количество() = 0 Тогда
    ......
    КонецЕсли;
    
    Удачи!!!
  15. Stado_adama
    Offline

    Stado_adama Модераторы Модератор

    Регистрация:
    27 ноя 2007
    Сообщения:
    1.086
    Симпатии:
    0
    Баллы:
    26
    а как поставить условие на пустое значение в запросе? типа мне надо получить запросом всю табличную часть, кроме тех строк, где не заполнен реквизит "А"...
  16. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    реквизит "А" - какой тип имеет?
  17. Draco
    Online

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.639
    Симпатии:
    948
    Баллы:
    204
    Ну в запросе напишите типа

    Где
    Товар.Номенклатура <>&ПустоеЗначение

    а потом в параметрах запроса определите этот параметр

    Запрос. УстановитьПараметры("ПустоеЗначение",Справочник.Номенклатура.ПустаяСсылка())
  18. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Либо сразу написать:
    Товар.Номенклатура <> ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)

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