Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 07:10

Помогите понять строки в запросе

Автор vvashkarin, 30 дек 2015, 21:35

0 Пользователей и 1 гость просматривают эту тему.

vvashkarin

   |ВЫБРАТЬ
   |   Таблица1.Код,
   |   Таблица1.Наименование,
   |   Таблица2.Ссылка ЕСТЬ NULL
   |      ИЛИ Таблица1.Наименование <> Таблица2.Наименование
   |      ИЛИ Таблица1.Данные1 <> Таблица2.Данные1
   |      ИЛИ Таблица1.Данные2 <> Таблица2.Данные2 КАК ЕстьИзменения
   |ИЗ
   |   Таблица1 КАК Таблица1
   |      ЛЕВОЕ СОЕДИНЕНИЕ Таблица2  КАК Таблица2
   |      ПО Таблица1.Код = Таблица2.Код";

Возможно ли использовать такое условие перед ИЗ и есть ли какие либо ограничения?

1Cnastroika

Запрос составлен неправильно. Если нужно выводить поле в результат запроса в зависимости от условия, то нужно использовать конструкцию

Выбор
    Когда Тогда
    Иначе
Конец


Если нужно выбирать в результат запроса строки по условию, то нужно использовать условие

где Условие

vvashkarin

Цитата: 1Cnastroika от 30 дек 2015, 21:52
Запрос составлен неправильно. Если нужно выводить поле в результат запроса в зависимости от условия, то нужно использовать конструкцию

Выбор
    Когда Тогда
    Иначе
Конец


Если нужно выбирать в результат запроса строки по условию, то нужно использовать условие

где Условие


я тоже такого не видел раньше. но этот запрос из стандартной 1С конфигурации(Розница)

1Cnastroika

Приведите фрагмент кода из типовой конфигурации.
Добавлено: 30 дек 2015, 22:38


Я не думаю, что в типовой конфигурации таблицы имеют именно такие названия.

TrigubovichL

Не вижу никакого "криминала".

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

Ну, а что это за таблицы и что в них за ссылки - надеюсь Вы разберетесь.

vvashkarin

Цитата: 1Cnastroika от 30 дек 2015, 22:35
Приведите фрагмент кода из типовой конфигурации.
Добавлено: 30 дек 2015, 22:38


Я не думаю, что в типовой конфигурации таблицы имеют именно такие названия.

В данный момент нет возможности скопировать запрос(. Но я воспроизвел ситуацию на 99 процентов.
Добавлено: 31 дек 2015, 12:14


Цитата: TrigubovichL от 31 дек 2015, 11:24
Не вижу никакого "криминала".

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

Ну, а что это за таблицы и что в них за ссылки - надеюсь Вы разберетесь.

фишка в том что запрос не срабатывает))

1Cnastroika

Цитата: TrigubovichL от 31 дек 2015, 11:24
Не вижу никакого "криминала".
Выражение логическое, тип поля - булево,

В языке 1С используются конструкции типа А = Б > C. При этом А имеет тип булево. Проверил в конструкторе запросов - логическое выражение в полях запроса не пропускает.
Добавлено: 31 дек 2015, 12:37


Цитата: vvashkarin от 31 дек 2015, 12:14
Цитата: 1Cnastroika от 30 дек 2015, 22:35
В данный момент нет возможности скопировать запрос(. Но я воспроизвел ситуацию на 99 процентов.

Тем не менее Вы могли что-то упустить. Нужен фрагмент кода из типовой конфигурации и точка, в которой расположен этот фрагмент.

TerverVl

Такой синтаксис вполне допустим. Результат возвращаемый таким поле будет булевским. Т.е. в запросе можно использовать
конструкции типа:

ВЫБРАТЬ
&Параметр = 1,
10 = &Параметр ИЛИ 1 = &Параметр


1Cnastroika

Цитата: TerverVl от 02 янв 2016, 15:05
Такой синтаксис вполне допустим. Результат возвращаемый таким поле будет булевским. Т.е. в запросе можно использовать
конструкции типа:

ВЫБРАТЬ
&Параметр = 1,
10 = &Параметр ИЛИ 1 = &Параметр



Конструктор запроса не пропускает поле типа Выбрать А = 1

vvashkarin

Цитата: 1Cnastroika от 03 янв 2016, 08:20
Цитата: TerverVl от 02 янв 2016, 15:05
Такой синтаксис вполне допустим. Результат возвращаемый таким поле будет булевским. Т.е. в запросе можно использовать
конструкции типа:

ВЫБРАТЬ
&Параметр = 1,
10 = &Параметр ИЛИ 1 = &Параметр



Конструктор запроса не пропускает поле типа Выбрать А = 1

Вот и я об этом же. С виду может оно и логично, но мне кажется не для синтаксиса языка запроса.
Добавлено: 03 янв 2016, 13:43


Я вот думаю может это стало возможным с версии новой платформы??? что скажите??? не слышал никто про нововведения в запросах в новых платформах?

Похожие темы (5)

Рейтинг@Mail.ru

Поиск