Имя: Пароль:
1C
 
Триггеры MS SQL
0 Kamili
 
31.05.07
13:29
Добрый день, всем.

Подскажите, плз,как и где написать в 1Сv7(база на sql)триггер, отслеживающий изменение(создание или удаление) записей в таблицах(т.е. это либо справочники, либо документы).Т.е. в результате работы триггеров создается таблица,фиксирующая дату,имя таблицы, идентификатор объекта и тип транзакции(I, U, D).

Спасибо огромное за помощь.
2 774816
 
31.05.07
14:47
Создание триггера в MS SQL 2000

IF EXISTS (SELECT name
      FROM   sysobjects
      WHERE  name = N'ИмяТригера'
      AND      type = 'TR')
   DROP TRIGGER ИмяТригера
GO

CREATE TRIGGER ИмяТригера
ON ИмяТаблицы
FOR DELETE, INSERT, UPDATE
AS
BEGIN
   insert into ИмяТаблицыЖурнала(id_user,id_datetime)
values (user,getdate())
END
GO
3 Kamili
 
31.05.07
16:48
Я так понимаю, что триггеры необходимо писать не в 1С, а в среде SQL сервера?
4 Ненавижу 1С
 
гуру
31.05.07
16:50
(3)
да там
с 1С давно?
а где фото?
5 Kamili
 
31.05.07
17:05
1С занимаюсь около полу-года, с написанием триггеров не сталкивалась, но задание выполнить надо.
Сейчас настраиваю SQL сервер, попробую написать там триггеры.Правда не совсем понимаю как они будут отрабатывать.
6 Ненавижу 1С
 
гуру
31.05.07
17:06
Журнал регистрации не устраивает?
7 Kamili
 
31.05.07
17:12
В результате работы триггеров в MS SQL создается таблица TLog определенной структуры  - это и есть Журнал регистрации?
8 Денежко
 
31.05.07
17:12
Че--никто не скажет - фотку в студию! ТОгда я--Up!
9 774816
 
01.06.07
08:09
(3) в 1с
Процедура СоздатьТриггер(пИмяСервера,пБазаДанных,пИмяПользователя,пПароль,ИмяТриггера,Таблица)
   Перем SQLудаление,SQLсоздание;
   Con=СоздатьОбъект("ADODB.Connection");
   СтрСоединения="Driver={SQL Server};Server=" + пИмяСервера + ";Database="  + пБазаДанных+ ";Uid=" +пИмяПользователя +";Pwd=" + пПароль + ";" ;
   
   SQLудаление="IF EXISTS (SELECT name From sysobjects Where Name = N'" + ИмяТриггера + "'
   |AND  type = 'TR')
   |DROP TRIGGER " + ИмяТриггера ;
   SQLсоздание ="CREATE TRIGGER " + ИмяТриггера + " ON " +  Таблица + " FOR DELETE, INSERT, UPDATE
   | AS
   | BEGIN
   | insert into JR(id_user,id_datetime)
   | values (user,getdate())
   | End " ;
   
   Если Con.State=1 Тогда Con.Close();    КонецЕсли;
   Con.Open(СтрСоединения) ;
   Con.Execute(SQLудаление);
   Con.Execute(SQLсоздание);
   Con.Close();    
   Con="";                  
КонецПроцедуры    // СоздатьТриггер
вызов
процедуры    
СоздатьТриггер("server","base","sa","","newtrigger","goods");

(7) Жунал регистрации 1с не связан с триггерами sql, в базе 1с sql я не нашел ни одного триггера, так что 1с не использует триггеры для журнала регистрации
(8) Фотку в студию!!!
10 nufnuf
 
01.06.07
08:15
фотку в студию!
11 toypaul
 
гуру
01.06.07
08:42
12 Конь в пальто
 
01.06.07
08:48
(11) эт уже реклама, итить