Как проверить запрос на пустоту 1с

Проверить результат запроса на пустоту

В запросе выбираю табличную часть документа. Необходимо проверить запрос на пустоту и если он пустой поставить пометку на удаление.

На форме я специально выбираю документ с пустой ТЧ, но пометка на удаление все равно не ставится.

Запрос.Выполнить().Выбрать().Количество почему то равно 1.

Подскажите в чем может быть ошибка?

Вот текст запроса

Проверка параметра запроса на пустоту
как проверить указан параметр запроса материалы или нет? хотелось бы если не указан чтобы выводил.

Результат бухгалтерского запроса
Почему при выводе результата запроса в окно сообщений следующим способом.

Некорректный результат запроса
доброго дня Сделал отчет вроде бы ищет ,а вроде и нет он находит несколько позиций и все начинаешь.

Как проверить на пустоту поле с фиксированными списком для запроса?
Доброго всем дня! Запарился искать, перепробовал все варианты что мог придумать и в гугле и в.

Пустая ссылка в запросе в 1С

В языке запросов 1С часто требуется проверить: является ли значение пустой ссылкой.
Пустая ссылка — это такое значение ссылочных объектов, когда оно имеет этот же тип, но само значение не выбрано.

На языке программирования 1С данное значение можно получить через менеджеры объекта.

  • Перечисления.Пол.ПустаяСсылка(),
  • Справочники.Организации.ПустаяСсылка(),
  • ПланыСчетов.Хозрасчетный.ПустаяСсылка(),
  • ПредопредленноеЗначение(«ПланСчетов.Хозрасчетный.ПустаяСсылка»)

Альтернативой сравнению с пустой ссылкой имеется метод Пустая() у значения ссылочного типа:
Например:
булКонтрагентВыбран = ВыбКонтрагент.Пустая();

Как же в запросе 1С сравнить на пустое значение

Для этого у нас есть несколько вариантов в зависимости от требований задачи:

1.Если требуется получить значение пустого типа.

Воспользуемся функцией ЗНАЧЕНИЕ()

Выбрать
ЗНАЧЕНИЕ (Перечисление.Пол.ПустаяСсылка)//Без вопроса в единственном числе

Либо через переданный в запрос параметр:
Выбрать
&ПустойПараметрНужногоТипа

2. Если требуется сравнить со значением не составного типа:

Выбрать
Значение(Перечисление.Пол.ПустаяСсылка)<>Значение(Перечисление.Пол.Мужской) как ЭтоБулевоИстина

Выбрать
Выбор когда &ПустойПараметрНужногоТипа ИЛИ Значение(Перечисление.Пол.Мужской) Тогда Истина Иначе Ложь Конец как ЭтоНеЖенскийПол

3. Если требуется проверка составного значения:

В этом случае значение

  • может быть неопределенного типа (очищено или ни разу не выбрано)
  • пустой ссылкой любого из типов (выбран тип, но не выбрано значение)
  • выбранным значением любого из типов (выбрано значение)

В этом случае обычно первые два варианта считаются пустым значением, но пустыми ссылками являются только вторые.

//Мы инициализировали массив заполненных значений и сравнили его с пустым

Выбор когда ЗНАЧЕНИЕ(Значение(Перечисление.Пол.ПустаяСсылка) в (Значение(Перечисление.Пол.Мужской),Значение(Перечисление.Пол.Женский)) ИЛИ Есть NULL Тогда Истина Иначе Ложь конец ЗначениеПустое

//Мы инициализировали массив пустых ссылок и проверили вхождение в него нашего «неизвестного» значения

Выбор когда ЗНАЧЕНИЕ(Значение(Перечисление.Пол.Мужской) в (Значение(Перечисление.Пол.ПустаяСсылка),Значение(Справочник.Контрагенты.ПустаяСсылка)) Тогда Истина Иначе Ложь конец ЗначениеПустое

Также мы можем передать массив параметром

Выбрать Выбор когда ЗНАЧЕНИЕ(Значение(Перечисление.Пол.ПустаяСсылка) в (&МассивВсехПустыхСсылок) Тогда Истина Иначе Ложь конец ЗначениеПустое

Как получить значение ЛюбаяСсылка?

Еще про перечисление в запросе 1С.

Если бы рекламодатели тратили на улучшение своей продукции те деньги, которые они тратят на рекламу, их продукция не нуждалась бы в рекламе.

— Уилл Роджерс

1С 8.3 Пустое перечисление — Программист 1С Минск. Автоматизация бизнеса.

//Вариант для реквизита : ЗначениеЗаполнено(ПеречислениеВидыЗанятости):

&НаСервере
Процедура ПустоеПеречислениеВЗапросе ()

Запрос = Новый Запрос ;
Запрос . Текст = «ВЫБРАТЬ
| Кадры.ВидЗанятости КАК ВидЗанятости
|ИЗ
| РегистрСведений.КадроваяИсторияСотрудников КАК Кадры
|ГДЕ
| ВидЗанятости &ПустойВидЗанятости» ;

Запрос . УстановитьПараметр ( «ПустойВидЗанятости» , Значение ( Перечисление . ВидыЗанятости . ПустаяСсылка ));
РезультатЗапроса = Запрос . Выполнить ();

Заметки по 1С:Предприятие 8.2, 8.3

Большинство хороших программистов делают свою работу не потому, что ожидают оплаты или признания, а потому что получают удовольствие от программирования (Linus Torvalds).

Страницы

  • Главная
  • Полезности
  • Мои сертификаты

среда, 23 апреля 2014 г.

Проверка на пустой список значений в запросе

Для того, чтобы в запросе проверить параметр типа список значений на пустоту можно воспользоваться дополнительным параметром, который будет передаваться в запрос вместе со списком и показывать пустой список или нет.

Пример:
Выбрать информацию о продажах только тех контрагентов, которые содержатся в заданном списке. Проверку на заполненность списка значений проверять в запросе.

Запрос = Новый Запрос ;
Запрос . Текст =
«ВЫБРАТЬ
| ПродажиОбороты.Номенклатура,
| ПродажиОбороты.ХарактеристикаНоменклатуры,
| ПродажиОбороты.ЗаказПокупателя,
| ПродажиОбороты.ДоговорКонтрагента,
| ПродажиОбороты.ДокументПродажи,
| ПродажиОбороты.Подразделение,
| ПродажиОбороты.Проект,
| ПродажиОбороты.Организация,
| ПродажиОбороты.Контрагент,
| ПродажиОбороты.КоличествоОборот,
| ПродажиОбороты.СтоимостьОборот,
| ПродажиОбороты.СтоимостьБезСкидокОборот,
| ПродажиОбороты.НДСОборот
|ИЗ
| РегистрНакопления.Продажи.Обороты(
| ,
| ,
| ,
| &ПустыеКонтрагенты
| ИЛИ Контрагент В (&СписокКонтрагентов)) КАК ПродажиОбороты» ;

Запрос . УстановитьПараметр ( «ПустыеКонтрагенты» , СписокКонтрагентов . Количество () = 0 );
Запрос . УстановитьПараметр ( «СписокКонтрагентов» , СписокКонтрагентов );

РезультатЗапроса = Запрос . Выполнить ();

ВыборкаДетальныеЗаписи = РезультатЗапроса . Выбрать ();

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *