Переключение на Главную Страницу Страницы: [1] 2 3  ОтправитьПечать
Очень популярная тема (более 25 ответов) Прямой запрос+запрос 1с всегда равны? (число прочтений - 9827 )
pavlo
1c++ donor
1c++ power user
Отсутствует



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Прямой запрос+запрос 1с всегда равны?
22. Апреля 2009 :: 05:58
Печать  
Прямой запрос с ВТ+запрос 1с всегда равны при одинаковых условиях?
Просто есть запрос в виде 1с и там данные правильные, а есть абсолютно с теми же условиями запрос прямой с использованием ВТ остатки обороты и данные другие Печаль
то есть там список доков выдается и напротив доков нач остаток стоит 0, а после ВТ на 2 из них документах -1500 и т.д. то есть есть якобы долги и в итоге после прямого запроса данные не верные получаются Печаль
Период 01.01.07-01.01.07

Запрос 1С:
Код
Выбрать все
Период с ВыбНачПериода по ВыбКонПериода;
Фирма      = Регистр.Покупатели.Фирма;
Контрагент = Регистр.Покупатели.Контрагент;
Договор    = Регистр.Покупатели.Договор;
Направление= Регистр.Покупатели.Договор.Направление;
Док        = Регистр.Покупатели.Док;
СчУ        = Регистр.Покупатели.Счет;
Сумма      = Регистр.Покупатели.Сумма;
СуммаВ     = Регистр.Покупатели.СуммаВ;
Разн       = Регистр.Покупатели.Разница;
Хвост      = Регистр.Покупатели.Хвост;
Функция СуммаВНачОст = НачОст(СуммаВ);
Функция СуммаНачОст  = НачОст(Сумма);
Функция ХвостНост    = НачОст(Хвост);
Функция РазнНост     = НачОст(Разн);
Функция СуммаВКонОст = КонОст(СуммаВ);
Функция СуммаКонОст  = КонОст(Сумма);
Функция ХвостКост    = КонОст(Хвост);
Функция РазнКост     = КонОст(Разн);  
Группировка Док;
Условие(Контрагент = ВыбКонтрагент);  Условие (СчУ в СписокСчетовДляОтбора);

Условие(Фирма в СписФирм);
 



Запрос 1С++
Код
Выбрать все
SELECT Остатки.Фирма [Фирма $Справочник.Фирмы]
	, Остатки.Контрагент [Контрагент $Справочник.Контрагенты]
	, Остатки.Договор [Договор $Справочник.Договора]
	, $дог.Направление [Направление $Справочник.Направления]
	, Остатки.Док [Док $Документ]
	, Остатки.Счет [Счет $Справочник.ПланСчетов]
	, Остатки.СуммаВНачальныйОстаток СуммаВНачОст
	, Остатки.СуммаНачальныйОстаток СуммаНачОст
	, Остатки.ХвостНачальныйОстаток ХвостНост
	, Остатки.РазницаНачальныйОстаток РазнНост
	, Остатки.СуммаВКонечныйОстаток СуммаВКонОст
	, Остатки.СуммаКонечныйОстаток СуммаКонОст
	, Остатки.ХвостКонечныйОстаток ХвостКост
	, Остатки.РазницаКонечныйОстаток РазнКост
FROM $РегистрОстаткиОбороты.Покупатели(:НачДата,:КонДата~,,,,
		(Контрагент = :Контр)
 and (Счет in (select val from #СписСчетов))
 and (Фирма in (select val from #spisFirm)),,) AS Остатки
inner join $Справочник.Договора as дог (nolock) on дог.id=Остатки.Договор

 



Группировка в прямом не помогает!  Нерешительный
в первом случае
СуммаВНачОст= по одному документ 1200+остальные 0
во втором случае
СуммаВНачОст = по одному документ 1200+(-1500)+(-300) и остальные доки 0
  

1с++     3.2.4.1
Formex  2.0.5.99b
Наверх
IP записан
 
pavlo
1c++ donor
1c++ power user
Отсутствует



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: Прямой запрос+запрос 1с всегда равны?
Ответ #1 - 22. Апреля 2009 :: 07:20
Печать  
прикол в том, что в регистре измерения такие:
Фирма
Контрагент
Договор
Счет
Док

Так вот если получить ВТ ОстаткиОбороты, то вернет по той сумме на 01.01.07 только один разрез где Договор есть,
а вот если сделать ВТ Остатки на 01.01.07 вернет что есть еще точно такой же разрез, только с пустым договором и суммой с обратным знаком и при сворачивании получится 0 что и нужно.
В итоге не понятно почему не правильно работает ВТ ОстаткиОбороты?
На счет не закрытия регистра сам знаю, не я писал, сейчас закрывается, но старые данные то есть, а ведомость по контрагентам криво в итоге показывает если переводить на прямые запросы. А вот ВТ итоги не хотелось бы делать 2 раза, чтобы получить на начало даты и на конец Печаль

Кто нить сталкивался?
  

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


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямой запрос+запрос 1с всегда равны?
Ответ #2 - 22. Апреля 2009 :: 08:14
Печать  
ВТ работает правильно. У тебя в запросе косяк.
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
pavlo
1c++ donor
1c++ power user
Отсутствует



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: Прямой запрос+запрос 1с всегда равны?
Ответ #3 - 22. Апреля 2009 :: 09:36
Печать  
так покажите где косяк? я вот делаю ВТ итогов с теми же условиями и получаю нормальные данные, а остаткиобороты уже не выдает нормально Печаль
причем ощущения что именно там где измерение "договор" пустое он откидывает Печаль
  

1с++     3.2.4.1
Formex  2.0.5.99b
Наверх
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Прямой запрос+запрос 1с всегда равны?
Ответ #4 - 22. Апреля 2009 :: 10:19
Печать  
pavlo писал(а) 22. Апреля 2009 :: 09:36:
так покажите где косяк? ... там где измерение "договор" пустое он откидывает Печаль

inner join $Справочник.Договора
  

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



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: Прямой запрос+запрос 1с всегда равны?
Ответ #5 - 22. Апреля 2009 :: 10:34
Печать  
trad писал(а) 22. Апреля 2009 :: 10:19:
pavlo писал(а) 22. Апреля 2009 :: 09:36:
так покажите где косяк? ... там где измерение "договор" пустое он откидывает Печаль

inner join $Справочник.Договора


объясните плизз а чем это она косячная? Печаль
  

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


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Прямой запрос+запрос 1с всегда равны?
Ответ #6 - 22. Апреля 2009 :: 10:41
Печать  
pavlo писал(а) 22. Апреля 2009 :: 10:34:
объясните плизз а чем это она косячная? Печаль

Пересечение множеств

Types of Joins
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Прямой запрос+запрос 1с всегда равны?
Ответ #7 - 22. Апреля 2009 :: 10:42
Печать  
тем что не соответствует первому запросу

внутрення (inner) связь как раз откинет пустые договора, а этого тебе видимо не надо и этого нет в первом запросе
  

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



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: Прямой запрос+запрос 1с всегда равны?
Ответ #8 - 22. Апреля 2009 :: 13:00
Печать  
berezdetsky писал(а) 22. Апреля 2009 :: 10:41:
pavlo писал(а) 22. Апреля 2009 :: 10:34:
объясните плизз а чем это она косячная? Печаль

Пересечение множеств

Types of Joins


Спасибо, почитаю! Подмигивание
  

1с++     3.2.4.1
Formex  2.0.5.99b
Наверх
IP записан
 
pavlo
1c++ donor
1c++ power user
Отсутствует



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: Прямой запрос+запрос 1с всегда равны?
Ответ #9 - 22. Апреля 2009 :: 13:01
Печать  
trad писал(а) 22. Апреля 2009 :: 10:42:
тем что не соответствует первому запросу

внутрення (inner) связь как раз откинет пустые договора, а этого тебе видимо не надо и этого нет в первом запросе


запутался, у меня же внешняя же
  

1с++     3.2.4.1
Formex  2.0.5.99b
Наверх
IP записан
 
lustin
1c++ power user
Отсутствует


1C *.*, ROR, Java - на
этом остановимся

Сообщений: 907
Местоположение: Москва
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Прямой запрос+запрос 1с всегда равны?
Ответ #10 - 22. Апреля 2009 :: 17:55
Печать  
pavlo писал(а) 22. Апреля 2009 :: 13:01:
trad писал(а) 22. Апреля 2009 :: 10:42:
тем что не соответствует первому запросу

внутрення (inner) связь как раз откинет пустые договора, а этого тебе видимо не надо и этого нет в первом запросе


запутался, у меня же внешняя же


а у тебя при записи по регистру может быть такая ситуация

Цитата:
...
WHERE
Остатки.Договор = $ПустойИД
...


???
  

бизнес-процесс как техническое задание прекрасно, только у бизнеса нет процессов; у бизнеса есть желание выжить
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Вадимко
God Member
*****
Отсутствует


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

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Прямой запрос+запрос 1с всегда равны?
Ответ #11 - 22. Апреля 2009 :: 21:39
Печать  
Используй другие ВТ, а лучше не используй ВТ
Попробуй, мне когда-то помогло  Подмигивание
  

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



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: Прямой запрос+запрос 1с всегда равны?
Ответ #12 - 23. Апреля 2009 :: 03:51
Печать  
lustin писал(а) 22. Апреля 2009 :: 17:55:
...
WHERE
Остатки.Договор = $ПустойИД
...
???


а зачем? мне нужны все строчки и там где пусто и там где нет, зачем мне только пустые?
  

1с++     3.2.4.1
Formex  2.0.5.99b
Наверх
IP записан
 
pavlo
1c++ donor
1c++ power user
Отсутствует



Сообщений: 712
Местоположение: г. Новосибирск
Зарегистрирован: 10. Ноября 2006
Пол: Мужской
Re: Прямой запрос+запрос 1с всегда равны?
Ответ #13 - 23. Апреля 2009 :: 03:53
Печать  
Вадимко писал(а) 22. Апреля 2009 :: 21:39:
Используй другие ВТ, а лучше не используй ВТ
Попробуй, мне когда-то помогло  Подмигивание

по поводу ВТ делаю выводы уже Улыбка
просто хотелось красиво, по идее вообще ВТ ОстаткиОбороты должна почти сразу решить вывод данных для отчета, а тут подводные камни Улыбка

Да и в ВТ ОстаткиОбороты все равно (ранее поднимался вопрос) нельзя сделать отброс строк из оборотов не удовлетворяющим условию по ТипДвижения (реквизит регистра) Печаль
  

1с++     3.2.4.1
Formex  2.0.5.99b
Наверх
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Прямой запрос+запрос 1с всегда равны?
Ответ #14 - 23. Апреля 2009 :: 04:03
Печать  
мля, какие подводые камни?... Злой
inner на left поменяй уже
  

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