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


Ябба!

Сообщений: 317
Местоположение: г.Москва
Зарегистрирован: 14. Августа 2006
Пол: Мужской
Re: Считается все, кроме одного показателя... а я
Ответ #15 - 28. Сентября 2006 :: 09:24
Печать  
> Первый модификатор строки (~) нужно применять к одинесовскому
> формату позиции полученной из СформироватьПозициюДокумента
...
что-то у вас, господа, не клеится...
по приведенной выше цитате - в моем случае надо применять модификатор - но тогда не работает, а если не применять - то работает...
где правда?
и кто все таки прав?

  
Наверх
www  
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Считается все, кроме одного показателя... а я
Ответ #16 - 28. Сентября 2006 :: 09:41
Печать  
Цитата:
> Первый модификатор строки (~) нужно применять к одинесовскому
> формату позиции полученной из СформироватьПозициюДокумента
...
что-то у вас, господа, не клеится...
по приведенной выше цитате - в моем случае надо применять модификатор - но тогда не работает, а если не применять - то работает...

А здесь читал? Цитата:
Для формирования моментов времени также можно воспользоваться позицией документа: процедурой СформироватьПозициюДокумента() синтаксис 1, указывая не нулевой ФлагСмещения; или СформироватьПозициюДокумента() синтаксис 2.

И уверен, что работает? Для данного документа - возможно...
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
Злоп
Senior Member
****
Отсутствует


Ябба!

Сообщений: 317
Местоположение: г.Москва
Зарегистрирован: 14. Августа 2006
Пол: Мужской
Re: Считается все, кроме одного показателя... а я
Ответ #17 - 28. Сентября 2006 :: 09:47
Печать  
Не понял, при чем здесь СформироватьПозицию... в вашем изложении.
Работает у меня не для данного документа "возможно", а для всех доков которые я обрабатываю...
..вопрос, соответсвенно остался
Нужен модификатор или нет...
а то и сами не зенаете и меня путаете... Подмигивание
где правда?
  
Наверх
www  
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Считается все, кроме одного показателя... а я
Ответ #18 - 28. Сентября 2006 :: 10:03
Печать  
для начала пойми, что:
'#20060925 638770000     99116   ' и '20060925AKB234  24H8   '
- это одно и тоже (одна и таже позиция) только в разных форматах
в БД позиция хранится так: '20060925AKB234  24H8   ' и только так и никак не '#20060925 638770000     99116   '
если ты установишь текст.параметр '#20060925 638770000     99116   ' и применишь к нему первый модификатор то получишь '20060925AKB234  24H8   '
  

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



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

если отбирать позиции болше '#', то получим все позиции ибо '#'<'0'
поэтому у тебя выборка есть,  Класс но она неверная
  

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


Ябба!

Сообщений: 317
Местоположение: г.Москва
Зарегистрирован: 14. Августа 2006
Пол: Мужской
Re: Считается все, кроме одного показателя... а я
Ответ #20 - 28. Сентября 2006 :: 10:26
Печать  
подождите.. почему это она неверная?
если у меня все цифры бьются с оригинальным штатным запросом 1С?
Поясните, плиз!!!
..
возможно в подходе что-то неверно?
1. надо на текущий момент времени получить по документу ЗаявкаПокупателя (допустим реквизит типа "Документ.ЗаявкаПокупателя" лежит на форме) количество товара, заказанного покупателем.
Как это можно написать прямым запросом (типовая ТиС)?
  
Наверх
www  
IP записан
 
Злоп
Senior Member
****
Отсутствует


Ябба!

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



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Считается все, кроме одного показателя... а я
Ответ #22 - 29. Сентября 2006 :: 06:02
Печать  
Цитата:
все проблемы успешно решены с оплаченной помощью квалифицированных людей

ну-ну
а мы тут так, покурить вышли
Улыбка
  

1&&2&&3
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Считается все, кроме одного показателя... а я
Ответ #23 - 29. Сентября 2006 :: 06:19
Печать  
Цитата:
все проблемы успешно решены с оплаченной помощью квалифицированных людей.


А можно узнать имена этих людей, или это секретная инфа? Улыбка
ЗЫ типа народ должен знать своих героев Улыбка
а тебе вроде и так знающие спецы отвечали Печаль
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Переключение на Главную Страницу Страницы: [1] 
ОтправитьПечать