Переключение на Главную Страницу Страницы: [1] 2  ОтправитьПечать
Горячая тема (более 10 ответов) В чем ошибка новичка? (число прочтений - 4818 )
q1w2e3r42008
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 20
Зарегистрирован: 30. Ноября 2008
Пол: Мужской
В чем ошибка новичка?
30. Ноября 2008 :: 00:12
Печать  
Нацарапал вот такое:
ТекстЗапроса = "
|SELECT
|  Жур.IDDoc as [Док $Документ],
|  Жур.IDDocDef as Док_вид,
|  CAST(LEFT(Жур.Date_Time_IDDoc, 8) as DateTime) as ДатаДок,
|  $РегОТ.Склад as [Склад $Справочник.Склады],
|  $РегОТ.Наценка as НаценкаРасход
|FROM
|  $Регистр.ОстаткиТоваров as РегОТ
|INNER JOIN
|  _1Sjourn as Жур ON Жур.IDDoc = РегОТ.IDDoc
|WHERE
|  Жур.Date_Time_IDDoc BETWEEN :ДатаНачала AND :ДатаКонца~ AND
|  Жур.IDDocDef = $ВидДокумента.РозничнаяНакл AND
|  Жур.Closed & 1 = 1";

---Работает  Улыбка

а так (очень надо)
ТекстЗапроса = "
|SELECT
|  Жур.IDDoc as [Док $Документ],
|  Жур.IDDocDef as Док_вид,
|  CAST(LEFT(Жур.Date_Time_IDDoc, 8) as DateTime) as ДатаДок,
|  $РегОТ.Склад as [Склад $Справочник.Склады],
|  $РегОТ.Наценка as НаценкаРасход
|FROM
|  $РегистрОбороты.ОстаткиТоваров(:ДатаНачала,:ДатаКонца~,,
|            INNER JOIN $Справочник.Склады as СпрСклады ON СпрСклады.ID=Склад AND $СпрСклады.ИтоговаяСводка=:ВыбТип,,(Склад),(Наценка)) as РегОТ
|INNER JOIN
|  _1Sjourn as Жур ON Жур.IDDoc = РегОТ.IDDoc
|WHERE
|  Жур.Date_Time_IDDoc BETWEEN :ДатаНачала AND :ДатаКонца~ AND
|  Жур.IDDocDef = $ВидДокумента.РозничнаяНакл AND
|  Жур.Closed & 1 = 1";

НЕ ЖЕЛАЕТ!! Злой

Пишет :: Meta name parser error: неизвестное метаимя или алиас "$РегОТ" - замучило - сочинить два условия вместе пока что не удаеЦА. ХЕЛП
  

1св77: время собирать камни
Наверх
www  
IP записан
 
Вадимко
God Member
*****
Отсутствует


Нам бы чего про ОдноЦэ...

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: В чем ошибка новичка?
Ответ #1 - 30. Ноября 2008 :: 00:19
Печать  
|  $РегистрОбороты.ОстаткиТоваров(:ДатаНачала,:ДатаКонца~,,
|            INNER JOIN $Справочник.Склады as СпрСклады ON СпрСклады.ID=Склад AND $СпрСклады.ИтоговаяСводка=:ВыбТип,,(Склад),(Наценка))
|INNER JOIN  _1Sjourn as Жур ON Жур.IDDoc = РегОТ.IDDoc
|INNER JOIN $Справочник.Склады as СпрСклады ON СпрСклады.ID=Склад AND $СпрСклады.ИтоговаяСводка=:ВыбТип  as РегОТ

и может имеет смысл убрать иннер джойн к журналу а сделать периодичность "Документ"? Тогда будет доступен вид документа
  

Кампутер, кофе и сигареты - это очень плохо для моего здоровья...
Наверх
IP записан
 
varelchik
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 788
Зарегистрирован: 22. Мая 2006
Re: В чем ошибка новичка?
Ответ #2 - 30. Ноября 2008 :: 08:20
Печать  
Надо не
|  $РегОТ.Склад as [Склад $Справочник.Склады],
|  $РегОТ.Наценка as НаценкаРасход
а
|  РегОТ.Склад as [Склад $Справочник.Склады],
|  РегОТ.НаценкаРасход as НаценкаРасход
курим манул по 1С++
раздел Учебник по прямым запросам.
  
Наверх
 
IP записан
 
q1w2e3r42008
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 20
Зарегистрирован: 30. Ноября 2008
Пол: Мужской
Re: В чем ошибка новичка?
Ответ #3 - 02. Декабря 2008 :: 09:19
Печать  
Спасибо всем кто вызвался помочь, вот что получается:
по подсказке (убрать $) начало выдавать: State 42S22, native 207, message [Microsoft][ODBC SQL Server Driver][SQL Server]Invalid column name 'IDDoc'.
  

1св77: время собирать камни
Наверх
www  
IP записан
 
Вадимко
God Member
*****
Отсутствует


Нам бы чего про ОдноЦэ...

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: В чем ошибка новичка?
Ответ #4 - 02. Декабря 2008 :: 09:50
Печать  
Где подсказка такая была?
"Служебные" колонки (Iddoc, Код, Наименование, ...) указываются без "$", а свои реквизиты типа "Склад" - с "$"
  

Кампутер, кофе и сигареты - это очень плохо для моего здоровья...
Наверх
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: В чем ошибка новичка?
Ответ #5 - 02. Декабря 2008 :: 10:01
Печать  
В ВТ Оборотов нет реквизита "IDDoc", поэтому так: РегОТ.IDDoc писАть нельзя.
Цитата:
Поля:

ПозицияДокумента - тип char(23); строка в формате date_time_iddoc (8+6+9); существует только в том случае, если указана периодичность Документ;
ВидДокумента - тип int; идентификатор вида документа; существует только в том случае, если указана периодичность Документ.
  
Наверх
 
IP записан
 
q1w2e3r42008
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 20
Зарегистрирован: 30. Ноября 2008
Пол: Мужской
Re: В чем ошибка новичка?
Ответ #6 - 02. Декабря 2008 :: 10:40
Печать  
Хорошо, подключаю периодичность типа "Документ" (хотя в последнем хелпе о нем ни слова, только День, Неделя, Месяц, Квартал, Год) т.е. РегОТ.IDDoc должен появится, выглядит так:
ТекстЗапроса = "
|SELECT
|  Жур.IDDoc as [Док $Документ],
|  Жур.IDDocDef as Док_вид,
|  CAST(LEFT(Жур.Date_Time_IDDoc, 8) as DateTime) as ДатаДок,
|  РегОТ.Склад as [Склад $Справочник.Склады],
|  РегОТ.Наценка as НаценкаРасход,
|  РегОТ.Период as Период
|FROM
|  $РегистрОбороты.ОстаткиТоваров(:ДатаНачала,:ДатаКонца~,Документ,
|            INNER JOIN $Справочник.Склады as СпрСклады ON СпрСклады.ID=Склад AND $СпрСклады.ИтоговаяСводка=:ВыбТип,,(Склад),(Наценка)) as РегОТ
|INNER JOIN
|  _1Sjourn as Жур ON Жур.IDDoc = РегОТ.IDDoc
|WHERE
|  Жур.Date_Time_IDDoc BETWEEN :ДатаНачала AND :ДатаКонца~ AND
|  Жур.IDDocDef = $ВидДокумента.РозничнаяНакл AND
|  Жур.Closed & 1 = 1";

но получаю на выходе:
State 42S22, native 207, message [Microsoft][ODBC SQL Server Driver][SQL Server]Invalid column name 'IDDoc'.

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

1св77: время собирать камни
Наверх
www  
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: В чем ошибка новичка?
Ответ #7 - 02. Декабря 2008 :: 10:54
Печать  
Я ж тебе даже цитату из хелпа привёл. Поля ПозицияДокумента и ВидДокумента появляются после указания периодичности "Документ", ни о каких IdDoc ни я, ни хелп тебе не говорил. (кстати, в хелпе всё нормально написано: http://www.1cpp.ru/docum/icpp/html/ODBC.html#id35 )
Также, я смотрю, тебе от документа нужно только сам документ и его дата. Всё это ты сможешь вытянуть из этих двух полей, поэтому дополнительное соединение с журналом тебе не нужно.
  
Наверх
 
IP записан
 
Вадимко
God Member
*****
Отсутствует


Нам бы чего про ОдноЦэ...

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: В чем ошибка новичка?
Ответ #8 - 02. Декабря 2008 :: 13:14
Печать  
На всякий случай если все же нужно Улыбка

SELECT МойРегистрОстаткиОбороты.ПозицияДокумента
FROM $РегистрОстаткиОбороты.МойРегистр(:НачДата,
           :КонДата,
           Документ,
           Движения,
           INNER JOIN _1SJOURN AS Журнал (nolock) ON ПозицияДокумента = Журнал.DATE_TIME_IDDOC,,,) AS МойРегистрОстаткиОбороты
  

Кампутер, кофе и сигареты - это очень плохо для моего здоровья...
Наверх
IP записан
 
q1w2e3r42008
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 20
Зарегистрирован: 30. Ноября 2008
Пол: Мужской
Re: В чем ошибка новичка?
Ответ #9 - 02. Декабря 2008 :: 14:12
Печать  
а теперь:  Meta name parser error: это метаимя разрешить невозможно "$РегистрОстаткиОбороты.ОстаткиТоваров"State 42S22, native 207, message [Microsoft][ODBC SQL Server Driver][SQL Server]Invalid column name 'ПозицияДокумента'.
  

1св77: время собирать камни
Наверх
www  
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: В чем ошибка новичка?
Ответ #10 - 02. Декабря 2008 :: 14:25
Печать  
Оно тебе нужно (соединение с журналом)?
  
Наверх
 
IP записан
 
q1w2e3r42008
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 20
Зарегистрирован: 30. Ноября 2008
Пол: Мужской
Re: В чем ошибка новичка?
Ответ #11 - 02. Декабря 2008 :: 14:35
Печать  
т.е. окончательный вариант:
|SELECT
|  РегОТ.Наценка as НаценкаРасход,
|  РегОТ.ПозицияДокумента
|FROM $РегистрОстаткиОбороты.ОстаткиТоваров(:ДатаНачала,:ДатаКонца~,
|  Документ,
|  Движения,
|  INNER JOIN _1SJOURN AS Жур (nolock) ON ПозицияДокумента = Жур.Date_Time_IDDoc,,(Склад),(Наценка)) AS РегОТ
- негодится  Печаль
  

1св77: время собирать камни
Наверх
www  
IP записан
 
q1w2e3r42008
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 20
Зарегистрирован: 30. Ноября 2008
Пол: Мужской
Re: В чем ошибка новичка?
Ответ #12 - 02. Декабря 2008 :: 14:35
Печать  
выполнить фильтр по виду документа
  

1св77: время собирать камни
Наверх
www  
IP записан
 
q1w2e3r42008
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 20
Зарегистрирован: 30. Ноября 2008
Пол: Мужской
Re: В чем ошибка новичка?
Ответ #13 - 02. Декабря 2008 :: 14:42
Печать  
Хотя я склонен к тому чтобы закрыть ветку - всем спасибо: хотел показать ошибки начинающих и поиск их решения
  

1св77: время собирать камни
Наверх
www  
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: В чем ошибка новичка?
Ответ #14 - 02. Декабря 2008 :: 14:43
Печать  
Код
Выбрать все
WHERE
|  ....
| РегОт.ВидДокумента = $ВидДокумента.РозничнаяНакл  

  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 
ОтправитьПечать