1с условие в запросе если параметр заполнен

Обновлено: 07.07.2024

Как задать отбор по Типу документа?
Как указать условие для отбора не определенного значения?
Как в языке запросов 1С отобрать не заполненное значение?
Какое условие указать в запросе после ключевого слова «ГДЕ», когда нужно сделать отбор по не заполненным полям?
Код 1C v 8.х
источник

Разместил: E_Migachev  Версии: | 8.x | 8.2 УП |  Дата: 13.06.2012   Прочитано: 57771

Распечатать

Похожие FAQ

17 правил для составления оптимального ЗАПРОСа к данным базы 1С  42
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ COM-подключение к базе 7.7 из 8.2 1С  6
Если код выполняется на стороне клиента, то необходимо наличие базы 7.7 на локальной машине. Пример (На форме объекта присутствует реквизит Таблица(ТаблицаЗначений)): НаКлиенте Процедура Загрузки() ПутьКБазе=" D:ВашаБаза1с77" ; Пользователь= Google maps : вывод точек на карту и режим панорамы  7
В отличие от яндекс карт в GMaps можно использовать панорамы - за что им большой плюс! Надеюсь в яндексе прочитают этот пост и тоже когда-нибудь это сделают! Для клиента нужно было сделать вывод объектов на карту С возможностью просмотра панора Автоматизация обмена данных используя обработку "Универсальный обмен данными в формате XML"  10
Автоматизация обмена между базами используя обработку " Универсальный обмен данными в формате XML" В основу данной публикации положены найденные мною материалы по cозданию обмена между двумя базами с использованием обработки " Универсальный обме Внешние источники данных  0
Почему данная возможность вызывает такой интерес? Любой человек, который программировал в 1С при этом достаточно неплохо знаком с SQL и хотя бы в общих чертах знаком с архитектурой и принципами разработки других технологических платформ для бизнес пр Посмотреть все результаты поиска похожих

Еще в этой же категории

Значения NULL ( ЕСТЬ NULL и ЕСТЬNULL())  48
NULL – отсутствующие значения. Не путать с нулевым значением! NULL – это не число, не равно пробелу, пустой ссылке, Неопределено. NULL – типообразующее значение, т.е. есть тип NULL и единственное значение этого типа. NULL значения появляются в 17 правил для составления оптимального ЗАПРОСа к данным базы 1С  42
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ Нарастающий итог в запросе  22
Необходимо использовать левое соединение таблицы с самой собой. ВЫБРАТЬ Обороты.Период, Обороты.Номенклатура, Обороты.Количество ПОМЕСТИТЬ ВТдвижения ИЗ РегистрНакопления.Обороты КАК Обороты ; //////////////////////////////////////////////// Полезные сведения о языке запросов 1С 8.х  22
В статье приведены полезные приемы при работе с запросами 1С v.8.2, а также сведения, которые не так хорошо известны о языке запросов. Я не стремлюсь дать полное описание языка запросов, а хочу остановиться лишь на некоторых моментах, которые для ко Оператор ПОДОБНО  18
ПОДОБНО - Оператор проверки строки на подобие шаблону. Аналог LIKE в SQL. Оператор ПОДОБНО позволяет сравнить значение выражения, указанного слева от него, со строкой шаблона, указанной справа. Значение выражения должно иметь тип строка. Если з Посмотреть все в категории Запросы

Эти операторы возможно использовать во всех 4 ситуациях, но контекст (окружаемые переменные у них отличаются).

В первых двух случаях условия накладываются на поля выборки, например:

ВЫБРАТЬ Ссылка ИЗ Справочник.Контрагенты КАК СпрКонтрагенты ГДЕ СпрКонтрагенты.ИНН<>""

Обращение идет через имя таблицы (в простых запросах может опускаться, но в сложных может вызывать неоднозначность поля).

Данное условие вызывает ограничение выборки (обычно уменьшает ее)

В конструкторе запроса находятся на вкладке условия:

uslovie-gde-v-zaprose

uslovie-gde-v-zaprose-obychnoe

В произвольном варианте пишется текстом, в обычном выбирается поле, оператор сравнения и значение:

ВЫБОР КОГДА

