Добрый день, помогите с прямым запросом:
Из табличной части документа Продажи делаю отбор:
|
Реквизит <заказ> ( $партии.Заказ as [заказ $Документ]) может быть пустым или иметь значения двух типов: Документ.Заказ или Документ.ИнтернетЗаказ.
Как сделать отбор по типу реквизита <заказ>?
Из табличной части документа Продажи делаю отбор:
|
SELECT
| продажа.IDDoc as [док $Документ.НМпродажа],
| жур.$ОбщийРеквизит.Сотрудник as [продавец $Справочник.Сотрудники],
| $продажа.Товар as [аналог $Справочник.Номенклатура],
| $продажа.Количество as кол,
| $продажа.Сумма as сум,
| $продажа.Партия as [партия $Справочник.Партии],
| $партии.Заказ as [заказ $Документ]
|FROM
| $ДокументСтроки.НМпродажа as продажа
|INNER JOIN
| $Документ.НМпродажа as док ON док.IDDoc = продажа.IDDoc
|INNER JOIN
| _1SJourn as жур ON жур.IDDoc = продажа.IDDoc AND
| жур.Date_Time_IDDoc BETWEEN :ДатаНач AND :ДатаКон~
|LEFT JOIN
| $Справочник.Партии as партии with (nolock) on $продажа.Партия = партии.id
|WHERE
| док.$ОбщийРеквизит.Магазин = :выбМагазин";
ПоказатьРеквизит <заказ> ( $партии.Заказ as [заказ $Документ]) может быть пустым или иметь значения двух типов: Документ.Заказ или Документ.ИнтернетЗаказ.
Как сделать отбор по типу реквизита <заказ>?
По теме из базы знаний
- Работа с периодическими реквизитами 1С версии 7.7 при помощи прямых запросов.
- Расчет итогов по группам справочника в прямом запросе.
- Последний тюнинг известной обработки 1CQA (консоль прямых запросов 1С++) для 1С:Предприятие-77.
- Реализация условий в прямых запросах к журналу расчета.
- Подсистема "COMExchange": «прямые» запросы к базе 1С через ADO или как простые элементы сделать “предопределёнными”.
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(4) Пробую так:
Скрыть
Ошибка: State 42000, native 4104, message [Microsoft][ODBC SQL Server Driver][SQL Server]Не удалось привязать составной идентификатор "заказ.IDDoc".
стрЗапроса = "
|SELECT
| продажа.IDDoc as [док $Документ.НМпродажа],
| жур.$ОбщийРеквизит.Сотрудник as [продавец $Справочник.Сотрудники],
| $продажа.Аналог as [аналог $Справочник.НовАналоги],
| $продажа.Количество as кол,
| $продажа.Сумма as сум,
| $продажа.Партия as [партия $Справочник.Партии],
| $партии.Заказ as [заказ $Документ]
|FROM
| $ДокументСтроки.НМпродажа as продажа
|INNER JOIN
| $Документ.НМпродажа as док1 ON док1.IDDoc = продажа.IDDoc
|INNER JOIN
| $Документ.ЗаказИнтернет as док2 ON док2.IDDoc = заказ.IDDoc
|INNER JOIN
| _1SJourn as жур ON жур.IDDoc = продажа.IDDoc AND
| жур.Date_Time_IDDoc BETWEEN :ДатаНач AND :ДатаКон~
|LEFT JOIN
| $Справочник.Партии as партии with (nolock) on $продажа.Партия = партии.id
|WHERE
| док.$ОбщийРеквизит.Магазин = :выбМагазин";
ПоказатьСкрыть
Ошибка: State 42000, native 4104, message [Microsoft][ODBC SQL Server Driver][SQL Server]Не удалось привязать составной идентификатор "заказ.IDDoc".
Пробую так:
Ошибка: State 42000, native 4104, message [Microsoft][ODBC SQL Server Driver][SQL Server]Не удалось привязать составной идентификатор "заказ.IDDoc".
стрЗапроса = "
|SELECT
| продажа.IDDoc as [док $Документ.НМпродажа],
| жур.$ОбщийРеквизит.Сотрудник as [продавец $Справочник.Сотрудники],
| $продажа.Аналог as [аналог $Справочник.НовАналоги],
| $продажа.Количество as кол,
| $продажа.Сумма as сум,
| $продажа.Партия as [партия $Справочник.Партии],
| $партии.Заказ as [заказ $Документ]
|FROM
| $ДокументСтроки.НМпродажа as продажа
|INNER JOIN
| $Документ.НМпродажа as док1 ON док1.IDDoc = продажа.IDDoc
|INNER JOIN
| $Документ.ЗаказИнтернет as док2 ON док2.IDDoc = заказ.IDDoc
|INNER JOIN
| _1SJourn as жур ON жур.IDDoc = продажа.IDDoc AND
| жур.Date_Time_IDDoc BETWEEN :ДатаНач AND :ДатаКон~
|LEFT JOIN
| $Справочник.Партии as партии with (nolock) on $продажа.Партия = партии.id
|WHERE
| док.$ОбщийРеквизит.Магазин = :выбМагазин";
ПоказатьОшибка: State 42000, native 4104, message [Microsoft][ODBC SQL Server Driver][SQL Server]Не удалось привязать составной идентификатор "заказ.IDDoc".
(9)
То же самое:
State 42000, native 4104, message [Microsoft][ODBC SQL Server Driver][SQL Server]Не удалось привязать составной идентификатор "заказ.IDDocDef".
|WHERE
|
| Заказ.IDDocDef = $ВидДокумента.Заказ
| OR
| Заказ.IDDocDef = $ВидДокумента.ИнтернетЗаказ
|
|
| Заказ.IDDocDef = $ВидДокумента.Заказ
| OR
| Заказ.IDDocDef = $ВидДокумента.ИнтернетЗаказ
|
То же самое:
State 42000, native 4104, message [Microsoft][ODBC SQL Server Driver][SQL Server]Не удалось привязать составной идентификатор "заказ.IDDocDef".
(10)
система не понимает что такое "заказ.IDDoc"
в частности у вас не описана таблица "заказ", хотя вы ее описали как "док2"
Имха как-то так должно быть.
|INNER JOIN
| $Документ.ЗаказИнтернет as док2 ON док2.IDDoc = партии.Заказ
Ps. но по прямым запросам не силен.
система не понимает что такое "заказ.IDDoc"
в частности у вас не описана таблица "заказ", хотя вы ее описали как "док2"
Имха как-то так должно быть.
|INNER JOIN
| $Документ.ЗаказИнтернет as док2 ON док2.IDDoc = партии.Заказ
Ps. но по прямым запросам не силен.
Решил вопрос так:
стрЗапроса = "
|SELECT
| продажа.IDDoc as [докПродажа $Документ.НМпродажа],
| $продажа.Продавец as [продавец $Справочник.Сотрудники],
| $продажа.Сумма as сум,
| $продажа.Партия as [партия $Справочник.Партии],
| $партии.Заказ as [заказ $Документ],
| LEFT($партии.Заказ,5) as заказ1
|FROM
| $ДокументСтроки.НМпродажа as продажа
|LEFT JOIN $Справочник.Партии as партии on $продажа.Партия = партии.id
|INNER JOIN $Документ.НМпродажа as док on док.IDDoc = продажа.IDDoc
|INNER JOIN _1SJourn as жур on жур.IDDoc = продажа.IDDoc AND жур.Date_Time_IDDoc BETWEEN :дата1 AND :дата2~
|WHERE
| док.$ОбщийРеквизит.Магазин = :выбМагазин AND LEFT($партии.Заказ,5) = ' 4TF '";
' 4TF ' - внутренний ИД видаДокумента ИнтернетЗаказ
Пока всё, всем спасибо.
Тема закрыта.
стрЗапроса = "
|SELECT
| продажа.IDDoc as [докПродажа $Документ.НМпродажа],
| $продажа.Продавец as [продавец $Справочник.Сотрудники],
| $продажа.Сумма as сум,
| $продажа.Партия as [партия $Справочник.Партии],
| $партии.Заказ as [заказ $Документ],
| LEFT($партии.Заказ,5) as заказ1
|FROM
| $ДокументСтроки.НМпродажа as продажа
|LEFT JOIN $Справочник.Партии as партии on $продажа.Партия = партии.id
|INNER JOIN $Документ.НМпродажа as док on док.IDDoc = продажа.IDDoc
|INNER JOIN _1SJourn as жур on жур.IDDoc = продажа.IDDoc AND жур.Date_Time_IDDoc BETWEEN :дата1 AND :дата2~
|WHERE
| док.$ОбщийРеквизит.Магазин = :выбМагазин AND LEFT($партии.Заказ,5) = ' 4TF '";
' 4TF ' - внутренний ИД видаДокумента ИнтернетЗаказ
Пока всё, всем спасибо.
Тема закрыта.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот