|
как исключить запись непроводимого документа? | ☑ | ||
---|---|---|---|---|
0
BigShmax
11.08.11
✎
13:31
|
конструкция
Попытка текстзапроса (добавление строк в табл часть) ДокументОбъект.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Неоперативный); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; проблема в том что всплыло что документ записывается, но потом вылетает сообщение об ошибке проведения. в результате документ записан с недостающими строками и проведен :0-( |
|||
1
Reset
11.08.11
✎
13:32
|
Плохо :(
|
|||
2
BigShmax
11.08.11
✎
13:35
|
еще бы
|
|||
3
PVV65
11.08.11
✎
13:39
|
(0) Т.е. существует ошибка проведения и документ проведен? Не понятен вопрос.
|
|||
4
BigShmax
11.08.11
✎
13:44
|
нет. документ до этого уже был проведен.
в результате этой обработки происходит добавление строк далее ДокументОбъект.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Неоперативный); по факту документ записывается но не проводится из-за ошибки но статус проведенности остается и табличная часть изменилась. |
|||
5
unregistered
11.08.11
✎
13:44
|
(0) Бред какой-то.
Скорее всего вы записываете документ еще ДО этого момента в отдельной транзакции. Потом видимо добавляете строки и записываете второй раз с режимом Проведение. Вот во второй транзакции и происходят ошибки. Если в транзакции происходят ошибки, то транзакция отменяется целиком. Запись и проведение в 1С производится в одной транзакции. Если хотите иметь записанный документ вне зависимости от ошибок проведения, то записывайте сначала с режимом Запись, а только потом с режимом Проведение. |
|||
6
Scooter
11.08.11
✎
13:45
|
НачатьТранзакцию ?
|
|||
7
BigShmax
11.08.11
✎
13:46
|
именно хочу полный откат. а в результате имею не перепроведенный документ но с измененной табл частью
|
|||
8
unregistered
11.08.11
✎
13:49
|
(4) >> не проводится из-за ошибки но статус проведенности остается и табличная часть изменилась.
Такого не может быть. Запись и проведение происходят в одной транзакции. (7) >> хочу полный откат Так и должно быть. Анализируй код. Где-то происходит запись вне транзакции, которая открывается твоей строкой кода из (0) ДокументОбъект.Записать(Ре... |
|||
9
BigShmax
11.08.11
✎
13:51
|
(8) ок беру таймаут. еще раз погуляю по коду.
|
|||
10
unregistered
11.08.11
✎
13:54
|
(9) Как вариант весь код (от начала до конца) завернуть в транзакцию НачатьТранзакцию - ЗафиксироватьТранзакцию.
В случае ошибок откатывать транзакцию. |
|||
11
PVV65
11.08.11
✎
14:09
|
Попробуй так (хотя транзакция лучше)-
ФормаДок = ДокументОбъект.ПолучитьФорму(); ФормаДок.ПриЗаписиПерепроводить = Истина; ФормаДок.ЗаписатьВФорме(РежимЗаписиДокумента.Проведение); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |