![]() |
![]() |
![]() |
|
Триггер на добавление | ☑ | ||
---|---|---|---|---|
0
Greeen
03.02.09
✎
13:38
|
Доброго дня! Помогите люди добрые, всю голову уже сломал =(
Вешаю триггер на таблицу 1SJourn на вставку (при создании документа общие реквизиты записываются в отпределенную таблицу, получаю номер IDDOC, номер документа и дату) |CREATE TRIGGER [TR_I_DH1SJOURN] ON [_1SJOURN] | FOR INSERT | AS | SET NOCOUNT ON | DECLARE @DDEF char(20) | SELECT @DDEF = INSERTED.IDDOCDEF FROM INSERTED | INSERT INTO _ЖурналСобытий (ДатаСобытия,Пользователь,ТипСобытия,Объект,ИмяОбъекта,ИмяТаблицы) | VALUES(GetDate(), @CurrentUser, 'I', 'Док',@DDEF ,'DH") | SET NOCOUNT OFF И вот в чем загвозка - можно ли как то получить на этот момент Вид документа в нормальном виде (в 1SJOURN там числовой код, а нужен там вида "Заявка покупателя")? |
|||
1
Sadovnikov
03.02.09
✎
13:39
|
(0) Функцию сделай, которая по IDDOC тебе представление документа вернет.
|
|||
2
toypaul
гуру
03.02.09
✎
13:40
|
+1 загнать в таблицу iddocdef и вид через метаданные
|
|||
3
Sadovnikov
03.02.09
✎
13:42
|
(2) Могут доп. данные потребоваться. Типа:
Для Н = 1 По Метаданные.Документ() Цикл ВидДокумента = Метаданные.Документ(Н).Идентификатор; ИмяДокумента = Метаданные.Документ(Н).Представление(); ИДДокумента = РадугаМД.ИДДокумента(ВидДокумента); ТекстЗапросаIF_Начало = " | IF @СтрокаРезультата = '' | IF @ВидДок = "+ИДДокумента; Если ВидДокумента = "ЗакрытиеОстатков" Тогда ТекстЗапросаIF = ТекстЗапросаIF + ТекстЗапросаIF_Начало + " | SET @СтрокаРезультата = Case IsNull((Select Top 1 IDDOCDEF From _1SJOURN (NoLock) Where IDDOC = @идДокОсн),0) | When $ВидДокумента.ЗаказТовараУПоставщика Then 'Закрытие заказа поставщику' | When $ВидДокумента.ТранзитТовараОтПоставщика Then 'Закрытие транзита' | When $ВидДокумента.ЗаявкаНаКомплектацию Then 'Закрытие заявки на комплектацию' | When $ВидДокумента.Счет Then 'Закрытие счёта' | When $ВидДокумента.ЗаявкаНаСклад Then 'Закрытие заявки на склад' | Else '"+ИмяДокумента+"' | End"; ИначеЕсли ВидДокумента = "Счет" Тогда ТекстЗапросаIF = ТекстЗапросаIF + ТекстЗапросаIF_Начало + " | Begin | DECLARE @ВременноеХранение int | SELECT @ВременноеХранение = Convert(int, $Счет.ВременноеХранение) FROM $Документ.Счет Счет (NoLock) WHERE Счет.IDDoc = @ИдДок9 | SET @СтрокаРезультата = Case @ВременноеХранение | When 1 Then 'Счет (консигнация)' | When 2 Then 'Счет (3PL)' | Else 'Счет' | End | End"; |
|||
4
Greeen
03.02.09
✎
13:49
|
спасибо огромное!
|
|||
5
Sadovnikov
03.02.09
✎
13:50
|
(4) Ты собственную регистрацию событий мутишь?
|
|||
6
Greeen
03.02.09
✎
13:51
|
(5) угумс
|
|||
7
Sadovnikov
03.02.09
✎
13:53
|
(6) Чем от штатного механизма должно отличаться?
|
|||
8
Greeen
03.02.09
✎
13:55
|
(7)Возможностью просмотра изменений реквизитов.
Далаю по этому http://1csql.ru/materials/articles/develop.html~49e72144-3910-2323-ade1-bc42f7e4d100 |
|||
9
Sadovnikov
03.02.09
✎
13:59
|
(8) Ясно. Просто, думал, мало ли, может не знаешь про
Функция Событие_ЗаписьСобытияЖурналаРегистрации(КатегорияСобытия, Событие, Тип, Комментарий, Объект, ПредставлениеОбъекта) Экспорт Функция Событие_ЗаписьПользовательскогоСобытияЖурналаРегистрации(КатегорияСобытия, Событие, Тип, Комментарий, Объект, ПредставлениеОбъекта) Экспорт |
|||
10
jcage
03.02.09
✎
14:04
|
Самое эффективное и правильное решение - выкинуть 7.7 в топку и заняться 8.х - там не придется изобретать чрезанальные методы для простых вещей.
|
|||
11
Sadovnikov
03.02.09
✎
14:06
|
(10) Что-то не то покурил? Эк тебя плющит-то.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |