|
Переменная Отказ мешает сохранить элемент справочника | ☑ | ||
---|---|---|---|---|
0
ArtemKolos
09.03.12
✎
16:48
|
Есть функция, которая создает элемент справочника, вызываю а процедуре ПередЗаписью(документа), функция отрабатывает, возвращает ссылку на элемент справочника, но если дальше где нибудь сработает отказ = истина, элемент удаляется, как быть?
|
|||
1
pumbaEO
09.03.12
✎
16:50
|
Ну каков вопрос и каково понимание сути переменной Отказ при записи, таков и ответ.
КонецПроцедуры пишешь Отказ=Ложь, записывать будет всегда. |
|||
2
Naumov
09.03.12
✎
16:50
|
мделать так, чтобы далее нигде не возникло Отказ = Истина;
|
|||
3
ArtemKolos
09.03.12
✎
16:54
|
(1) =)
(2) другого выхода нет? |
|||
4
Naumov
09.03.12
✎
16:55
|
(3) есть: крестик в правом верхнем углу приложения.
|
|||
5
ArtemKolos
09.03.12
✎
16:56
|
(4) остряк
|
|||
6
pumbaEO
09.03.12
✎
16:57
|
ЭлементСправочника = Справочники.Номенклатура.СоздатьЭлемент();
ЭлементСправочника.ОбменДанными = Истина; ЭлементСправочника.Записать(); |
|||
7
ArtemKolos
09.03.12
✎
17:00
|
(6) у меня в функции написано то же, только без ОбменДанными = Истина
|
|||
8
Naumov
09.03.12
✎
17:01
|
так вся фишка в ОбменДАнными.
|
|||
9
ArtemKolos
09.03.12
✎
17:03
|
Не помогло =(
|
|||
10
pumbaEO
09.03.12
✎
17:04
|
самописька?
|
|||
11
ArtemKolos
09.03.12
✎
17:05
|
угу
|
|||
12
pumbaEO
09.03.12
✎
17:08
|
Во всех типовых в процедуре перед записью есть такой код:
Если ОбменДанными.Загрузка Тогда возврат; КонецЕсли в самом начале процедуры. Данный код помогает. |
|||
13
sergey yevsenya
09.03.12
✎
17:09
|
наверно должно быть ЭлементСправочника.ОбменДанными.Загрузка = Истина;
|
|||
14
ArtemKolos
09.03.12
✎
17:14
|
не то
|
|||
15
sergey yevsenya
09.03.12
✎
17:16
|
не верю
|
|||
16
pumbaEO
09.03.12
✎
17:17
|
(14) лгунишка... :)
|
|||
17
Armando
09.03.12
✎
22:05
|
(0) Читаем СП: ПередЗаписью Возникает перед выполнением записи объекта. Процедура-обработчик вызывается ПОСЛЕ НАЧАЛА ТРАНЗАКЦИИ записи, но до начала записи документа.
Про атомарность транзакции слышал? Транзакция фиксируется полностью, либо не фиксируется вообще. Все, что выполняется в БД в этом обработчике, принадлежит одной транзакции. В твоем случае это запись элемента справочника. Переменная Отказ сообщает системе, следует ли отменить транзакцию после этого события. Если транзакция отменяется, то все изменения произошедшие в БД в этой транзакции тоже отменятся. |
|||
18
Живой Ископаемый
10.03.12
✎
00:04
|
2(6,8,13) в данном случае нет. При откате транзакции откатываются все вложенные транзакции. Стыдно забыть про это. :)
|
|||
19
Живой Ископаемый
10.03.12
✎
00:05
|
2(12) Ну или так, да
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |