Переключение на Главную Страницу Страницы: [1] 2  ОтправитьПечать
Горячая тема (более 10 ответов) Считается все, кроме одного показателя... а я нови (число прочтений - 9615 )
Злоп
Senior Member
****
Отсутствует


Ябба!

Сообщений: 317
Местоположение: г.Москва
Зарегистрирован: 14. Августа 2006
Пол: Мужской
Считается все, кроме одного показателя... а я нови
27. Сентября 2006 :: 15:51
Печать  
Типовая ТиС, работа с заявками покупателя.
есть запрос, часть этого запроса рассчитывает количество товара (ВыписанаЗаявка) по сделанной заявке клиента (регистр "заявки", приход по ресурсу "КоличествоРасход"), выглядит так:

     Текст = "SELECT
     |      Выборка.Номенклатура as [Номенклатура $Справочник.Номенклатура],
     |      SUM(Выборка.ВыписанаЗаявка) as ВыписанаЗаявка,
     |      SUM(Выборка.Отпущено) as Отпущено,
     |      SUM(Выборка.СнятаЗаявка) as СнятаЗаявка,
     |      SUM(Выборка.ОстатокЗаявки) as ОстатокЗаявки,
     |      SUM(Выборка.ОстатокНаСкладах) as ОстатокНаСкладах,
     |      SUM(Выборка.ЗаказаноПоставщику) as ЗаказаноПоставщику,
     |      SUM(Выборка.Зарезервировано) as Зарезервировано,
     |      SUM(Выборка.ЧужиеРезервы) as ЧужиеРезервы
     |
     |FROM
     |(
     |SELECT
     |      Рег_Заявки.Номенклатура as Номенклатура,
     |      Рег_Заявки.КоличествоРасходПриход as ВыписанаЗаявка,
     |
     |      CASE
     |      WHEN Жур.IDDocDef IN ($ВидДокумента.ЗаявкаПокупателя, $ВидДокумента.ОтменаЗаявок) 
     |         THEN Рег_Заявки.КоличествоРасходРасход
     |   ELSE 0 END as Отпущено,
     |
     |      CASE
     |      WHEN NOT Жур.IDDocDef IN ($ВидДокумента.ЗаявкаПокупателя, $ВидДокумента.ОтменаЗаявок) 
     |         THEN Рег_Заявки.КоличествоРасходРасход
     |   ELSE 0 END as СнятаЗаявка,
     |
     |      Рег_Заявки.КоличествоРасходКонечныйОстаток as ОстатокЗаявки,
     |
     |      0 as ОстатокНаСкладах,
     |   0 as ЗаказаноПоставщику,
     |      0 as Зарезервировано,
     |      0 as ЧужиеРезервы
     |
     |FROM
     |      $РегистрОстаткиОбороты.Заявки(:ПозицияДокумента~, :ДатаКонцаАнализа~,,,,
     |                                 ЗаявкаПокупателя = :ВыбДокумент AND
     |                                 Фирма = :ВыбФирма AND
     |                                 Номенклатура IN
     |                                       (SELECT
     |                                           $ДокС.Номенклатура
     |                                                             FROM
     |                                           $ДокументСтроки.ЗаявкаПокупателя as ДокС
     |                                        WHERE
     |                                           ДокС.IDDoc = :ВыбДокумент),
     |                                 (Номенклатура, ЗаявкаПокупателя), (КоличествоРасход)) as Рег_Заявки
     |INNER JOIN
     |      _1SJourn as Жур ON Жур.IDDoc = Рег_Заявки.ЗаявкаПокупателя
     |
     |UNION ALL
проблема: ВыписанаЗаявка в результате выполнения запроса = 0.
Где косяк?
Помогите новичку.., плиз.
Все работает, кроме этого! уже невтерпеж...
  
Наверх
www  
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Считается все, кроме одного показателя... а я
Ответ #1 - 27. Сентября 2006 :: 16:14
Печать  
Цитата:
в результате выполнения запроса = 0.
исчерпывающе Подмигивание
что значит ноль: нет строк? значения сумм 0?

если нет строк, то некоторые возможные причины:
- параметр ПозицияДокумента установлен не верно
- параметр ДатаКонцаАнализа установлен не верно
- измерение ЗаявкаПокупателя имеет тип "Документ" неопр. вида
- измерение Фирма имеет тип "Справочник" неопр. вида
- измерение Номенклатура и реквизит документа ЗаявкаПокупателя.Номенклатура разных "по длине" типов
  

1&&2&&3
Наверх
 
IP записан
 
Злоп
Senior Member
****
Отсутствует


Ябба!

Сообщений: 317
Местоположение: г.Москва
Зарегистрирован: 14. Августа 2006
Пол: Мужской
Re: Считается все, кроме одного показателя... а я
Ответ #2 - 27. Сентября 2006 :: 16:19
Печать  
Нет, Результирующая ТЗ получается все как надо, за сиключением колонки ВыписанаЗаявка - в ней ноль. если есть необходимотсь - приведу полный вариант запроса.
  
Наверх
www  
IP записан
 
Злоп
Senior Member
****
Отсутствует


Ябба!

Сообщений: 317
Местоположение: г.Москва
Зарегистрирован: 14. Августа 2006
Пол: Мужской
Re: Считается все, кроме одного показателя... а я
Ответ #3 - 27. Сентября 2006 :: 16:22
Печать  
Т.е. строки все есть со всеми правильными значениями сумм в остальных столбцах, кроме этого.
- параметр ПозицияДокумента установлен не верно
установлен ОК, так как все ост.значения = ОК.

- параметр ДатаКонцаАнализа установлен не верно
установлен ОК, так как все ост.значения = ОК.

- измерение ЗаявкаПокупателя имеет тип "Документ" неопр. вида
имеет тип Документ.ЗаявкаПокупателя

- измерение Фирма имеет тип "Справочник" неопр. вида
имеет тип Справочник.Фирмы

- измерение Номенклатура и реквизит документа ЗаявкаПокупателя.Номенклатура разных "по длине" типов
и то и то - тип Справочник.Номенклатура
  
Наверх
www  
IP записан
 
DrACe
1c++ donor
1c++ power user
Отсутствует


1С++ любитель

Сообщений: 447
Местоположение: г. Новосибирск
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Считается все, кроме одного показателя... а я
Ответ #4 - 28. Сентября 2006 :: 02:26
Печать  
все же приведи весь запрос, или то, что после UNION ALL

может у тебя нет движений Приход? или во второй части запроса ВыписанаЗаявка с минусом
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Считается все, кроме одного показателя... а я
Ответ #5 - 28. Сентября 2006 :: 05:47
Печать  
начни отладку с выполнения только этот запрос к ВТ: будет результат или нет.
дальше по обстоятельствам: убирай условия - смотри результат.
и т.д.
  

1&&2&&3
Наверх
 
IP записан
 
Злоп
Senior Member
****
Отсутствует


Ябба!

Сообщений: 317
Местоположение: г.Москва
Зарегистрирован: 14. Августа 2006
Пол: Мужской
Re: Считается все, кроме одного показателя... а я
Ответ #6 - 28. Сентября 2006 :: 08:22
Печать  
хм.. выяснилось, что все дело в :ПозицияДокумента~
надо написать :ПозицияДокумента
и все стало ок.
... еще бы понять - почему...
  
Наверх
www  
IP записан
 
DrACe
1c++ donor
1c++ power user
Отсутствует


1С++ любитель

Сообщений: 447
Местоположение: г. Новосибирск
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Считается все, кроме одного показателя... а я
Ответ #7 - 28. Сентября 2006 :: 08:24
Печать  
Цитата:
хм.. выяснилось, что все дело в :ПозицияДокумента~
надо написать :ПозицияДокумента
и все стало ок.
... еще бы понять - почему...

читай доку по установке модификаторов и смотри отладку с разными модификаторами
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Считается все, кроме одного показателя... а я
Ответ #8 - 28. Сентября 2006 :: 08:34
Печать  
Цитата:
хм.. выяснилось, что все дело в :ПозицияДокумента~
надо написать :ПозицияДокумента
и все стало ок.
... еще бы понять - почему...

Хе-хе, позицию то наверно получил через метадаворк (ПолучитьДатуВремяИдДок)?
В этом случае модифицировать строку конечно не надо - она уже нужного формата.

Первый модификатор строки (~) нужно применять к одинесовскому формату позиции полученной из СформироватьПозициюДокумента
  

1&&2&&3
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Считается все, кроме одного показателя... а я
Ответ #9 - 28. Сентября 2006 :: 08:38
Печать  
+
Насколько помню ты уже спрашивал про установку позиции.
Тебе кроме модификатора строки позиции предлагал воспользоваться четвертым модификатором параметра типа документ :ВыбДокумент~~~~ (раз уж все равно есть такой текстовый параметр).
В этом случае парсер сам сформирует позицию документа и подставит ее в запрос. + на один параметр меньше
  

1&&2&&3
Наверх
 
IP записан
 
Злоп
Senior Member
****
Отсутствует


Ябба!

Сообщений: 317
Местоположение: г.Москва
Зарегистрирован: 14. Августа 2006
Пол: Мужской
Re: Считается все, кроме одного показателя... а я
Ответ #10 - 28. Сентября 2006 :: 08:38
Печать  
RS.УстановитьТекстовыйПараметр("ПозицияДокумента",      СформироватьПозициюДокумента(ВыбДокумент));
если применить модификатор - то чем это будет отличаться от без модификатора... я так думаю, что с модификатором выборка начинается ЗА документом - вот и получаются нули...
????
  
Наверх
www  
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Считается все, кроме одного показателя... а я
Ответ #11 - 28. Сентября 2006 :: 08:41
Печать  
1. посмотри что возвращает СформироватьПозициюДокумента
2. посмотри как выглядят позиции документов в базе
3. прочитай что делает первый модификатор для параметра типа строка
  

1&&2&&3
Наверх
 
IP записан
 
Злоп
Senior Member
****
Отсутствует


Ябба!

Сообщений: 317
Местоположение: г.Москва
Зарегистрирован: 14. Августа 2006
Пол: Мужской
Re: Считается все, кроме одного показателя... а я
Ответ #12 - 28. Сентября 2006 :: 09:02
Печать  
ПозицияДокумента = #20060925 638770000     99116   
без модификатора выглядит так

where j4674_vt.date_time_iddoc > '#20060925 638770000     99116   ' and j4674_vt.date_time_iddoc < '20060927APQBEO  24HL   '

с модификатором
where j4674_vt.date_time_iddoc > '20060925AKB234  24H8   ' and j4674_vt.date_time_iddoc < '20060927APQBEO  24HL   '

итого выборка идет с
'#20060925 638770000     99116   ' или
'20060925AKB234  24H8   '

т.е. выборка результатов идет с разного "момента времени" - так?
первое понятно: - это позиция документа (тоже неясно - если выборка идет с момента времени БОЛЬШЕГО чем позиция документа - откуда результаты ппо доку берутся? они же записаны на позицию дока...? или не так?)

а что означает второе? второе означает документ, который сформировал позицию...?

совсем я тупой...
все потому, что связного изложения нигде нет...
  
Наверх
www  
IP записан
 
Злоп
Senior Member
****
Отсутствует


Ябба!

Сообщений: 317
Местоположение: г.Москва
Зарегистрирован: 14. Августа 2006
Пол: Мужской
Re: Считается все, кроме одного показателя... а я
Ответ #13 - 28. Сентября 2006 :: 09:07
Печать  
В тексте запроса модификаторы обозначаются символами "~" или "*" после имени параметра. Количество символов "~" после имени параметра определяет номер модификатора. Если после имени параметра не указан модификатор, то номер модификатора равен 0. Так как типом "Неопределенный" (char(23)) можно выразить любой тип 1С, для этого существует специальный модификатор, обозначаемый символом "*", который определен для любого передаваемого типа 1С. Его номер 20.

Модификаторы определены для следующих типов 1С:

Строка:

0: char() - строка как есть;
1: char(23) - должна быть передана позиция документа, из которой будет сформирована строка в формате date_time_iddoc.
...
итого: припередаче в запрос ПозицииДока с модификатором получили.. что?
"временной" маркер дока? или сам док?...

и какая разница - выбирать результат с позицииДокумента? или с "временной" метки дока?
  
Наверх
www  
IP записан
 
Злоп
Senior Member
****
Отсутствует


Ябба!

Сообщений: 317
Местоположение: г.Москва
Зарегистрирован: 14. Августа 2006
Пол: Мужской
Re: Считается все, кроме одного показателя... а я
Ответ #14 - 28. Сентября 2006 :: 09:22
Печать  
ну как обычно.. все в отказку ушли... типа сам мучайся...
  
Наверх
www  
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 
ОтправитьПечать