Имя: Пароль:
1C
 
Запись в таблицы SQL из 1С
Ø
0 BackSpace
 
24.10.06
15:32
Существует ли возможностьделать записи из 1С в таблицы SQL другой БД? Читать, как я понял, можно при помощи 1С++. Есть ли в природе решения для записи?
1 Джинн
 
24.10.06
15:35
Лучше в базу 1С писать данные средствами 1С. А вот проблема "взять из другой БД" - это дело вкуса. Хоть 1C++, хоть ADO, хоть через промежуточные файлы обменивайтесь.
2 Morrison
 
24.10.06
15:48
2(2) Джинн, у меня аналогичная проблема, писать надо в другую базу (есть софт представляющий из себя набор хранимых процедур, ему необходимо предоставить данные из 1с). Пока не определился чем это лучше делать. Не подскажете?
3 fisher
 
24.10.06
15:51
Простейшее решение - использование ADO.
Поиск рулит.
4 FAM
 
24.10.06
15:53
Я пишу в другую БД при помощи 1С++... полет нормальный...
6 Джинн
 
24.10.06
16:18
http://www.sinor.ru/~my1c/knowhow/accs_ado.html
Только в строке подключения Driver={SQL Server};Server=типа_сервер;Database=типа_база;Uid=sa;Pwd=типа_секретное_слово"
7 FAM
 
24.10.06
16:34
2(5) Да там обычный инсерт... типа:
Insert Into Tabel_Add.dbo.ReportStat
Values
  (
  ' 1 ',
  'Администратор',
  'Рабочее время по бригадным нарядам',
  'РабочееВремяПоНарядам.ert',
  '20061024 19:28:30',
  '20061024 19:28:31'
  )
Единственно, если БД лежит на другом серваке, то его надо к текущему прилинковать...
Запрос = СоздатьОбъект("ODBCRecordSet");
//сейчас прилинкуем сервер упр базы...
ТекстЗапроса =
"
|If @@VERSION like 'Microsoft SQL Server 2005%'
| Begin
| If Not Exists(Select srv.name From sys.servers srv Where srv.Name = '"+СерверУпрБазы+"')
| Exec sp_addlinkedserver @Server = '"+СерверУпрБазы+"'
| End
|Else
| Begin
| If Not Exists(Select srv.srvname From master.dbo.sysservers srv Where srv.srvname = '"+СерверУпрБазы+"')
| Exec sp_addlinkedserver @Server = '"+СерверУпрБазы+"'
| End
|
|Exec sp_addlinkedsrvlogin "+СерверУпрБазы+", False, 'sa', 'sa', '"+ПарольУпрБазы+"'
|";
    
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
  Ошибка = Запрос.ПолучитьОписаниеОшибки();
  Если ПустаяСтрока(Ошибка) = 0 Тогда
    Сообщить("ODBCRecordset error:"+РазделительСтрок+Запрос.ПолучитьОписаниеОшибки());
  КонецЕсли;
  Возврат;
КонецЕсли;
8 FAM
 
24.10.06
16:37
+(7) Линковать сервер нужно только в первый раз...
9 Morrison
 
24.10.06
16:45
Джинн, FAM огромное спасибо!!!