Запрос в другую базу #631648


#0 by Borteg
Доброй ночи. Появилась необходимость из одной базы сделать запрос в другую для отчета. Как можно это сделать? Тоесть у меня есть внешняя обработка которая считает необходимые мне данные в первой базе, во второй базе есть тоже необходимые мне данные. как можно сделать запрос во вторую базу из первой чтобы получить данные и загрузить их в табличную часть например.
#1 by zladenuw
создаешь СОМ, в нем запрос к бд источник. возврат тз. где поля строки. и выводишь. или же внешний источник данных и сразу в отчет в скд
#2 by Borteg
Спасибо за ответ, у меня все получилось, данные получил, но столкнулся с такой проблемой. Делаю запрос в регистр бухгалтерии 2 базы, запрос имеет параметр Датаконцапериода. он равен     в первой базе все срабатывает я получаю обороты мне необходимые на 2012.06.30 включая конец, во вторую базу я могу передать токо дата(2012,06,30) но тогда не попадают туда все нужные мне значения. как передать границу? Ошибка при вызове метода контекста (выполнить)                    выборка = запрос.выполнить.выбрать; по причине: Произошла исключительная ситуация (1C:Enterprise 8.2.16.352): {(8, 2)}: Ошибка обработки представления "РегистрБухгалтерии.Хозрасчетный.Обороты:Несоответствие типов (Параметр номер ""2"")"
#3 by zladenuw
а создать там
#4 by Borteg
а как это можно сделать? я просто только связался с этим.
#5 by zladenuw
а чего ты только можешь передать дату ?  что при передачи границы ?
#6 by Borteg
по причине: Произошла исключительная ситуация (1C:Enterprise 8.2.16.352): {(8, 2)}: Ошибка обработки представления "РегистрБухгалтерии.Хозрасчетный.Обороты:Несоответствие типов (Параметр номер ""2"")" <<?>>РегистрБухгалтерии.Хозрасчетный.Обороты(,&Конпериода,,Счет=&Счет,,,,) КАК ХозрасчетныйОбороты вот такая ошибка
#7 by zladenuw
весь текст
#8 by zladenuw
запроса
#9 by Borteg
|    ХозрасчетныйОбороты.СуммаОборотКт как оборотКТ
#10 by Borteg
только там дата3 в запросе
#11 by zladenuw
Надо Соединение.NewObject("Граница")
#12 by Borteg
воо отлично получилось! спасибо большое) и последний вопрос) Я получаю в запросе ссылку на документ расчетов во второй базе, как мне в первой базе эту ссылку в табличную часть вставить. она имеет же составной тип данных
#13 by Borteg
я просто вот получал контрагента, и в справочники контрагента искал его по наименованию, а тут я не знаю к какому документу обратиться
#14 by zladenuw
вообще. какая задача
#15 by Borteg
ну я сделал запрос в 60.01 счет и должен вывести его в табл часть. субконто документ расчетов имеет составной тип данных. у меня есть таблч часть со столбцом=составной тип данных. я получил запрос из второй базы данные и теперь ими заполняю табл часть другой базы
#16 by Borteg
тоесть я имею ссылку со второй базы, этот документ есть в первой базе. мне надо в табл часть первой базы вывести ссылку на этот док.
#17 by zladenuw
не. ссылка только так   где я писал. вообще какая задача
#18 by zladenuw
если отчет. то получаешь все оттуда. проще сделай там запрос. а потом через ком. и все
#19 by zladenuw
только строки. в коме нету ссылок
#20 by zladenuw
понял ?
#21 by Borteg
пока неочень) ну вот в запросе я получил ссылку со второй базе. теперь мне надо в первой базе найти этот док. я понял что ссылок нету. надо через чтото другое искать. базы идентичны. тоесть guid итд итп одинаковые. тоесть мне надо получить guid этого документа и найти в первой базе этот док по guidу?)
#22 by zladenuw
а номера ?. вообще да. если они иднтч то можно через гуи. но тогда можно пробывать скд и вызывать внешнию функцию и по гуиду соединение
#23 by Borteg
мля как сложно все . осталось последняя фишка и так и думал что заткнусь на ней) номера тоже совпадают, но тип данных то составной. в каком документ искать этот номер?(
#24 by zladenuw
давай по порядку. где вообще искать. тип можно получить документа
#25 by zladenuw
сложного нету. есть недопонимание
#26 by Borteg
База 1 = 2 по документам. Тоесть даты,guidы все одинаковое. На 60 счете по одним и тем же документам в  базах разные обороты. Мне надо сейчас вывести в первой базе обороты второй базы наложенные документы расчетов первой базы. Тоесть я получил запросом обороты. Мне теперь надо проставить субконто документ расчетов. Когда вя в табличную часть первой базы пишу СтрокаТч.ДокументРасчетов = Остатки.документрасчетов; где остатки запрос во вторую базу у меня просто там comobject стоит, а мне надо чтобы ссылка
#27 by zladenuw
номер и тип документа .не ссылку надо
#28 by Borteg
тоесть вопрос сводится к минимуму я нашел документ во второй базе как мне теперь его найти в первой
#29 by zladenuw
попробуй внешний источник данных и соединить твоя поля по типу и по номеру. должно проканать. если же не. то получаешь тз документов с источника в приемнике делаешь соединение. потом вывод в отчет. но это долго
#30 by Borteg
Тоесть если по порядка получил запросом ссылку во второй базе. выборка.номер - это мой номер как определить тип? в 1 базе. исходя их типа  задаю запрос в нужные документы документы... найти по коду код суть понял только
#31 by zladenuw
если есть гуид документа то лучше выборкой. тогда получишь приемник=источник. запрос походу не получится. формируешь перебор, в тз. а потом тз в запрос.
#32 by zladenuw
но могу и ошибатся
#33 by Web00001
Зачем городить огород, если гуиды совпадают? Ну и получай ссылку напрямую через гуид он ведь для этого и нужен?
#34 by zladenuw
в запросе ? как сразу ?
#35 by Web00001
СтрокаТч.ДокументРасчетов = Остатки.документрасчетов; где остатки запрос во вторую базу у меня просто там comobject стоит, а мне надо чтобы ссылка Надо ссылку? переделай сом объект в ссылку через гуид да и все. Или чота не так?
#36 by Borteg
я бы с радостью передал но я с этим не встрречался и не сильно понимаю как. у меня есть ссылка на объект во второй базе. 1) как получить guid по этой ссылке 2) как найти по гуиду ссылку на документа в первой базе это то что я не понимаю
#37 by zladenuw
и как в запросе. вот пример. но тут не ком. хотя это уже не запрос :)
#38 by zladenuw
роща.
#39 by Borteg
щас с гуидом попробую вроде разобрался
#40 by zladenuw
это уже не запросом все. хотя пробуй. на 100 не подскажу
#41 by Web00001
из я понял что у него там в параметре запроса стоит ком а не ссылка, то есть надо что бы срабатывало условие СтрокаТч.ДокументРасчетов = Остатки.документрасчетов; то есть вместо Остатки.документрасчетов просто ДокументРасчетов который и будет тем самым документом восстановленным из гуида
#42 by zladenuw
по кому и равно....если гуи то тогда катит. а если не гуи. то только по дате и по номеру ?
#43 by Borteg
с гуидом както все понятно единственное как узнать гуид в подключенной базе ссылка1 = выборка.документрасчетов; -выборка во второй базе гуид = Ссылка1.УникальныйИдентификатор;-это правильно будет?
#44 by Borteg
comobject  в табл части, чето опять не так делаю, как по гуиду найти обьект вроде понятно. Вопрос как этот guid из второй базы передать в табличную часть первой базы например
#45 by zladenuw
смотри в если ссылка создана как там. то получишь
#46 by Borteg
как его вообще найти и передать в первую базу, если это обьясните вроде все остальное я понял
#47 by zladenuw
ну ты блин
#48 by zladenuw
а по ссылке посмотреть ОбъектПолучателяСпр = ТекCOMОбъект.Справочники["Номенклатура"].ПолучитьСсылку(ВернутьУИД(ОбъектОтправителя));
#49 by zladenuw
#50 by zladenuw
#51 by zladenuw
надо стрелять. кто не гугл или яндя
#52 by Borteg
Ошибка при вызове метода контекста (NewObject)                    гуид=УПП.Newobject("УникальныйИдентификатор",СокрЛП(ссылка1.UUID)); по причине: Произошла исключительная ситуация (1C:Enterprise 8.2.16.352): Недопустимое значение параметра (параметр номер '1')
#53 by zladenuw
обжект
#54 by zladenuw
Например:
#55 by zladenuw
#56 by Borteg
ох вроде получилось, только у меня там около 50000  записей, а гуид я так понял надо искать перебором по метаданным документы. тоесть это ему на день работы?)
#57 by zladenuw
че? значит плохо написал. то 5 минут. и то это много
#58 by Borteg
ну как плохо написал чтобы найти по guidy ссылку надо перебрать все документы Для каждого л_Менеджер из Метаданные.Документы Цикл написанно перебором надо делать. вот у меня там куча записей и он щас я так понимаю для каждой записи сидит перебирает...
#59 by Borteg
оу е перебрало)
#60 by Borteg
боже мой вроде даже правильно!)
#61 by Borteg
Блин мужики огромное Вам спасибо что провозились со мной столько времени. Все сработало как надо. Спасибо что объяснили как собладать с этой задачей, а то сам бы я надолго застрял.
#62 by zladenuw
надо веб кошелек создать. да взамен спасибо 50 копечек. так бы и миллиардером стал бы.
#63 by Ranger_83
"Ну, вы блин даете"(С)
#64 by zladenuw
а чЁ
#65 by Web00001
Тебе за полчаса отвлеченной болтовни в стиле " хотя пробуй. на 100 не подскажу" еще и денег надо???
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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