Переключение на Главную Страницу Страницы: 1 [2]  ОтправитьПечать
Очень популярная тема (более 25 ответов) Помогите разобраться! (число прочтений - 6419 )
Glafira
Junior Member
**
Отсутствует


I Love 1С!

Сообщений: 45
Зарегистрирован: 29. Июня 2007
Пол: Женский
Re: Помогите разобраться!
Ответ #15 - 03. Июля 2007 :: 11:28
Печать  
yudin писал(а) 03. Июля 2007 :: 09:50:
2) Как это не отрабатывает? не равно, значит не равно. Напиши что ты хочешь получить, а то как то по запросу не очень ясно, тем более если запрос неправильный..


Хочу получить количество документов "Расходная" за период в разрезе реквизита шапки документа "МенеджерФирмы", у которых реквизит шапки "ПолныйВозврат" <> Перечисление.Булево.Да и "КоличествоПлан" <> "Количество", где "КоличествоПлан" и "Количество" реквизиты табличной части того же документа. Причем должны учитываться только те строки табличной части где у "товара" (справочник "товары"), реквизит "ВидТовара" = Перечисление.ВидыТоваров.Товар. А на документы еще накладывается фильтр по общему реквизиту документов "Фирма".

Вот примерно что я хочу получить. Если более просто: хочу получить количество накладных по списку фирм по которым были частичные возвраты (неотгрузы).
  

Ваша Глаша
Наверх
 
IP записан
 
Glafira
Junior Member
**
Отсутствует


I Love 1С!

Сообщений: 45
Зарегистрирован: 29. Июня 2007
Пол: Женский
Re: Помогите разобраться!
Ответ #16 - 03. Июля 2007 :: 12:30
Печать  
yudin писал(а) 03. Июля 2007 :: 09:50:
... тем более если запрос неправильный..


Вообщем с этим запросом разобралась все в запросе правильно, была проблема в последующей обработки данных...

Но остался открытым вопрос про GROUP BY для периодических реквизитов... Кто-нить такое делал? Получалось? Дайте пример?
  

Ваша Глаша
Наверх
 
IP записан
 
DmitrO
1c++ power user
Отсутствует


ex developer

Сообщений: 579
Местоположение: г. Киров
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Помогите разобраться!
Ответ #17 - 03. Июля 2007 :: 13:07
Печать  
см. в документации метаимя ПоследнееЗначение
  
Наверх
ICQ  
IP записан
 
Glafira
Junior Member
**
Отсутствует


I Love 1С!

Сообщений: 45
Зарегистрирован: 29. Июня 2007
Пол: Женский
Re: Помогите разобраться!
Ответ #18 - 03. Июля 2007 :: 13:16
Печать  
Пробовала - пусто результат (
  

Ваша Глаша
Наверх
 
IP записан
 
yudin
Full Member
***
Отсутствует


Краткость - с.т.

Сообщений: 131
Местоположение: Ростов - на - Дону
Зарегистрирован: 25. Мая 2006
Пол: Мужской
Re: Помогите разобраться!
Ответ #19 - 03. Июля 2007 :: 13:23
Печать  
Glafira писал(а) 03. Июля 2007 :: 12:30:
yudin писал(а) 03. Июля 2007 :: 09:50:
... тем более если запрос неправильный..


Вообщем с этим запросом разобралась все в запросе правильно, была проблема в последующей обработки данных...

Но остался открытым вопрос про GROUP BY для периодических реквизитов... Кто-нить такое делал? Получалось? Дайте пример?


Select x,y,z,$последнееЗначение(...) as vvv from...
......
group by vvv

  

С уваженьем, дата, подпись
Наверх
wwwICQ  
IP записан
 
Glafira
Junior Member
**
Отсутствует


I Love 1С!

Сообщений: 45
Зарегистрирован: 29. Июня 2007
Пол: Женский
Re: Помогите разобраться!
Ответ #20 - 03. Июля 2007 :: 14:18
Печать  
ТекстЗапроса = "
     |SELECT
     |      $ПоследнееЗначение.Сотрудники.Команда(Сотрудники.ID, :КонДата) as Команда,
     |      Count(DISTINCT Журнал.IDDOC) КоличествоРазличныхДокумент
     |FROM
     |      $Документ.Расходная AS Расходная
     |INNER JOIN
     |      $Справочник.Сотрудники AS Сотрудники ON $Расходная.МенеджерФирмы = Сотрудники.ID
     |INNER JOIN
     |      _1SJOURN AS Журнал ON Журнал.IDDOC = Расходная.IDDOC
     |INNER JOIN
     |      $ДокументСтроки.Расходная AS РасходнаяСтроки ON РасходнаяСтроки.IDDOC = Расходная.IDDOC
     |INNER JOIN
     |      $Справочник.Товары AS Товары ON $РасходнаяСтроки.Товар = Товары.ID
     |WHERE
     |      ($Расходная.ПолныйВозврат = :ВыбДа) AND
     |      ((Журнал.CLOSED & 1) = 1) AND
     |      ($Товары.ВидТовара = :ВыбВид) AND
     |      (Журнал.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~)
     |GROUP BY
     |      Команда"
     ;

Что-то типа этого?
Но в данном случае у меня ошибочка: State 42S22, native 207, message [Microsoft][ODBC SQL Server Driver][SQL Server]Invalid column name 'Команда'.

Причем выполняя следующий запрос:
ТекстЗапроса = "
     |SELECT
     |      Сотрудники.ID [Менеджер $Справочник.Сотрудники],
     |      $ПоследнееЗначение.Сотрудники.Команда(Сотрудники.ID, :КонДата) [Команда $Справочник.Сотрудники],
     |      Count(DISTINCT Журнал.IDDOC) КоличествоРазличныхДокумент
     |FROM
     |      $Документ.Расходная AS Расходная
     |INNER JOIN
     |      $Справочник.Сотрудники AS Сотрудники ON $Расходная.МенеджерФирмы = Сотрудники.ID
     |INNER JOIN
     |      _1SJOURN AS Журнал ON Журнал.IDDOC = Расходная.IDDOC
     |INNER JOIN
     |      $ДокументСтроки.Расходная AS РасходнаяСтроки ON РасходнаяСтроки.IDDOC = Расходная.IDDOC
     |INNER JOIN
     |      $Справочник.Товары AS Товары ON $РасходнаяСтроки.Товар = Товары.ID
     |WHERE
     |      ($Расходная.ПолныйВозврат = :ВыбДа) AND
     |      ((Журнал.CLOSED & 1) = 1) AND
     |      ($Товары.ВидТовара = :ВыбВид) AND
     |      (Журнал.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~)
     |GROUP BY
     |      Сотрудники.ID"
     ;

Я нормально получаю команду....
  

Ваша Глаша
Наверх
 
IP записан
 
val
Full Member
***
Отсутствует


Дорогу осиливает идущий

Сообщений: 137
Зарегистрирован: 07. Июля 2006
Re: Помогите разобраться!
Ответ #21 - 03. Июля 2007 :: 14:30
Печать  
(0) Наступал на те же грабли.
Сделай вышестоящий запрос к своему запросу и группируй уже в вышестоящем.
  
Наверх
 
IP записан
 
Glafira
Junior Member
**
Отсутствует


I Love 1С!

Сообщений: 45
Зарегистрирован: 29. Июня 2007
Пол: Женский
Re: Помогите разобраться!
Ответ #22 - 03. Июля 2007 :: 14:32
Печать  
А я думала эта штука работает  Круглые глаза
  

Ваша Глаша
Наверх
 
IP записан
 
val
Full Member
***
Отсутствует


Дорогу осиливает идущий

Сообщений: 137
Зарегистрирован: 07. Июля 2006
Re: Помогите разобраться!
Ответ #23 - 03. Июля 2007 :: 14:34
Печать  
(22) "Шо там думать, трусить надо" (с)  Подмигивание
  
Наверх
 
IP записан
 
Glafira
Junior Member
**
Отсутствует


I Love 1С!

Сообщений: 45
Зарегистрирован: 29. Июня 2007
Пол: Женский
Re: Помогите разобраться!
Ответ #24 - 03. Июля 2007 :: 15:12
Печать  
Тогда последний вопрос на сегодня: в параметризированные запросы в качестве параметра можно передавать списки, если да то как?
  

Ваша Глаша
Наверх
 
IP записан
 
Glafira
Junior Member
**
Отсутствует


I Love 1С!

Сообщений: 45
Зарегистрирован: 29. Июня 2007
Пол: Женский
Re: Помогите разобраться!
Ответ #25 - 03. Июля 2007 :: 16:22
Печать  
Вот написала:

     ТекстЗапроса = "
     |DECLARE @КомандаФильтр char(9)
     |SET @КомандаФильтр = ?
     |SELECT
     |      Count(DISTINCT Журнал.IDDOC) КоличествоРазличныхДокумент
     |FROM
     |      $Документ.Расходная AS Расходная
     |INNER JOIN
     |      $Справочник.Сотрудники AS Сотрудники ON $Расходная.МенеджерФирмы = Сотрудники.ID
     |INNER JOIN
     |      _1SJOURN AS Журнал ON Журнал.IDDOC = Расходная.IDDOC
     |INNER JOIN
     |      $ДокументСтроки.Расходная AS РасходнаяСтроки ON РасходнаяСтроки.IDDOC = Расходная.IDDOC
     |INNER JOIN
     |      $Справочник.Товары AS Товары ON $РасходнаяСтроки.Товар = Товары.ID
     |WHERE
     |      ($Расходная.ПолныйВозврат = :ВыбДа) AND
     |      ((Журнал.CLOSED & 1) = 1) AND
     |      ($Товары.ВидТовара = :ВыбВид) AND
     |      ($ПоследнееЗначение.Сотрудники.Команда(Сотрудники.ID, :КонДата) = @КомандаФильтр) AND
     |      (Журнал.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~)"
     ;
     
     RS = СоздатьОбъект("ODBCRecordset");
     RS.УстБД1С();
     
     RS.УстановитьТекстовыйПараметр("НачДата", _ВыбНачПериода);
     RS.УстановитьТекстовыйПараметр("КонДата", _ВыбКонПериода);
     RS.УстановитьТекстовыйПараметр("ВыбВид",  Перечисление.ВидыТоваров.Товар);
     RS.УстановитьТекстовыйПараметр("ВыбДа",   Перечисление.Булево.Да);
     RS.УстановитьТекстовыйПараметр("ВыбКоманда",   КомандаНаХ);
     
     RS.Подготовить(ТекстЗапроса);
       RS.ДобПараметр(1,14,9,0);
     Сообщить("Параметров: " + RS.КолвоПараметров());
        
     RS.УстПараметр(1, КомандаНаХ);
     Сообщить("" + RS.Выполнить());

     RS.УстПараметр(1, КомандаНаХ1);
     Сообщить("" + RS.Выполнить());

     RS.УстПараметр(1, КомандаНаХ2);
     Сообщить("" + RS.Выполнить());      
     
     RS.УстПараметр(1, КомандаНаХ3);
     Сообщить("" + RS.Выполнить());

При выполнении получаю ошибку (изображение в прикрепленном файле). Помогите!
  

123_002.JPG ( 40 KB | Загрузки )
123_002.JPG

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