![]() |
|
Чтение данных из регистра в обработке проведения пишущей в тот же регистр | ☑ | ||
---|---|---|---|---|
0
Многолетний Апельсин
23.04.14
✎
13:20
|
Ситуация:
Изобретаю велосипед - систему учета заказов с предоплатой. В обработке проведения платежного документа делаю движения по регистру накопления хранящему долг по заказу и вызываю принудительно "Движения.Записать()". После чего пытаюсь в той же процедуре получить текущий долг и в зависимости от него поставить статус оплаты документу-заказу (Оплачен,Частичноплачен,Неоплачен). Проблема - долг не всегда правильно высчитывается. Опытным путем было установлено что если медленно пошагово исполнять обработку проведения, и в частности подождать после выполнения "Движения.Записать()" то долг считается правильно, что наводит на мысль что движения пишутся параллельно в базу данных. В связи с этим вопросом - если возможность гарантировать запись движений последовательно? Т.е. чтобы после окончания вызова "Движения.Записать()" они уже точно были в бд. Если сморозил жуткий бред - ногами сильно не пинайте. |
|||
1
Рэйв
23.04.14
✎
13:22
|
ОбработкаПроведения - это вообщето транзакция.Пока не завершится нет никаких движений в базе. Так что ты что-то путаешь.
|
|||
2
Многолетний Апельсин
23.04.14
✎
13:23
|
Ну кстати да, но как то оно криво срабатывало же.
|
|||
3
Maxus43
23.04.14
✎
13:23
|
должно всё правильно показывать. внутри транзакции эти данные уже "записаны", вне транзакции они не "видны", а внутрях видны
|
|||
4
Maxus43
23.04.14
✎
13:24
|
сама задача конечно криво реализована.
Снимай текущие остатки до записи новых и ставь статус с учетом суммы дока, не надо по движениям которые делаются об этом судить |
|||
5
Рэйв
23.04.14
✎
13:26
|
(4)Сейчас еще он спросит "как записать статус дока из обработки проведения" и будет еще постов 100:-)
|
|||
6
Многолетний Апельсин
23.04.14
✎
13:26
|
Старые движения стираются к моменту выполнения обработки проведения?
|
|||
7
Ненавижу 1С
гуру
23.04.14
✎
13:28
|
(6) от тебя зависит
|
|||
8
Maxus43
23.04.14
✎
13:28
|
(6) смотря какой код, в типовых стираются принудительно кодом, в начале обработки проведения.
Изменять реквизиты дока надо по феншую в ПриЗаписи, а не в проведении |
|||
9
neo_matrix_123
23.04.14
✎
13:37
|
(0) я такое практикую. реализовано подписками на событие, которые исполняются после проведения типовым глобальным контекстом и довинчивают движок. пример проведение отражения зп в регл учете в моем варианте пишет в регистр нзп заказы. но если в обработку проведения вставить изменение формы документа (статус), то проведение будет дважды. а в этом нет него хорошего. (7) +1
|
|||
10
Многолетний Апельсин
23.04.14
✎
14:06
|
(9) История статусов в отдельном регистре хранится.
(4) Остановился на таком варианте. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |