Прямые запросы. Как получить остатки из другой базы #522300


#0 by fadeik86
Всем привет. Есть ситуация есть две Скл базы необходимо получать остатки товаров из этих двух баз и потом сливать их в обну ДБФ-ку необходимо для сдачи отчетности. Практически все получилось, но когда получаю остатки через виртуальные таблицы. Получаю такую г... State 42S02, native 208, message [Microsoft][ODBC SQL Server Driver][SQL Server]Недопустимое имя объекта "#T247A50EED8F14344800F1F3BD1498090".
#1 by SnarkHunter
Получай не через виртуальные...
#2 by fadeik86
Т.е. если непонятно, делаю следующее. По отдельности подключаюсь в каждой скл базе и получаю из неё данные. на этапе получения остватков хрень такая. Еще запрос сократил. Когда убираешь из вирт. таблицы Месяц - все работает.
#3 by fadeik86
(+1) подскажи как это сделать. Необходимо знать НачОстаток, Приход,Расход, конечныйОстаток - это поддерживет тоьлко вирт. таблица.
#4 by YHVVH
там проблема еще с именами таблиц, $ нельзя использовать
#5 by YHVVH
ТекстЗапроса = "select спрН.CODE,Остатки.Остаток from sc33 as спрН left join (SELECT Рег.sp101 as Товар, sum(round(Рег.sp102,0)) AS остаток FROM rg99 as Рег WHERE Рег.Period = :ДатаВыб~~ AND Рег.sp100 = '     1   ' GROUP BY Рег.sp101) Остатки on Остатки.Товар=спрН.ID
#6 by Mikeware
Если базы одинаковые, то строишь запрос в текущей, получаешь текст распарсеный, присоединяешься к удаленной и выполняешь...
#7 by Skom
майк. ты не прав Рег.Товар IN (SELECT Val FROM #ГруппаТоваров) вот в этом заключается проблема.
#8 by Mikeware
проблема использовать ## ?
#9 by picom
(all) По русски не пишутся чтоли такие запросы?
#10 by Skom
дело в том что ИД товаров могут различаться в базе даже если он распарсит во первых у тебя ругается запрос на Недопустимое имя объекта "#T247A50EED8F14344800F1F3BD1498090". потому что метод УложитьСписок создает временную таблицу которую ты не можешь в другой базе использовать. и даже если ты сделаешь глобальную временную таблицу. ты все равно не сможешь получить верных данных так как : база1 код:0001 наименование:ТОВАР1 база2 код:0001 наименование:ТОВАР1 и все. для скуля это уже разные элементы
#11 by Mikeware
1986?
#12 by Skom
можно конечно и глобальные таблицы временные задействовать но ты уверен что у него ИДы одинаковые???
#13 by Mikeware
Ну я ж сказал - если базы одинаковые. зы. даже если и разные - все равно есть способы собрать в талбичку нужные
#14 by Skom
ну ессно есть.
#15 by Skom
- это типа обращение TO ALL???
#16 by VladZ
Сделай SQL-функцию получения остатков на обоих базах. Можно, кстати, попробовать средствами SQL-сервера выгружать итоговые данные в DBF.
#17 by Mikeware
Ну, тогда скорее To nihua. А вообщн, писалось тебе. ТКВ.
#18 by VladZ
Что значит ТКВ? Территория Котов-Воителей?  :)
#19 by fadeik86
Народ вы пишите про объекты в разных у которых разные ИДД. Но ситуация в следующем: сначала я коннет. к одной базе и получаю остатки в ней (до второй базы дело не доходит).Условие по товару убирал тоже убирал: все равно такая же ошибка    |WHERE Если поменять вариант подключения в базе и написать просто рс1.УстБД1С - все работает. Но тогда я не смогу к второй коннектит.
#20 by Mikeware
Традиционный Китайский Вопрос - "анахуа?" Сливай все в одну табличку, и после обрабатывай...
#21 by Skom
а ВТ работают во второй базе??? я точно не помню....
#22 by Mikeware
я не помню. Да это и не важно... Можно и без них..
#23 by Skom
конечно можно.
#24 by VladZ
Все, что делается, должно делаться универсально. Другими словами, если в какой-либо другой задаче возникнет необходимость получить остатки из другой базы, тебе нужно заново писать запрос для получения остатков. В случае у тебя уже есть готовый механизм. К тому же, если у тебя в удаленной базе поменалась структура, тебе нужно проверить все "места", где ты получал эти остатки.
#25 by fadeik86
Mikeware а ВТ работают во второй базе??? я точно не помню.... Может а к ВТ нельзя обратиться при таком подключении? Т.е если временной таблицы викинуть период (месяц,день), оставить только к примеру товар и склад и даты за которые отбираются движения опять же работает. Как только добавляешь период или документ. Все борода.
#26 by fadeik86
В итоге не стал геммороится просто сделал обработку, которая сливает две двб и разных баз вместе. Но все-таки интересно. Как все таки получить остатки с испл. вирт. таблиц  или без них. Не могли накидать пару строчек кода или хотя бы идею, как это сделать?
#27 by Skom
тебе дали все необходимое для того что бы решить задачу тебе подсказал одно из решений распарсиваешь запрос получаешь текст запроса и видишь что запросы строятся по двум таблицам РГ и РА вот и строишь такой же запрос только ко второй базе.
#28 by SnarkHunter
Проще всего сделать вьюшки и не зависеть от внутренней структуры баз...
#29 by ДенисЧ
вьюшки на дбф? Пиши ещё!
#30 by SnarkHunter
Пишу еще... В написано: "есть две Скл базы", вьюшки делаются именно в них...
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С