Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Помогите люди добрые сделать прямой запрос (число прочтений - 2502 )
alex_k82
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 1
Зарегистрирован: 23. Апреля 2007
Помогите люди добрые сделать прямой запрос
23. Апреля 2007 :: 06:44
Печать  
Помогите у меня в отчете есть такой вот запрос

"//{{ЗАПРОС(Сформировать)
|Период с Дата1 по Дата2;
|Фирма = Регистр.СтоимостьГП.Фирма;
|СчетУчета = Регистр.СтоимостьГП.Продукция.Вид.Счет;
|Номенклатура=Регистр.СтоимостьГП.Продукция;
|Документ_=Регистр.СтоимостьГП.ТекущийДокумент;
|Кол = Регистр.СтоимостьГП.Количество;
|Сум = Регистр.СтоимостьГП.Сумма;
|Функция КолНачОст = НачОст(Кол);
|Функция КолКонОст = КонОст(Кол);
|Функция КолПриход = Приход(Кол) Когда ((Документ_.Вид() <> ""ПеремещениеТиС"")и(Документ_.Вид() <> ""Перемещение"")и(Документ_.Вид() <> ""ВнутреннееПеремещение""));
|Функция КолРасход = Расход(Кол) Когда ((Документ_.Вид() <> ""ПеремещениеТиС"")и(Документ_.Вид() <> ""Перемещение"")и(Документ_.Вид() <> ""ВнутреннееПеремещение""));
|Функция СумНачОст = НачОст(Сум);
|Функция СумКонОст = КонОст(Сум);
|Функция СумПриход = Приход(Сум)Когда ((Документ_.Вид() <> ""ПеремещениеТиС"")и(Документ_.Вид() <> ""Перемещение"")и(Документ_.Вид() <> ""ВнутреннееПеремещение""));
|Функция СумРасход = Расход(Сум)Когда ((Документ_.Вид() <> ""ПеремещениеТиС"")и(Документ_.Вид() <> ""Перемещение"")и(Документ_.Вид() <> ""ВнутреннееПеремещение""));
|Условие(СчетУчета в ВыбСчет);
|Условие(Номенклатура в ВыбНоменклатура);
|Условие(Фирма=ВыбФирма);
|Группировка СчетУчета без групп;
|Группировка Номенклатура;
|Группировка Номенклатура без групп;
|Группировка Документ;
|"//}}ЗАПРОС

,но он так медленно работает(более 30 мин).

Можно же его переделать в прямой запрос MSSQL(с использлванием 1C++), но как я пока не разобрался, помогите, пожулуйста ,а то все сроки горят и меня повесят если я его не сделаю
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Помогите люди добрые сделать прямой запрос
Ответ #1 - 23. Апреля 2007 :: 07:05
Печать  
alex_k82 писал(а) 23. Апреля 2007 :: 06:44:
|Группировка Номенклатура;
|Группировка Номенклатура без групп;

Вот это сильно и плохо Печаль
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Shtam
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 60
Зарегистрирован: 14. Ноября 2006
Re: Помогите люди добрые сделать прямой запрос
Ответ #2 - 24. Апреля 2007 :: 07:28
Печать  
     |SELECT
     |      Рег1.Партия as [РасходнаяНакладная $Документ],
     |      ВсегоСумма=0,
     |      Рег1.СуммаПриход as Наценка
     |FROM
     |      $РегистрОстаткиОбороты.Поступление(:НачДата,:КонДата~,,,,,Партия,Сумма) as Рег1
     |INNER JOIN
     |      _1SJourn as Жур ON      Жур.IDDoc=RIGHT(Рег1.Партия,9)          
     |WHERE
     |      (LEFT(Рег1.Партия,4)=$ВидДокумента36.ВозвратТовара OR LEFT(Рег1.Партия,4)=$ВидДокумента36.OLE_ВозвратТовара) AND Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ AND Жур.Closed & 1 = 1

что-то типа того, только функций своих напиши
  
Наверх
 
IP записан
 
Вадимко
God Member
*****
Отсутствует


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

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Помогите люди добрые сделать прямой запрос
Ответ #3 - 24. Апреля 2007 :: 16:32
Печать  
Его и штатно можно ускорить в разы
Есть ли в регистре реквизит КодОперации или еще что-то? Используй его для функций
Ну и над группировками надо много думать Улыбка

Штам, там столько соединений придется лепить... посмотри:
Регистр.СтоимостьГП.Продукция.Вид.Счет %)
  

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


I Love YaBB 2!

Сообщений: 60
Зарегистрирован: 14. Ноября 2006
Re: Помогите люди добрые сделать прямой запрос
Ответ #4 - 26. Апреля 2007 :: 08:06
Печать  
обязательно придется Улыбка, в стандартных запросах больше всего тормозит "когда" имхо
  
Наверх
 
IP записан
 
Rem Ryahirev
YaBB Newbies
*
Отсутствует



Сообщений: 8
Местоположение: Барнаул
Зарегистрирован: 22. Марта 2007
Пол: Мужской
Re: Помогите люди добрые сделать прямой запрос
Ответ #5 - 11. Мая 2007 :: 21:41
Печать  
Ну я не знаю на счёт "когда", но вот "Группировка Номенклатура;" - реальный гемор...
Понимешь, что если "без групп", то всё просто, а  вот с группами, и как сосредоточить иерархию в запросе - это уже гемморой... просто универсального механизма получения иерархии справочников прямыми запросами, насколько я знаю, еще не объявелнно... только ToySQL Улыбка
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать