Имя: Пароль:
1C
1С v8
Запрос с параметром из MS Access с 1с через com соединение
,
0 Nina2005
 
26.12.12
10:58
Надо в Access подключиться к 1с и выполнить запрос с параметром, подключение проходит успешно, затык на моменте установки параметра запроса

Set Соединение = CreateObject("V82.COMConnector")
   ПараметрСоединения = "Srvr=ehsw01:2541;Ref=УПП_Рабочая;Usr=ДляОбмена;Pwd=123;"
   Set База = Соединение.Connect(ПараметрСоединения)
   Set Запрос = База.NewObject("Запрос")
   
   Запрос.ТекстЗапроса = "ВЫБРАТЬ ВЫБОР КОГДА КонтактнаяИнформация.Объект ССЫЛКА Справочник.КонтактныеЛицаКонтрагентов ТОГДА КонтактнаяИнформация.Объект.Владелец ИНАЧЕ КонтактнаяИнформация.Объект КОНЕЦ КАК Наименование, КонтактнаяИнформация.CRM_НомерТелефона КАК НомерТелефона ИЗ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация ГДЕ КонтактнаяИнформация.Тип = &Телефон"
   Запрос.УстановитьПараметр("Телефон",База.Перечисления.ТипыКонтактнойИнформации.Телефон)
   


В чём косяк?
1 Конфигуратор1с
 
26.12.12
11:03
(0)А параметр не передавать, а задать через значение религия не позволяет?
2 Конфигуратор1с
 
26.12.12
11:04
Запрос.ТекстЗапроса = "ВЫБРАТЬ ВЫБОР КОГДА КонтактнаяИнформация.Объект ССЫЛКА Справочник.КонтактныеЛицаКонтрагентов ТОГДА КонтактнаяИнформация.Объект.Владелец ИНАЧЕ КонтактнаяИнформация.Объект КОНЕЦ КАК Наименование, КонтактнаяИнформация.CRM_НомерТелефона КАК НомерТелефона ИЗ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация ГДЕ КонтактнаяИнформация.Тип = Значение(Перечисление.ТипыКонтактнойИнформации.Телефон)"
3 Конфигуратор1с
 
26.12.12
11:05
(0)ой, простите за (1), не глянул что с Леди общаюсь(((
4 Nina2005
 
26.12.12
11:07
(3) через значение, это понятно, что работает. Мне не понятно почему через УстановитьПараметр не работает
5 Конфигуратор1с
 
26.12.12
11:11
(4)В чем проявляется "не работает"?
6 Nina2005
 
26.12.12
11:21
(5) VBA пишет "Syntax error"
7 Nina2005
 
26.12.12
11:22
к сожалению в VBA познаний оч мало(((
8 Конфигуратор1с
 
26.12.12
11:27
ОЛЕ = Новый COMОбъект("V82.ComConnector");

   Соединение = ОЛЕ.Connect(СтрокаПодключения);
   
   Запрос = Соединение.NewObject("Запрос");
   
   Запрос.УстановитьПараметр("ТипНоменклатуры",Соединение.Перечисления.ТипыНоменклатуры.Товар);
   Запрос.текст = "ВЫБРАТЬ
                  |    ВидыНоменклатуры.Код
                  |ИЗ
                  |    Справочник.ВидыНоменклатуры КАК ВидыНоменклатуры
                  |ГДЕ
                  |    ВидыНоменклатуры.ТипНоменклатуры = &ТипНоменклатуры";
   Выборка = Запрос.Выполнить().Выбрать();              
   Пока Выборка.Следующий() Цикл
       Сообщить(Выборка.КОд);
   КонецЦикла;    
В 1с работает
9 Конфигуратор1с
 
26.12.12
11:29
(7)я с вба ваще не знаком, но может так надо

Set Параметр = База.Перечисления.ТипыКонтактнойИнформации.Телефон;
Запрос.УстановитьПараметр("Телефон",пАРАМЕТР); ?
10 Nina2005
 
26.12.12
11:41
(7) не работает. ладно, чёрт с ним, сделаю через значение. спс, за участие.
11 Конфигуратор1с
 
26.12.12
11:49
12 Конфигуратор1с
 
26.12.12
11:50
судя по примеру
Sub Excel_to_trade()

Dim trade As Object
Dim Элемент As Object

Set trade = CreateObject("V82.Application")                           'Создать Automation сервер
trade.Connect("File=""c:\InfoBases\Trade"";Usr=""Director"";")      'Соединиться с информационной базой
Set СправочникТоваров = trade.Справочники. Товары


Вам таки надо попробовать соединение а не база

Set Параметр = Соединение.Перечисления.ТипыКонтактнойИнформации.Телефон;
Запрос.УстановитьПараметр("Телефон",пАРАМЕТР); ?
13 Nina2005
 
26.12.12
11:56
заработало вот так вот
Запрос.УстановитьПараметр "Телефон", База.Перечисления.ТипыКонтактнойИнформации.Телефон
14 Nina2005
 
26.12.12
11:56
о_О
15 Конфигуратор1с
 
26.12.12
11:58
(13)VBA бессмысленное и беспощадное)))