Имя: Пароль:
1C
 
Как по COM достучаться до общего модуля
0 simol
 
03.02.11
15:16
Есть общий модуль Полные права, в нем функция ВыполнитьЗапросПривилегировано

Как до нее достучаться по COM?

СоединительСБазойУУ = Новый COMObject("V82.COMConnector");
СоединениеСБазойУУ = СоединительСБазойУУ.Connect("Srvr=*****; Ref=Corporate;");
Запрос = Соединение.NewObject("Запрос");
Запрос.Текст = "ВЫБРАТЬ ....";




Результат = СоединениеСБазойУУ.ПолныеПрава.ВыполнитьЗапросПривилегировано(Запрос)

- не работает

Ошибка при вызове метода контекста (ВыполнитьЗапросПривилегировано)
   РезультатЗапроса = Соединение.ПолныеПрава.ВыполнитьЗапросПривилегировано(Запрос);
по причине:
Параметр не опциональный
1 Axel2009
 
03.02.11
15:17
а объявление функции какое?
2 Ненавижу 1С
 
гуру
03.02.11
15:18
1. объявление какое у функции
2. права на модуль
3. заголовок функции
4. СоединениеСБазойУУ<>Соединение
3 simol
 
03.02.11
15:28
(1)(2)

Намного начудил когда код ставлял


СоединительСБазойУУ = Новый COMObject("V82.COMConnector");
СоединениеСБазойУУ = СоединительСБазойУУ.Connect("Srvr=*****; Ref=Corporate;");
Запрос = СоединительСБазойУУ.NewObject("Запрос");
Запрос.Текст = "ВЫБРАТЬ ....";


Результат = СоединениеСБазойУУ.ПолныеПрава.ВыполнитьЗапросПривилегировано(Запрос.Текст)


Функция ВыполнитьЗапросПривилегировано(Знач ТекстЗапроса, Знач СтруктураПараметровСтрокой = Неопределено) Экспорт
4 simol
 
03.02.11
15:28
Запрос = СоединениеСБазойУУ.NewObject("Запрос");
5 Axel2009
 
03.02.11
15:29
а зачем создавать объект запрос, когда можно просто строку передать?
6 Ненавижу 1С
 
гуру
03.02.11
15:29
вот:

Результат = СоединениеСБазойУУ.ПолныеПрава.ВыполнитьЗапросПривилегировано(Запрос.Текст,Неопределено);
7 acsent
 
03.02.11
15:30
А что в процедуры можно ком объекты передавать?
8 Axel2009
 
03.02.11
15:31
(7) а почему нельзя?
9 Ненавижу 1С
 
гуру
03.02.11
15:32
(7) там обычная строка передается
10 simol
 
03.02.11
15:33
(6)Неопределено одной базы не равно Неопределено в другой чето
11 simol
 
03.02.11
15:34
Упорно хочет второй параметр, почему интересно, он же не обязательный.
12 Ненавижу 1С
 
гуру
03.02.11
15:34
(10) не ври
13 Ненавижу 1С
 
гуру
03.02.11
15:34
(11) потому что это COM
14 Ненавижу 1С
 
гуру
03.02.11
15:35
+(12) по верь мне, я кое-что знаю про это Неопределено )))
15 simol
 
03.02.11
15:40

Функция ВыполнитьЗапросПривилегировано(ТекстЗапроса, СтруктураПараметровСтрокой = Неопределено) Экспорт
   
   Запрос = Новый Запрос;
   Запрос.Текст = ТекстЗапроса;
   Если СтруктураПараметровСтрокой <> Неопределено И СтруктураПараметровСтрокой <> "" Тогда
       СтруктураПараметров = ЗначениеИзСтрокиВнутр(СтруктураПараметровСтрокой);
       
       Для Каждого Параметр Из СтруктураПараметров Цикл
           Запрос.УстановитьПараметр(Параметр.Ключ, Параметр.Значение);
       КонецЦикла;    
   КонецЕсли;    
   
   Результат = Запрос.Выполнить();
   
   Возврат Результат;
   
КонецФункции

Условие не срабатывает ни на "" ни на  Неопределено
16 Ненавижу 1С
 
гуру
03.02.11
15:42
(15) врёшь!
17 mishmeister
 
03.02.11
15:43
Если СтруктураПараметровСтрокой <> Неопределено И СтруктураПараметровСтрокой <> "" Тогда

А разве один параметр может быть равен и Неопределенно И ""? М.б. там Или надо?
18 Ненавижу 1С
 
гуру
03.02.11
15:44
(17) может быть НЕ равен
19 73
 
03.02.11
15:45
(17) там <>
20 simol
 
03.02.11
15:46
(17)Там Не равен
(16)Вру, условие добавил динамически, а COM не переподключил
21 Ненавижу 1С
 
гуру
03.02.11
15:47
(20) 2 раза соврал, негодяй какой
22 simol
 
03.02.11
15:48
Все работает, всем спасибо !!!
23 simol
 
03.02.11
15:58
(5)Спасибо учел, просто ранее запрос выполнялся в во внешнем подключении, потому он был.