![]() |
|
Нужно ли отмена проведения в транзакции 1с 8 | ☑ | ||
---|---|---|---|---|
0
DmitriyDI
09.02.17
✎
16:55
|
НачатьТранзакцию();
ДокОбъект.Записать(РежимЗаписиДокумента.ОтменаПроведения); // тут меняем что-то в накладной ДокОбъект.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.неОперативный); ЗафиксироватьТранзакцию(); нужна ли в этой конструкции отмена проведения, может в ней есть какой-то смысл, держит накладную пока происходят изменения чтобы ее никто не мог изменить или что-то еще? |
|||
1
elCust
09.02.17
✎
17:04
|
(0) держит накладную пока происходят изменения чтобы ее никто не мог изменить
Этим занимается блокировка, транзакция немного другое делает |
|||
2
Лефмихалыч
09.02.17
✎
17:07
|
смотря что в обработке проведения написано. Если там написано прямыми руками, то - не нужна. А, если кривыми и вызов Записать(РежимЗаписиДокумента.Проведение) завершится неудачей по причине того, что документ именно проведен, то - обязательно.
Но это надо очень кривые и злые руки иметь |
|||
3
H A D G E H O G s
09.02.17
✎
17:13
|
(1) Этим нанимается блокировка, накладываемая на время действия транзакции. Все автор правильно рассуждает.
|
|||
4
Heckfy
09.02.17
✎
17:14
|
(0) Нужна. А если сбой аппаратный например? Без транзакции часть движений может остаться.
|
|||
5
H A D G E H O G s
09.02.17
✎
17:14
|
(0) Ты для себя (и нас) ответь на вопрос - зачем тебе транзакция.
- Чтобы никто не успел залезть между ДокОбъект.Записать(РежимЗаписиДокумента.ОтменаПроведения); и ДокОбъект.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.неОперативный); в этот документ? - Чтобы, если не удалось перепровести - вернуть к исходному положению? |
|||
6
DmitriyDI
09.02.17
✎
17:22
|
(5) если он ее не перепроведет он и так вернется к исходному положению, без транзакции, я так понимаю
так как в базе много других регламентных заданий, думаю нужно чтобы в момент когда она изменяет документ никто его не трогал, код этот изначально не мой |
|||
7
DmitriyDI
09.02.17
✎
17:37
|
(2) да я думал об этом, если там только написано, что-то типа того , если проведен то отказ = истина, но такого не нашел там..
|
|||
8
Serg_1960
09.02.17
✎
17:42
|
Если это типовая конфигурация, то ни отмена проведения, ни транзакции, в принципе, не нужны.
// Тут меняем что-то в накладной ... НачатьТранзакцию(); ДокОбъект.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.неОперативный); ЗафиксироватьТранзакцию(); |
|||
9
youalex
09.02.17
✎
17:48
|
(6) при записи - возникает неявная транзакция, при ошибке (или явном указании Отказ = Истина) - вызывается исключение, которое откатывает эту транзакцию (и данные документа, и его движения, и вообще все, что было изменено в этой транзакции) Точнее, то что было изменено - не фиксируется в случае отмены
|
|||
10
DmitriyDI
09.02.17
✎
17:53
|
(9) а разве они зафиксируются в случае отмены, если не написать вначале:
ДокОбъект.Записать(РежимЗаписиДокумента.ОтменаПроведения); |
|||
11
Вафель
09.02.17
✎
18:00
|
в ерп например некоторые документы проводятся по разному с отменой и без
|
|||
12
Вафель
09.02.17
✎
18:01
|
чистое перепроведение может сохранять результаты закрытия месяца
|
|||
13
DmitriyDI
09.02.17
✎
18:02
|
Конфигурация комплексная 1.1, документ реализация
|
|||
14
DmitriyDI
09.02.17
✎
18:03
|
и сразу второй вопрос, если это не влияет и я уберу отмену проведения, то это по идее должно ускорить данный кусок кода, или нет?
|
|||
15
Serg_1960
09.02.17
✎
18:09
|
(11) Отмена проведения - не самоцель, она не нужна как таковая для перепроведения документа.
Но: если перед проведением документа анализируется состояние регистров, и в этих алгоритмах не предусмотрено учитывать движения этого документа, то документ требуется снимать с проведения. Нужно или не нужно отменять проведение - смотреть в конфигурации. |
|||
16
Serg_1960
09.02.17
✎
18:11
|
+ В моей, например, конфигурации движения документа удаляются автоматически при проведении документа.
|
|||
17
DmitriyDI
09.02.17
✎
18:13
|
(15) согласен, тут такого нет
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |