Имя: Пароль:
1C
1С v8
Хранимые процедуры SQL
,
0 doos1981
 
26.10.11
09:54
Есть база SQL(не 1с), в ней написаны несколько процедур (возвращает список контрагентов, передает и записывает в базу список новых/ измененных контрагентов). Как из 1с8 вызвать эти процедуры и будет ли 1с обрабатывать возвращаемые этими процедурами списки?
1 Maxus43
 
26.10.11
09:55
нарушение лицензионного соглашение будет имхо
2 Defender aka LINN
 
26.10.11
09:56
Соединись через ADO, да и вызывай себе на здоровье
3 doos1981
 
26.10.11
09:57
А возвращаемые значения (списки ) будут восприниматься 1с?
4 Defender aka LINN
 
26.10.11
09:58
(3) Конечно. Как COM-объекты :)
5 ice777
 
26.10.11
10:03
(0) А что такого не дают штатные средства, чтоб через окна мимо двери лазить?
6 ДенисЧ
 
26.10.11
10:03
(5) Эммм... Штатные средства для доступа к внешней БД?
7 doos1981
 
26.10.11
10:06
Как создать подключение я примерно представляю:

СтрокаСоединения = ("Provider=SQLOLEDB;Driver={SQL Server}; Deleted=No; Data Source = ") + SQLServer +(";UID=") + Login + ("; PWD=") + Password + (";");
             
Подключение = Новый ComObject("ADODB.Connection");
Подключение.ConnectionString=СтрокаСоединения;

А как обратьться к хранимой процедуре?
8 ДенисЧ
 
26.10.11
10:07
рез = Подключение.Execute("CALL MySP")
9 doos1981
 
26.10.11
10:10
CALL MySP - название процедуры?
А как передать параметры?
10 ДенисЧ
 
26.10.11
10:11
А почитать документацию?
11 philll
 
26.10.11
10:17
НаборЗаписей = connection.Execute("p1C_Order_SaleServiceGet NULL, '7714777878', '7714693184', 0, '104257/АВМ/3', '2010.09.29'");
12 doos1981
 
26.10.11
10:23
Нет вы не поняли: есть уже написаные хранимые процедуры и в зависимости от передаваемых параметров они выполняют разные варианты запросов и возвращают список. (или записывают измененные или новые данные)
13 ДенисЧ
 
26.10.11
10:23
Мы поняли... А ты упорно не желаешь читать документацию...
14 philll
 
26.10.11
11:00
ВозвращаемыйСписок = connection.Execute("НаписаннаяПроцедура <передаваемые параметры>");
15 ado
 
26.10.11
11:02
(1) Схренали?
16 kuza2000
 
26.10.11
11:06
Эх... гуглов на вас мало!

http://msdn.microsoft.com/en-us/library/ms679836(v=VS.85).aspx

Прочитай про Command, Parameter и др.
17 kuza2000
 
26.10.11
11:09
Функция ВыполнитьПроцедуру(Подключение, стрПроцедура, Пар1 = Неопределено, Пар2 = Неопределено, Пар3 = Неопределено, Пар4 = Неопределено) Экспорт

   Команда = Новый COMОбъект("ADODB.Command");
   Команда.ActiveConnection = Подключение;
   Команда.CommandType = 4;
   Команда.CommandText = стрПроцедура;
   
   Если Пар1 <> Неопределено Тогда
       Команда.Parameters.Append(СоздатьПараметр(Команда, Пар1));
   КонецЕсли;
   Если Пар2 <> Неопределено Тогда
       Команда.Parameters.Append(СоздатьПараметр(Команда, Пар2));
   КонецЕсли;
   Если Пар3 <> Неопределено Тогда
       Команда.Parameters.Append(СоздатьПараметр(Команда, Пар3));
   КонецЕсли;
   Если Пар4 <> Неопределено Тогда
       Команда.Parameters.Append(СоздатьПараметр(Команда, Пар4));
   КонецЕсли;
   
   обРезультат = Команда.Execute();
   
   Возврат обРезультат;

КонецФункции

Ну и т.д...
AdBlock убивает бесплатный контент. 1Сергей