Имя: Пароль:
1C
1С v8
проведение, если отказ стал истина, то что с движениями регистров
0 I_learn_1c
 
20.11.17
15:34
Всем добрый вечер!

Разъясните одну вещь пожалуйста.
Если допустим проводится документ. При проведении создаются движения регистров. и проверяется отказ

Примерно:
Если не Отказ - создалось движение1 по регистру N
...
Если (какое-то условие) Тогда
     Отказ=Истина

Вот получается после второго Если никаких движений не будет, и сам документ не проведется, а движение1 так в регистре N и останется быть?
1 Волшебник
 
модератор
20.11.17
15:36
Движения и документ пишутся в одной транзакции
2 I_learn_1c
 
20.11.17
15:38
(1) то есть если на каком-то из этапов Отказ стал равен Истина, то ни сам документ не проведется, ни движения никакие с ним связанные вообще не будут созданы?
3 FIXXXL
 
20.11.17
15:44
Транза?кция (англ. transaction, от лат. transactio — соглашение, договор) — минимальная логически осмысленная операция, которая имеет смысл и может быть совершена только полностью.

для тебя основное: может быть совершена только полностью.
4 I_learn_1c
 
20.11.17
15:50
(3) то есть либо и документ и регистры, либо ничего, так?
и тогда обработка проведения это грубо говоря подготовка к записи/отказу записи в базу?

я вроде понимаю, но что-то мозг затуманился, скажите конкретно пожалуйста да или нет, и если нет, то как надо
5 Волшебник
 
модератор
20.11.17
15:51
(4) Бывает просто запись, а бывает запись с проведением. В любом случае это одна транзакция.
6 I_learn_1c
 
20.11.17
15:55
(5) буду считать, что похоже на "да", спасибо
7 Ц_У
 
20.11.17
16:06
(6) Ты решил войти в свой дом, конечным результатом будет поместить себя внутрь и закрыть за собой дверь, зайдя за порог, ты вспомнил, что забыл купить молоко, и решил выйти (Отказ = истина) конечная цель (Движения, ты внутри дверь закрыта) достигнута?
8 I_learn_1c
 
20.11.17
17:02
(7) так гораздо понятнее)) спасибо
9 Сияющий в темноте
 
20.11.17
20:28
И,если отказ истина,то в базу уже ничего не запишешь
10 Cyberhawk
 
20.11.17
21:06
(9) Ошибаешься - можно внутри транзакции взвести отказ и через СОМ подключиться к базе и записать-таки )
11 Cyberhawk
 
20.11.17
21:06
Интересно, а запись в саму себя через ВИД внутри транзакции с отказом даст профит?
12 Сияющий в темноте
 
21.11.17
09:55
это уже танцы с бубном называется
можно проще,что-то сложить во внешние структуры и запустить обработчик ожидания и т.п.,чтобы после отката транзакции спокойно записать в базу
13 Cyberhawk
 
21.11.17
09:57
(12) Обработчик ожидания на сервере не подключить / не обработать :)
Это тогда надо в файл, например, записать, а в базе по расписанию шерстить этот файлик и делать что-то :)