Имя: Пароль:
1C
1С v8
ССЫЛКА В запросе
,
0 Botanik
 
01.11.11
16:33
День добрый товарищи.
Нужно всего навсего понять к какому типу данных принадлежит (ЗазмещениеТоваровВЗаказе.Заказ) пробу конструкцию ВЫБОР КОГДА...не дает построить в запросе:
Выбор когда ЗазмещениеТоваровВЗаказе.Заказ ССЫЛКА  Документ.ЗаказПокупателя
      Тогда 1
     Иначе 2
Что тут не так?
Текст запроса:

ВЫБРАТЬ
   ДоставкиОтДизайн_SF.Документ
ПОМЕСТИТЬ ДоставкиОТД
ИЗ
   РегистрСведений.ДоставкиОтДизайн_SF КАК ДоставкиОтДизайн_SF
ГДЕ
   ДоставкиОтДизайн_SF.Выполнена = ЛОЖЬ
   И ДоставкиОтДизайн_SF.Отменена = ЛОЖЬ
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ЗаказПокупателяТовары.ID,
   ЗаказПокупателяТовары.Номенклатура,
   ЗаказПокупателяТовары.Количество,
   ЗаказПокупателяТовары.ЕдиницаИзмерения,
   ЗаказПокупателяТовары.Цена,
   ЗаказПокупателяТовары.Сумма,
   ЗаказПокупателяТовары.Размещение
ПОМЕСТИТЬ ТоварыЗаказа
ИЗ
   Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары
ГДЕ
   ЗаказПокупателяТовары.Ссылка В
           (ВЫБРАТЬ
               ДоставкиОТД.Документ
           ИЗ
               ДоставкиОТД КАК ДоставкиОТД)
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   РазмещениеЗаказовПокупателейОстатки.ЗаказПоставщику КАК Заказ,
   РазмещениеЗаказовПокупателейОстатки.ЗаказПокупателя,
   РазмещениеЗаказовПокупателейОстатки.Номенклатура,
   РазмещениеЗаказовПокупателейОстатки.КоличествоОстаток
ПОМЕСТИТЬ Размещения
ИЗ
   РегистрНакопления.РазмещениеЗаказовПокупателей.Остатки(
           ,
           ЗаказПокупателя В
                   (ВЫБРАТЬ
                       ДоставкиОТД.Документ
                   ИЗ
                       ДоставкиОТД КАК ДоставкиОТД)
               И Номенклатура В
                   (ВЫБРАТЬ
                       ТоварыЗаказа.Номенклатура
                   ИЗ
                       ТоварыЗаказа КАК ТоварыЗаказа)) КАК РазмещениеЗаказовПокупателейОстатки
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ТоварыВРезервеНаСкладахОстатки.Склад,
   ТоварыВРезервеНаСкладахОстатки.ДокументРезерва,
   ТоварыВРезервеНаСкладахОстатки.Номенклатура,
   ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток
ПОМЕСТИТЬ Резервы
ИЗ
   РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(
           ,
           ДокументРезерва В
                   (ВЫБРАТЬ
                       ДоставкиОТД.Документ
                   ИЗ
                       ДоставкиОТД КАК ДоставкиОТД)
               И Номенклатура В
                   (ВЫБРАТЬ
                       ТоварыЗаказа.Номенклатура
                   ИЗ
                       ТоварыЗаказа КАК ТоварыЗаказа)) КАК ТоварыВРезервеНаСкладахОстатки
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ЕСТЬNULL(Размещения.Заказ, "") КАК Заказ,
   Размещения.ЗаказПокупателя КАК ДокументРезерва,
   Размещения.Номенклатура,
   Размещения.КоличествоОстаток
ПОМЕСТИТЬ ЗазмещениеТоваровВЗаказе
ИЗ
   Размещения КАК Размещения

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
   Резервы.Склад,
   Резервы.ДокументРезерва,
   Резервы.Номенклатура,
   Резервы.КоличествоОстаток
ИЗ
   Резервы КАК Резервы
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ЗазмещениеТоваровВЗаказе.Заказ,
   ЗазмещениеТоваровВЗаказе.ДокументРезерва,
   ЗазмещениеТоваровВЗаказе.Номенклатура,
   ЗазмещениеТоваровВЗаказе.КоличествоОстаток
ИЗ
   ЗазмещениеТоваровВЗаказе КАК ЗазмещениеТоваровВЗаказе
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ОТДДоставкиСозданные_Sf.Заказ КАК Заказ,
   ОТДДоставкиСозданные_Sf.Номенклатура,
   ЗазмещениеТоваровВЗаказе.Заказ КАК Размещение,
   ОТДДоставкиСозданные_Sf.Бизнеспроцесс,
   ОТДДоставкиСозданные_Sf.ID,
   ОТДДоставкиСозданные_Sf.Количество,
   ОТДДоставкиСозданные_Sf.Цена,
   ОТДДоставкиСозданные_Sf.Сумма,
   ОТДДоставкиСозданные_Sf.ОперативныйКомментарий,
   ОТДДоставкиСозданные_Sf.Выполнен,
   ОТДДоставкиСозданные_Sf.Отменен,
   ОТДДоставкиСозданные_Sf.НаДоставке,
   ОТДДоставкиСозданные_Sf.ПрошлоеРазмещение,
   ОТДДоставкиСозданные_Sf.СборкаВыполнена,
   ОТДДоставкиСозданные_Sf.Выводить,
   ОТДДоставкиСозданные_Sf.ЕдиницаИзмерения,
   ОТДДоставкиСозданные_Sf.СтатусЗаказа,
   ОТДДоставкиСозданные_Sf.ДатаПоставщика,
   ОТДДоставкиСозданные_Sf.ОтгрузкаПо,
   ОТДДоставкиСозданные_Sf.ОтгрузкаС,
   ОТДДоставкиСозданные_Sf.ПервыйВыполнен
        //,
   //Выбор когда ЗазмещениеТоваровВЗаказе.Заказ ССЫЛКА  //Документ.ЗаказПокупателя
     // Тогда 1
     // Иначе 2
  // Конец КАК Поле1
ИЗ
   РегистрСведений.ОТДДоставкиСозданные_Sf КАК ОТДДоставкиСозданные_Sf
       ЛЕВОЕ СОЕДИНЕНИЕ ЗазмещениеТоваровВЗаказе КАК ЗазмещениеТоваровВЗаказе
       ПО ОТДДоставкиСозданные_Sf.Номенклатура = ЗазмещениеТоваровВЗаказе.Номенклатура
           И ОТДДоставкиСозданные_Sf.Заказ = ЗазмещениеТоваровВЗаказе.ДокументРезерва
ГДЕ
   ОТДДоставкиСозданные_Sf.Выводить = ИСТИНА
   И ОТДДоставкиСозданные_Sf.Заказ В
           (ВЫБРАТЬ
               ДоставкиОТД.Документ
           ИЗ
               ДоставкиОТД КАК ДоставкиОТД)
ИТОГИ ПО
   Заказ
1 Живой Ископаемый
 
01.11.11
16:34
у тебя какая платформа?
2 Botanik
 
01.11.11
16:34
8.2
3 Botanik
 
01.11.11
16:35
14.519
4 Живой Ископаемый
 
01.11.11
16:36
2(2) Открой для себя функцию ТИПЗначения()
5 Botanik
 
01.11.11
16:37
Ошибка: Несовместимые типы ССЫЛКА
6 Axel2009
 
01.11.11
16:38
а где КОНЕЦ для ВЫБОР?
7 Живой Ископаемый
 
01.11.11
16:38
8 Botanik
 
01.11.11
16:41
(6) с концом все нормально =)
9 Vakhrin
 
01.11.11
16:43
при левом соединении может быть null
10 Vakhrin
 
01.11.11
16:44
и, ессесно, никак не ССЫЛКА
11 Reset
 
01.11.11
16:49
Выбор когда ЗАЗмещениеТоваровВЗаказе.Заказ is null
Тогда 0
когда ЗАЗмещениеТоваровВЗаказе.Заказ ССЫЛКА  Документ.ЗаказПокупателя
Тогда 1
Иначе 2
Конец КАК Поле1
12 Reset
 
01.11.11
16:54
хотя там походу не в этом дело
13 Botanik
 
01.11.11
16:55
(11) Эт... ошибка такая же.

Выбор когда ОТДДоставкиСозданные_Sf.Заказ есть null
  Тогда 0
      Иначе
      ВЫБОР когда ЗАЗмещениеТоваровВЗаказе.Заказ ССЫЛКА  Документ.ЗаказПокупателя
     Тогда 1
     Иначе 2
  Конец
Конец
14 Botanik
 
01.11.11
16:57
Вот так работает.
ВЫБОР
   КОГДА ТИПЗНАЧЕНИЯ(ЕСТЬNULL(ЗазмещениеТоваровВЗаказе.Заказ, "")) = ТИП(СТРОКА)
       ТОГДА 0
   ИНАЧЕ ВЫБОР
           КОГДА ТИПЗНАЧЕНИЯ(ЕСТЬNULL(ЗазмещениеТоваровВЗаказе.Заказ, "")) = ТИП(Документ.ЗаказПокупателя)
               ТОГДА 1
           ИНАЧЕ 2
       КОНЕЦ
КОНЕЦ
15 Botanik
 
01.11.11
16:58
Всем Спасибо!!! Тема закрыта.
16 Живой Ископаемый
 
01.11.11
16:58
боже...