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


I Love YaBB 2!

Сообщений: 22
Зарегистрирован: 26. Мая 2006
Запрос к чужой базе: получить значение перечисления
06. Сентября 2008 :: 10:58
Печать  
Подскажите, пожалуйста, как можно получить строковое представление перечисления из чужой базы, если вид перечисления не существует в текущей?

Допустим, в чужой базе есть константа Отделение с типом значения Перечисление.Отделения. Запрос  типа

Код
Выбрать все
SELECT
  Конст.value AS [Отделение $Перечисление.Отделения]
FROM 1sconst As Конст
WHERE Конст.ID = $Константа.Отделение 



не работает, т.к. вид Перечисление.Отделения не определен в текущей БД....
  
Наверх
 
IP записан
 
mov68
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 180
Зарегистрирован: 21. Декабря 2007
Re: Запрос к чужой базе: получить значение перечисления
Ответ #1 - 06. Сентября 2008 :: 11:07
Печать  
Как вариант

, (CASE WHEN Контрагенты.sp2884 = '   14D   ' THEN 'ЮрЛицо' ELSE 'ФизЛицо' END) ВидКонтрагента

Нужно было получить вид контрагента, выполнив запрос в базе-источнике с отладкой, получил значение перечисления, после перевожу в строку, ну а в базе-приемнике анализируй и заменяй перечислением базы-приемника.

Некрасиво, но работает, если у кого лучше, показывай...
  
Наверх
 
IP записан
 
pvase
God Member
*****
Отсутствует



Сообщений: 923
Местоположение: Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Запрос к чужой базе: получить значение перечисления
Ответ #2 - 11. Сентября 2008 :: 12:03
Печать  
Может подключение к внешней базе?:
Код
Выбрать все
глDB = СоздатьОбъект("ODBCDataBase");
глODBC = СоздатьОбъект("ODBCRecordSet");
Попытка

	глDB.ПрисоединитьИБ(КаталогВнБазы);
	глODBC.УстБД(глDB);
Исключение
	Сообщить("Нет доступа к базе "+СокрЛП(database));
	Сообщить(ОписаниеОшибки());			    
	Возврат(0);
КонецПопытки;
ТЗ = глODBC.ВыполнитьИнструкцию("SELECT
|  Конст.value AS [Отделение $Перечисление.Отделения]
|FROM 1sconst As Конст
|WHERE Конст.ID = $Константа.Отделение");
 

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



Сообщений: 242
Зарегистрирован: 01. Июня 2006
Пол: Мужской
Re: Запрос к чужой базе: получить значение перечисления
Ответ #3 - 01. Июня 2009 :: 11:37
Печать  
как я понимаю, ответа на этот вопрос до сих пор нет?)
  
Наверх
 
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: Запрос к чужой базе: получить значение перечисления
Ответ #4 - 01. Июня 2009 :: 13:13
Печать  
Pelmen писал(а) 01. Июня 2009 :: 11:37:
как я понимаю, ответа на этот вопрос до сих пор нет?)

mov68 написал же

Через
МД = СоздатьОбъект("MetaDataWork"); - получаешь строковые значения чужих пречислений
через CASE вставляешь в запрос
  
Наверх
 
IP записан
 
Вадимко
God Member
*****
Отсутствует


Нам бы чего про ОдноЦэ...

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Запрос к чужой базе: получить значение перечисления
Ответ #5 - 02. Июня 2009 :: 07:16
Печать  
Делал давным давно уже свою таблицу соответствий и не парился
  

Кампутер, кофе и сигареты - это очень плохо для моего здоровья...
Наверх
IP записан
 
Pelmen
Full Member
***
Отсутствует



Сообщений: 242
Зарегистрирован: 01. Июня 2006
Пол: Мужской
Re: Запрос к чужой базе: получить значение перечисления
Ответ #6 - 02. Июня 2009 :: 08:09
Печать  
да, я собственно тоже пошел по пути таблицы соответствий
написал небольшую обработку для этого, может кому-то пригодится
  

______________________________________.ert ( 65 KB | Загрузки )
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Запрос к чужой базе: получить значение перечисления
Ответ #7 - 02. Июня 2009 :: 10:40
Печать  
Мысли вслух.
Теоретически можно реализовать специальный типизирующий псевдоним.
Что то типа
[Отделение $ПредставлениеПеречисления.Отделения]
и на присоединенных ИБ тоже должно работать
  

1&&2&&3
Наверх
 
IP записан
 
Pelmen
Full Member
***
Отсутствует



Сообщений: 242
Зарегистрирован: 01. Июня 2006
Пол: Мужской
Re: Запрос к чужой базе: получить значение перечисления
Ответ #8 - 02. Июня 2009 :: 11:12
Печать  
ага, собственно мне и казалось, что подобное должно быть реализовано, ведь так или иначе доступ к метаданным присоединенной базы есть

а по поводу длинных строк в дбф - тоже вручную собирать?
  
Наверх
 
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: Запрос к чужой базе: получить значение перечисления
Ответ #9 - 02. Июня 2009 :: 11:46
Печать  
Pelmen писал(а) 02. Июня 2009 :: 11:12:
ага, собственно мне и казалось, что подобное должно быть реализовано, ведь так или иначе доступ к метаданным присоединенной базы есть

а по поводу длинных строк в дбф - тоже вручную собирать?


Тут уж к 1С вопросы - она не поддерживает memo или blob поля,
а создавать столбцы по 1000 символов - изврат.
Уж лучше дополнительным запросом нужные данные получать.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать