|
|
|
подключение к 1с7,прямые запросы, MetaDataWork | ☑ | ||
|---|---|---|---|---|
|
0
zladenuw
26.09.12
✎
14:36
|
Делаю вот так
Попытка МетаИнфоОЛЕ=Соединение.CreateObject("MetaDataWork"); МетаИнфоОЛЕ.ПрисоединитьМД(ПутьКБазе+"1cv7.md"); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; Попытка OLEDBData = Соединение.CreateObject("OLEDBData"); СтрокаСоединения = "Provider=VFPOLEDB.1;Data Source=" + ПутьКБазе + ";Mode=ReadWrite;Collating Sequence=MACHINE;OLE DB Services=0"; Подключение = OLEDBData.Соединение(СтрокаСоединения); Если Подключение Тогда Запрос = OLEDBData.СоздатьКоманду(); КонецЕсли; Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; ТекстЗапроса = "SELECT |Спр.Code as Код, |Спр.Descr as Наименование |FROM |$Справочник.ТМЦ as Спр"; ТЗ = Запрос.ВыполнитьИнструкцию(ТекстЗапроса); Пишет. Ошибка при вызове метода контекста (ПрисоединитьМД): Типы не совпадают (1) Или так нельзя ? И еще. как перебрать ТЗ если у нее тип СОМОбъект. |
|||
|
1
Ёпрст
гуру
26.09.12
✎
14:39
|
а при чем тут снеговик ?
|
|||
|
2
zladenuw
26.09.12
✎
14:41
|
с него иду в 7
|
|||
|
3
zladenuw
26.09.12
✎
14:42
|
с ТЗ разобрался. а вот можно ли использовать MetaDataWork
|
|||
|
4
viktor_vv
26.09.12
✎
14:42
|
А со слэшами в пути к МД все нормально ?
|
|||
|
5
zladenuw
26.09.12
✎
14:44
|
(4) да
|
|||
|
6
Ёпрст
гуру
26.09.12
✎
14:47
|
ты по оле пытаешься прямой запрос выполнить в базе 1с-ной ?
|
|||
|
7
Ёпрст
гуру
26.09.12
✎
14:47
|
ну и изврат..
|
|||
|
8
Jaap Vduul
26.09.12
✎
14:48
|
Видимо проблема в этом (в 8.x - юникод):
case procAttachMD: { if (ppValue[0]->GetTypeCode() != STRING_TYPE_1C) RuntimeErrorRes(4712); //Неверный тип параметра if (ppValue[0]->GetString().IsEmpty()) UnloadMD(m_pMetaDataCont); else if (!LoadMD(ppValue[0]->GetString(), m_pMetaDataCont)) RuntimeErrorRes(28771); //Ошибка загрузки метаданных. m_MetaNameParser.SetIBProp(m_pMetaDataCont, &NativeIBSet); } |
|||
|
9
zladenuw
26.09.12
✎
14:50
|
ну нравится мне оле. просто чтение в разы быстрее прямым запросом.
|
|||
|
10
zladenuw
26.09.12
✎
14:50
|
(8) жаль.
|
|||
|
11
orefkov
26.09.12
✎
14:55
|
(0)
А зачем ПрисоединятьМД то? Ты что-ли по оле коннектишся к одной базе, а из нее запрос делаешь в другую? |
|||
|
12
zladenuw
26.09.12
✎
14:57
|
(11) я вообще хотел попробовать.
|
|||
|
13
zladenuw
26.09.12
✎
15:04
|
а если у меня есть внутр представление объекта. как с помощью прямого запроса получить его или только в оле Соединение.ЗначениеИзСтрокиВнутр(СтрПредОбъекта) ?
|
|||
|
14
zladenuw
26.09.12
✎
15:05
|
и где вообще можно найти англ сп для 1с7. :(
|
|||
|
15
Ёпрст
гуру
26.09.12
✎
15:09
|
(13)
1.запросом , например 2.сервис-параметры - использовать оба языка (галка) |
|||
|
16
zladenuw
26.09.12
✎
15:14
|
(15) уже нашел. но видел что есть недокументированные фичи для 27. где шаблончик найти можно ? :)
а как ? хотя если написать хранимку. то этот вопрос отпадает, только теперь другой вопрос что писать в хранимке :) |
|||
|
17
zladenuw
26.09.12
✎
15:15
|
function _GetObj(id) export
return ValueFromStringInternal(id); endfunction Так ? |
|||
|
18
zladenuw
26.09.12
✎
15:17
|
(17) че гадать. буду смотреть.
Да и не удалось пока победить реквизиты строковые в прямом запросе :( |
|||
|
19
Ёпрст
гуру
26.09.12
✎
15:41
|
(16) http://www.mista.ru/download1c/metadata_als.zip
(17) це же не запрос :) (18) какие имено реквизиты ? |
|||
|
20
zladenuw
26.09.12
✎
15:43
|
создал хранимку. но как указать что нужно использовать метод ValueFromStringInternal. а то пишет . что нету такой prg
|
|||
|
21
zladenuw
26.09.12
✎
15:44
|
(19) где тип строка. в той злой таблице все строковые хранятся ? без разницы какой длины ?
|
|||
|
22
zladenuw
26.09.12
✎
15:45
|
(19) спасибо за файлик :)
|
|||
|
23
zladenuw
26.09.12
✎
15:46
|
пытаюсь сделать так.
ТекстЗапроса = " |SELECT | Спр.* |FROM $Справочник.ТМЦ as Спр |where Спр.ID as [Элемент $Справочник.ТМЦ] =:Ссылка "; Запрос.УстановитьТекстовыйПараметр("Ссылка", Объект); ТЗ = Запрос.ВыполнитьИнструкцию(ТекстЗапроса); Посылает в далекое :) |
|||
|
24
zladenuw
26.09.12
✎
16:04
|
(23) и все таки. почему не хочет работать
Если так ТекстЗапроса = " |SELECT | Спр.ID as [Элемент $Справочник.ТМЦ] |FROM $Справочник.ТМЦ as Спр "; //|where Спр.ID as [Элемент $Справочник.ТМЦ] =:Ссылка "; //Запрос.УстановитьТекстовыйПараметр("Ссылка", Объект); ТЗ = Запрос.ВыполнитьИнструкцию(ТекстЗапроса); Смотрю в отладчике Элемент это и есть ссылка. что делаю не так |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |