Стыковка внешнего источника данных с данными 1С #790809


#0 by AlterMann
Всем привет. Подскажите, существует ли более цивилизованный способ стыковки данных, полученных запросом из внешнего источника (в моем случае идет обращение к базе Oracle), чем выгрузка результата запроса в таблицу значений, а потом добавление ее в качестве параметра в запрос в виде временной таблицы и последующего соединения с другими таблицами базы 1С? 1С 8.3.7.
#1 by MatveyIgor
#2 by AlterMann
Прошу прощения, что не указал сразу. У меня клиент-серверная 1с на линукс, так что COM объекты мне не доступны :-(
#3 by H A D G E H O G s
Просто допустите такую возможность, что база 1С лежит на одном сервере, а внешняя база - на другом и такие вопросы пропадут.
#4 by MaxS
Сохранить в XML, прочитать из XML.
#5 by AlterMann
Вроде как 1С 8.3 позволяет делать следующее. Реализована возможность работы с временными таблицами для внешних источников данных. Временная таблица создается непосредственно в базе данных внешнего источника данных. Для обращения к временной таблице используется синтаксис ВнешнийИсточникДанных.<Имя внешнего источника данных>.ВременнаяТаблица.<Имя временной таблицы>. И в таком виде конструктор запроса при помещении результата во временную таблицу предупреждение "Получение данных из нескольких источников данных недопустимо" не выдает. Но из второго запроса у меня не получается обратиться к этой временной таблице. Ошибка выполнения запроса "Таблица не найдена". Я пробовал обращаться и по полному имени и просто по имени временной таблицы. 1. ВнешнийИсточникДанных<Имя внешнего источника данных>ВременнаяТаблица<Имя временной таблицы> 2.<Имя временной таблицы>.
#6 by AlterMann
Чем это лучше, чем выгрузка в ТЗ?
#7 by KAO111
В СКД можно использовать 2 набора из разных источников
#8 by gorakh
У меня получилось состыковать через ВнешнийИсточникДанных внешюю базу MS SQL (системы контроля доступа сотрудников). Пробывал на 8.3.6 - "не взлет". 8.3.9 -плохо работали встроенные отборы в форме списков. 8.3.8.2322-Все заработало. На ней и остановился.
#9 by shuhard
а в что по твоему описано ?
#10 by AlterMann
А что в написано? Подключившись через COM объекты данные выгружены в ТЗ, а потом добавлены в запрос через ВТ как параметр. Я так и делаю с внешним источником. Выгружаю результат запроса в ТЗ, а потом во второй запрос как ВТ. Я как раз хочу уйти от выгрузки в ТЗ больших объемов данных.
#11 by AlterMann
Мне нужно именно в одном наборе получить возможность использовать данные из внешнего источника, чтобы соединив по кодам с объектами 1С получить ссылочные данные.
#12 by AlterMann
Получилось состыковать с помощью временной таблицы?
#13 by gorakh
Нет. Сначала получал данные из внешнего источника данных в таблицу значений. Потом уж строил запрос к 1с.
#14 by AlterMann
Жаль, я надеялся, что есть способ делать это без выгрузки в таблицу значений. Не понимаю, зачем вообще в таком случае реализована возможность работы с ВТ для внешних источников ? Поместить можно, а использовать нельзя (
#15 by KAO111
в СКД это работает 1-й набор, запрос в 1С, возможно ограничивающий набор данных какими то условиями 2-й набор, запрос к внешнему источнику. Если просто связать 2 набора - можно будет в полях вывести как данные внешнего источника, так и 1С ссылки. Но для оптимизации можно в связи наборов указать параметр (поле из первого набора). Профайлером видно, что накладывается отбор на итоговый запрос во внешнем источнике.
#16 by KAO111
ВТ внешних источников работают в одном наборе, там может быть пакет запросов.
#17 by MaxS
ТЗ это плоская таблица. В XML можно поместить всё, что угодно, например документ целиком в виде дерева со связанными справочниками и реквизитами. Но если нужен моментальный онлайн доступ к сторонним данным, то xml дольше.
#18 by gorakh
Попробывал на платформе 8.3.10.1877 выполнить поиск по таблице внешненго источника данных в управляемой форме списка выполнить поиск. Выдало ошибку "Ошибка аутентификации клиента средствами операционной системы: Аутентификационный контекст клиента отсутствует в рабочем процессе" На 8.3.8 такое не наблюдается.
#19 by Вафель
а как ты это дерево потом в запрос засунешь
#20 by MaxS
Из вопроса ТС следует. Более цивильный способ - не тягать множество плоских ТЗ из сторонней базы, а взять там всё один раз и развернуть у себя. Далее можно как угодно порезать дерево на ТЗ и делать запросы, если конечная цель именно в этом.
#21 by eks1985
Пакетный запрос пробовал? Если в первом запросе прочитать из внешнего источника и создать вт, а во втором запросе пакета из нее прочититать
#22 by AlterMann
не совсем. Задача в периодической подкачке данных из сторонней базы в 1с, так что такой метод не подойдет.
#23 by AlterMann
По всякому пробовал. Пакетный запрос тоже выдает ошибку получения данных из нескольких источников.
#24 by KAO111
зачем мучаться, в СКД все работает. Причем на SQL оптимальный запрос.
#25 by AlterMann
Можно попросить привести пример отчета СКД?
#26 by KAO111
запрос к внешнему источнику конечно надо будет изменить ))
#27 by AlterMann
Спасибо за помощь, пожалуй так и сделаю.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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