Этот условный оператор используется для преобразования значения, ограничивает же выборку только когда расположен после служебного слова ГДЕ.
Допустимо несколько подчиненных условий. Может находится в полях выборки, полях условий ГДЕ, группировок, итогов (универсальный оператор для сложных условий)

Например, так выглядит вариант преобразования:

ВЫБРАТЬ
ВЫБОР
КОГДА 1 = 2
ТОГДА "Никогда не будет истиной"
КОГДА 1 = 1
ТОГДА "Всегда будет истиной"
ИНАЧЕ ДАТАВРЕМЯ(1, 1, 1)
КОНЕЦ КАК ПолеПредставленияЗначения

Вариант использования в условии ГДЕ, результат выборки должен возвращать булево значение либо сравниваться с чем-то еще

Пример № 1

ВЫБРАТЬ Ссылка ИЗ Справочник.Контрагенты КАК К ГДЕ ВЫБОР КОГДА К.ИНН = "" ТОГДА ЛОЖЬ ИНАЧЕ ИСТИНА КОНЕЦ

Пример № 2:

ВЫБРАТЬ Ссылка ИЗ Справочник.Контрагенты КАК К ГДЕ ВЫБОР КОГДА К.ИНН = "" ТОГДА "" ИНАЧЕ "Заполнено" КОНЕЦ = "Заполнено"

Параметры виртуальных таблиц

В данном случае оперирование идет с полями таблиц, например ресурсами, измерениями, реквизитами. В этих условиях обращение идет без точки (контекст этого не требует).

ВЫБРАТЬ * ИЗ РегистрСведений.КурсыВалют.СрезПоследних(, Валюта.Код = "RUR")

В конструкторе запроса они находятся вот здесь:

parametry-virtualnoj-tablitsy

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

Накладывание условия в запросе на измерения, если нет обращения через точку (как в примере выше), ускоряет выборку: на больших таблицах, это будет визуально заметно; на небольших можно использовать как удобно.

ИМЕЮЩИЕ

ВЫБРАТЬ
Контрагенты.ИНН,
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Контрагенты.Ссылка) КАК Ссылка
ИЗ
Справочник.Контрагенты КАК Контрагенты

СГРУППИРОВАТЬ ПО
Контрагенты.ИНН

ИМЕЮЩИЕ
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Контрагенты.Ссылка) > 1 И
Контрагенты.ИНН <> ""

В данную выборку попадут дубли ИНН, когда оно вообще заполнено.

В конструкторе запроса также находится на вкладке условия


Распечатать

Как заполнить табличную часть формы программно?  6
Нужно по кнопке Заполнить - сформировать данные для заполнения табличных частей и заполнить их. Форма имеет вид: Рядом с кнопкой Записать и закрыть добавлена кнопка Заполнить документ , код ее команды: // Код заполнения ТЧ НаСервере П 17 правил для составления оптимального ЗАПРОСа к данным базы 1С  42
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ Cодержимое указанного ниже веб-сайта в этом приложении блокируется. Aboutsecurity_1cv8c.exe  1
Проблема: После обновления на 1С:Бухгалтерию предприятия 3-й версии, при нажатии на закладку командного интерфейса 1С:предприятие, выскакивает ошибка: Aboutsecurity_1cv8c.exe или Aboutsecurity_1cv8.exe «Содержимое указанного ниже веб-узла в э Google maps : вывод точек на карту и режим панорамы  7
В отличие от яндекс карт в GMaps можно использовать панорамы - за что им большой плюс! Надеюсь в яндексе прочитают этот пост и тоже когда-нибудь это сделают! Для клиента нужно было сделать вывод объектов на карту С возможностью просмотра панора PostgreSQL: установка, настройка, обслуживание  11
PostgreSQL напрямую "из коробки" применяться для использования с 1С Предприятем не может. Необходима именно адаптированная версия от 1С, превращающая PostgreSQL в блокировочник, причем нужно понимать, что блокировки будут накладываться на всю таблиц Посмотреть все результаты поиска похожих

Еще в этой же категории

17 правил для составления оптимального ЗАПРОСа к данным базы 1С  42
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ Что такое менеджер временных таблиц и как с ним работать?  10
В 1С есть такая замечательная вещь, как МенеджерВременныхТаблиц . Этот объект позволяет передавать временные таблицы из одного запроса в другой. То есть, мы можем создать временную таблицу в запросе, прерваться, выполнить какой-нибудь код, и продо Объектная модель схемы запроса  5
Периодически во встроенном языке возникает необходимость изменения текста запроса в зависимости от разных алгоритмических условий. Раньше подобная задача решалась путем непосредственного формирования нужного текста запроса в виде строки. А это не вс Как в запросе объединить несколько значений в один столбец отобрав по условию?  1
Бывают ситуации, особенно когда формируешь отчеты по проводкам, где надо вывести отчет по одному типу значений и эти значения могут быть в разных колонках регистра. В примере ниже, необходимо собрать отчет в разбивке по Номенклатурным группам. Про Курс по разработке и оптимизации запросов в 1С (Часть 1)  0
Часть 1. Основные конструкции языка запросов и их назначение • Назначение языка запросов • Структура запроса • Основные секции запроса и их назначение • Группировка результатов запроса • Фильтрация результатов запроса • Объединения и соединени Посмотреть все в категории Запросы

Войдите как ученик, чтобы получить доступ к материалам школы

Язык запросов 1С 8.3 для начинающих программистов: условия

Автор уроков и преподаватель школы: Владимир Милькин

Условия в запросах

Давайте напишем запрос, который запрашивает из таблицы Справочник.Еда наименование еды, её цвет, вкус и калорийность:

02

Секция ГДЕ

А теперь давайте сделаем, чтобы вернулась еда только жёлтого цвета. Делается это при помощи секции ГДЕ в которой необходимо задать условие отбора:

03

В нашем случае таким условием будет равенство реквизита Цвет (а вернее его свойства Наименование) строковому значению "Жёлтый" ( через ё ):

В результате запрос вернёт нам только строки с едой, у которой реквизит Цвет установлен в Жёлтый:

01

Таким образом, секция ГДЕ позволяет задать условия отбора данных из таблиц. Вы читаете ознакомительную версию урока, полноценные уроки находятся здесь. Если задана секция ГДЕ , то в запросе обрабатываются только те строки таблиц, для которых условие секции оказывается истинным.

Обратите внимание, что поля, которые участвуют в условии (в нашем случае поле Цвет) не обязаны входить в список выбираемых полей:

В данном случае реквизит Цвет участвует в условии (секция ГДЕ ), но не участвует в списке выбираемых полей (секция ВЫБРАТЬ ):

04

Условие отбора может определяться и как простое логическое выражение , и как более сложное , в котором простые логические выражения соединяются между собой логическими операторами И, ИЛИ, НЕ.

Для примера, давайте выберем еду, у которой цвет белый или калорийность больше 100:

05

Секция ИМЕЮЩИЕ

Если в запросе используется группировка (см. предыдущий урок) и мы хотим наложить условие на результаты группировки, секция ГДЕ не подойдёт. Вместо неё нужно использовать секцию ИМЕЮЩИЕ .

Давайте подсчитаем суммарную калорийность еды по цветам. Вы читаете ознакомительную версию урока, полноценные уроки находятся здесь. Для этого используем группировку по цвету и агрегатную функцию СУММА по калорийности:

А теперь наложим условие на результат группировки так, чтобы остались только цвета с суммарной калорийностью больше 100:

06

Таким образом, секция ИМЕЮЩИЕ позволяет накладывать условия на значения агрегатных функций при группировке.

Обратите внимание, что агрегатные функции, которые участвуют в условии (в нашем случае поле СУММА(Калорийность)) не обязаны входить в список выборки:

В данном случае агрегатная функция СУММА(Калорийность) участвует в условии (секция ИМЕЮЩИЕ), но не участвует в списке выборки (секция ВЫБРАТЬ):

Условие отбора секции ИМЕЮЩИЕ может также определяться и как простое логическое выражение , и как более сложное , в котором простые логические выражения соединяются между собой логическими операторами И, ИЛИ, НЕ.

Для примера, давайте выберем цвета, имеющие суммарную калорийность больше 200 И меньше 300:

Читайте также: