Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Горячая тема (более 10 ответов) Запрос к документу (число прочтений - 2672 )
Sasha_UU
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 41
Зарегистрирован: 31. Августа 2009
Запрос к документу
05. Мая 2011 :: 05:24
Печать  
Делаю запрос к документу ТребованиеНакладная в таличной части документа поле материал имеет тип значения "Справочник",  в запросе улаживаю список значений в котором хранится материалы, но результат нулевой. Подскажите как победить
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Запрос к документу
Ответ #1 - 05. Мая 2011 :: 05:28
Печать  
where $Док.Материал in (select $ВидСправочника.Материалы+val from :СписокМатериалов)
  
Наверх
 
IP записан
 
Sasha_UU
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 41
Зарегистрирован: 31. Августа 2009
Re: Запрос к документу
Ответ #2 - 05. Мая 2011 :: 05:37
Печать  
$ВидСправочника.Материалы+val from пишу так выдает ошибку на синтаксис. Может не ставится знак "+"?
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Запрос к документу
Ответ #3 - 05. Мая 2011 :: 05:53
Печать  
Ты не указал формат своей базы(дбф/sql) и через что запрос свой делаешь (ODBCRecordSet, оледб, 1sqlite, через класс прямой запрос и т.д)
  
Наверх
 
IP записан
 
Sasha_UU
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 41
Зарегистрирован: 31. Августа 2009
Re: Запрос к документу
Ответ #4 - 05. Мая 2011 :: 05:57
Печать  
база дбф, запрос пишу через OLEDBData
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Запрос к документу
Ответ #5 - 05. Мая 2011 :: 06:01
Печать  
тогда так:

where $Док.Материал in (select $ВидСправочника36.Материалы+val from :СписокМатериалов)


ну и список так передавать:
Код
Выбрать все
Список="";
Запрос.УложитьСписокОбъектов(СписокМатериалов, Список,"Материалы");
Запрос.УстановитьТекстовыйПараметр("СписокМатериалов",Список); 



где СписокМатериалов - твой список значений с элементами/группами справочника Материалы
  
Наверх
 
IP записан
 
Sasha_UU
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 41
Зарегистрирован: 31. Августа 2009
Re: Запрос к документу
Ответ #6 - 05. Мая 2011 :: 06:13
Печать  
Запрос:
     ТекстЗапроса="SELECT  
     |   жур.date                                                 AS ДатаДокумента
     |  ,жур.DocNo                                                 AS НомерДокумента
     |  ,жур.iddoc                                                 AS iddoc      
     |  ,мХранения.DESCR                               AS МестаХранения
     |  ,мМатериал.DESCR                                     AS Материалы
     |
     |FROM                                    
     |   C:\копия\1Sjourn  as жур      
     |      left join C:\копия\dh13147 Док on Док.iddoc                     = Жур.iddoc
   |   left join C:\копия\dt13147 ДокСтроки on ДокСтроки.iddoc  = Док.iddoc
     |   left join C:\копия\sc135 мХранения on мХранения.id         = Док.sp13137      
     |   left join C:\копия\sc11307 мМатериал on $ВидСправочника36.Материалы+"   "+мМатериал.id         = ДокСтроки.sp13142
     |      
     |WHERE
     | Жур.Closed = 5 and
     | Жур.IDDOCDEF=$ВидДокумента.ТребованиеНакладная            
     |      
     |";
     
     Если Конт.МестоХранения.Выбран()=1 Тогда                                                      
           ТекстЗапроса=ТекстЗапроса+" and мХранения.code='"+Конт.МестоХранения.Код+"'";            
     КонецЕсли;
     
     Если СписокПараметров.РазмерСписка()>0 Тогда
           
           
           ТекстЗапроса=ТекстЗапроса+" and мМатериал.id  in  (select $ВидСправочника36.Материалы+"   "+val from :СписокМатериалов)";
           Список="";
           гЗапрос.УложитьСписокОбъектов(СписокПараметров, Список,"Материалы");
           гЗапрос.УстановитьТекстовыйПараметр("СписокМатериалов",Список);
     КонецЕсли;


Возвращает пустую тублицу, хотя в базе движения есть

Необходимо получить список документов "ТребованияНакладная" у которых стоит опредленный склад и определенные товары.
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Запрос к документу
Ответ #7 - 05. Мая 2011 :: 06:19
Печать  
Ну и зачем ты пробел вставляешь ?
И с чего такая уверенность что поле closed = 5 ?
ну и дальше бред на условие по элементам справочника.

+ нафига в коде писать dh12321 и т.д, когда для этого есть метапарсер ?
  
Наверх
 
IP записан
 
Sasha_UU
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 41
Зарегистрирован: 31. Августа 2009
Re: Запрос к документу
Ответ #8 - 05. Мая 2011 :: 06:29
Печать  
пишу dh потому что делаю запрос к разным базам бухгалтерии, собираю с баз документы в которых была определенная номенклатура. Пробел убрал но результат запроса пустой.
Как сделать проще?
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Запрос к документу
Ответ #9 - 05. Мая 2011 :: 06:36
Печать  
Sasha_UU писал(а) 05. Мая 2011 :: 06:29:
пишу dh потому что делаю запрос к разным базам бухгалтерии, собираю с баз документы в которых была определенная номенклатура. Пробел убрал но результат запроса пустой.
Как сделать проще?


весь код в топку..
На вот, примерчик.
Что не понятно - спрашивай.

  

________001.ert ( 105 KB | Загрузки )
Наверх
 
IP записан
 
Sasha_UU
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 41
Зарегистрирован: 31. Августа 2009
Re: Запрос к документу
Ответ #10 - 05. Мая 2011 :: 06:47
Печать  
Eprst писал(а) 05. Мая 2011 :: 06:36:
Sasha_UU писал(а) 05. Мая 2011 :: 06:29:
пишу dh потому что делаю запрос к разным базам бухгалтерии, собираю с баз документы в которых была определенная номенклатура. Пробел убрал но результат запроса пустой.
Как сделать проще?


весь код в топку..
На вот, примерчик.
Что не понятно - спрашивай.



напишите пример как быть с реквизитом табличной част документа который имеет тип значения "Справочник"
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Запрос к документу
Ответ #11 - 05. Мая 2011 :: 07:09
Печать  
Дык в #5 посту.

+ если у тебя запрос к сторонней базе, то что ты в свой список добавляешь ? Материалы ЭТОЙ базы ?
А к сторонней они какое отношение имеют ?
Как синхронизируются с объектами в сторонней базе ?
ЗЫ: в примере - справочник Клиентосов синхронизируется по коду.
  
Наверх
 
IP записан
 
Sasha_UU
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 41
Зарегистрирован: 31. Августа 2009
Re: Запрос к документу
Ответ #12 - 05. Мая 2011 :: 07:29
Печать  
как быть с реквизтом неопределенного типа?
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Запрос к документу
Ответ #13 - 05. Мая 2011 :: 07:51
Печать  
Sasha_UU писал(а) 05. Мая 2011 :: 07:29:
как быть с реквизтом неопределенного типа?


привести его к самой длинной строке вестимо.
http://www.script-coding.com/v77tables.html#1.1.1.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать