Переключение на Главную Страницу Страницы: 1 [2] 3  ОтправитьПечать
Очень популярная тема (более 25 ответов) Запрос к другой базе ДБФ возвращает элемент текущей базы. (число прочтений - 7077 )
SinChao
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 24
Зарегистрирован: 18. Июня 2010
Re: Запрос к другой базе ДБФ возвращает элемент текущей базы.
Ответ #15 - 18. Июня 2010 :: 11:38
Печать  
Eprst писал(а) 18. Июня 2010 :: 11:32:
весьма забавный текст запроса, функции то где ? + условие на период + присоедиение таблички движений (ежели остатки не на ТА нужны)

ЗЫ: возьми готовый пример по ссылке - его и переделай, там и метапарсер работает и в 1 запросе можно к разным ИБ подключаться.


Бантики потом накрутим. Я разобраться хочу).
Ведь пример правильный... почему тогда не работает?
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Запрос к другой базе ДБФ возвращает элемент текущей базы.
Ответ #16 - 18. Июня 2010 :: 11:46
Печать  
SinChao писал(а) 18. Июня 2010 :: 11:36:
JohnyDeath писал(а) 18. Июня 2010 :: 11:20:
У тебя поле называется МПЗ, а не РегМПЗ


Кстати запрос срабатывает, но отбора нет. т.е. выводить все остатки.


Еще бы.. выводит твой запрос радугу, а не остатки
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Запрос к другой базе ДБФ возвращает элемент текущей базы.
Ответ #17 - 18. Июня 2010 :: 11:48
Печать  
А по -поводу фильтра - так его у тебя нет, нужно не левое соедиенение делать, а INNER Join
  
Наверх
 
IP записан
 
SinChao
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 24
Зарегистрирован: 18. Июня 2010
Re: Запрос к другой базе ДБФ возвращает элемент текущей базы.
Ответ #18 - 18. Июня 2010 :: 11:48
Печать  
Колеги, лучше скажите что не правильно хотябы в этом простом примере - получить итоги по списку МПЗ
  
Наверх
 
IP записан
 
SinChao
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 24
Зарегистрирован: 18. Июня 2010
Re: Запрос к другой базе ДБФ возвращает элемент текущей базы.
Ответ #19 - 18. Июня 2010 :: 11:52
Печать  
[quote author=Eprst link=1276850133/15#17 date=1276861727]А по -поводу фильтра - так его у тебя нет, нужно не левое соедиенение делать, а INNER Join[/quote]

С INNER Join результат вообще пустой.

По правилам соединения таблиц в результат запроса попадают записи удовлетворяющие условию.

Для левого + те которые неудовлетворительны в таб 2


  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Запрос к другой базе ДБФ возвращает элемент текущей базы.
Ответ #20 - 18. Июня 2010 :: 12:05
Печать  
1. нет функции Sum + Group by
2. нет условие на period
3. нет соединения с табличкой движений регистра, если останки нужны не на ТА
4. inner join - нужно пересечение, т.е только те итоги, для которых ты устанавливаешь отбор по МПЗ, а не все + присоеденить еще что-то..

Если выборка пустая, для начала каждый запрос по-отдельности проверять, лучше в 1sqa каком-нить.
  
Наверх
 
IP записан
 
SinChao
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 24
Зарегистрирован: 18. Июня 2010
Re: Запрос к другой базе ДБФ возвращает элемент текущей базы.
Ответ #21 - 18. Июня 2010 :: 12:24
Печать  
Eprst писал(а) 18. Июня 2010 :: 12:05:
1. нет функции Sum + Group by


Группировать не нужно, т.к. в списке МПЗ нет повторяющихся элементов.

Eprst писал(а) 18. Июня 2010 :: 12:05:
2. нет условие на period


Что имеется в виду. Есть строка :
           |             WHERE
           |                  (period = :ДатаПериодаОстатков~~)

Eprst писал(а) 18. Июня 2010 :: 12:05:
3. нет соединения с табличкой движений регистра, если останки нужны не на ТА


Пока это не нужно. Получить хотябы рассчитанные остатки.

Eprst писал(а) 18. Июня 2010 :: 12:05:
4. inner join - нужно пересечение, т.е только те итоги, для которых ты устанавливаешь отбор по МПЗ, а не все + присоеденить еще что-то..


Повторюсь - С INNER JOIN результат запроса вообще пустой

Eprst писал(а) 18. Июня 2010 :: 12:05:
Если выборка пустая, для начала каждый запрос по-отдельности проверять, лучше в 1sqa каком-нить.


По отдельности запросы работают.

Ребята я все понимаю. Есть рабочие примеры и т.п., но есть конкретный текст (Даже с поменяными местами таблицами):

           ТекстЗапроса = "
           |SELECT
           |      Спр.ID AS Мат,        
           |      Спр.Descr as Наим,        
           |      Ррег.КолвоОст AS Колво
           |FROM
           |      $Справочник.Материалы as Спр
           |
           |LEFT JOIN
           //| INNER JOIN
         |            (SELECT            
           |                  $Рег.Мпз AS РегМПЗ,
           |              $Рег.МестоХранения AS Склад,
           |              $Рег.Количество AS КолвоОст
           |             FROM
           |                  $РегистрИтоги.МестаХранения as Рег
           |             WHERE
           |                  (period = :ДатаПериодаОстатков~~)) AS Ррег
           |        ON Спр.ID = Ррег.РегМПЗ
           |WHERE
           |      Спр.Code IN " + УсловиеМат + "";



В данном примере в результате остатки по всем поз-ям - 0.

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



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Запрос к другой базе ДБФ возвращает элемент текущей базы.
Ответ #22 - 18. Июня 2010 :: 12:38
Печать  
А в этом регистре  измерение Мпз случаем не справочник неопределенного вида?
  
Наверх
 
IP записан
 
SinChao
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 24
Зарегистрирован: 18. Июня 2010
Re: Запрос к другой базе ДБФ возвращает элемент текущей базы.
Ответ #23 - 18. Июня 2010 :: 12:47
Печать  
Точно, и в регистре есть измерение ВидМПЗ.
Но я непредстваляю как в запросе к внешеней БД описать условие на вид справочника.
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Запрос к другой базе ДБФ возвращает элемент текущей базы.
Ответ #24 - 18. Июня 2010 :: 12:50
Печать  
>>в списке МПЗ нет повторяющихся элементов.

ага, а в регистре - есть.

>>Что имеется в виду. Есть строка :

в первоначальном варианте её не было

>>Повторюсь - С INNER JOIN результат запроса вообще пустой

значит нет итогов по выбранным МПЗ за указанный период

Или типы не совпадают.. МПЗ в регистре - другово типа, например
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Запрос к другой базе ДБФ возвращает элемент текущей базы.
Ответ #25 - 18. Июня 2010 :: 12:54
Печать  
SinChao писал(а) 18. Июня 2010 :: 12:47:
Точно, и в регистре есть измерение ВидМПЗ.
Но я непредстваляю как в запросе к внешеней БД описать условие на вид справочника.


Измерение МПЗ тип <Справочник> ?

тогда во вложенном селекте
$ВидСправочника36.Материалы + Спр.ID  as Мат --ну или какого там у тебя вида?
  
Наверх
 
IP записан
 
SinChao
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 24
Зарегистрирован: 18. Июня 2010
Re: Запрос к другой базе ДБФ возвращает элемент текущей базы.
Ответ #26 - 18. Июня 2010 :: 12:55
Печать  
Eprst писал(а) 18. Июня 2010 :: 12:50:
>>в списке МПЗ нет повторяющихся элементов.

ага, а в регистре - есть.

>>Что имеется в виду. Есть строка :

в первоначальном варианте её не было

>>Повторюсь - С INNER JOIN результат запроса вообще пустой

значит нет итогов по выбранным МПЗ за указанный период

Или типы не совпадают.. МПЗ в регистре - другово типа, например


Обрати внимание на таблицу:

   |             FROM
          |                  $РегистрИтоги.

Итог у позиции на границу расчета ОДИН.
Типы данных совпадают и остатки есть. я проверял.
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Запрос к другой базе ДБФ возвращает элемент текущей базы.
Ответ #27 - 18. Июня 2010 :: 13:07
Печать  
Ну приехали..
У тебя в регистре 1 измерение что ли ?
Улыбка))

в табличке итогов хранятся записи по наборам измерений..
т.е у тебя будет тип того:

Фирма1 Вотка1 Склад1  100 01.01.2001
Фирма3 Вотка1 Склад2  200 01.01.2001
Фирма2 Вотка1 Склад3  300 01.01.2001

дык по Вотка1 итог будет 600 если что..
  
Наверх
 
IP записан
 
SinChao
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 24
Зарегистрирован: 18. Июня 2010
Re: Запрос к другой базе ДБФ возвращает элемент текущей базы.
Ответ #28 - 18. Июня 2010 :: 13:11
Печать  
Eprst писал(а) 18. Июня 2010 :: 12:54:
SinChao писал(а) 18. Июня 2010 :: 12:47:
Точно, и в регистре есть измерение ВидМПЗ.
Но я непредстваляю как в запросе к внешеней БД описать условие на вид справочника.


Измерение МПЗ тип <Справочник> ?

тогда во вложенном селекте
$ВидСправочника36.Материалы + Спр.ID  as Мат --ну или какого там у тебя вида?


Добавил, но не помогло...(
Остатки - 0;
У меня вот какое соображение:
В этой ссылке:
http://www.1cpp.ru/forum/YaBB.pl?num=1182497837/19#19
Примером выше - получается что во внутреннем источнике данных мы припаеваем путь ко внешней БД. т.е. получается вот так:

WHERE
D:\Базы_1С8\Копия ПОДК для теста запросов\$РегистрИтоги.МестаХранения as Рег

Но вываливается ошибка.
  
Наверх
 
IP записан
 
SinChao
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 24
Зарегистрирован: 18. Июня 2010
Re: Запрос к другой базе ДБФ возвращает элемент текущей базы.
Ответ #29 - 18. Июня 2010 :: 13:18
Печать  
[quote author=Eprst link=1276850133/15#27 date=1276866456]Ну приехали..
У тебя в регистре 1 измерение что ли ?
:)))

в табличке итогов хранятся записи по наборам измерений..
т.е у тебя будет тип того:

Фирма1 Вотка1 Склад1  100 01.01.2001
Фирма3 Вотка1 Склад2  200 01.01.2001
Фирма2 Вотка1 Склад3  300 01.01.2001

дык по Вотка1 итог будет 600 если что..
[/quote]

Да пока это не важно... Хоть что нибудь получить)))
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 [2] 3 
ОтправитьПечать