Имя: Пароль:
1C
1С v8
Как из документа провести другой
0 wms
 
08.12.17
09:28
Как из документа док1 с датой дата1 провести другой документ док2 с датой=дата1+1сек, чтобы док2 увидел движения док1?
Сделал подписку при проведении на док1 и там перепровожу док2, но как оказалось в ней еще не завершена транзакция по до1 т.е. еще нет движений у док1.
Только через промежуточный регистр сведений, в который после проведения док1, помещать док2 и с помощью регл. задания, например каждые 30 сек. проводить док2 и удалять из регистра? или как то проще можно?
1 wms
 
08.12.17
09:29
ночь почти не спал и с утра что то плохо соображаю...
2 hhhh
 
08.12.17
09:37
(1) ну сделать у документа Док1 Движения.Записать(); тогда хоть транзакция и не завершена, но движения всё равно уже будут видны.
3 vde69
 
модератор
08.12.17
09:38
зачем движения документа 1 передавать в документ 2?
4 vicof
 
08.12.17
09:41
(3) +100500
5 Buster007
 
08.12.17
09:43
(3) бэкап движений )
6 wms
 
08.12.17
09:45
(2)спасибо. и сам стал так пробовать. вроде получилось. еще перепроверить надо получше
(3)автоматизация учета
7 Fish
 
08.12.17
09:47
Лучше так не делать. Потом можно поиметь немало геморроя.
8 Dmitry1c
 
08.12.17
09:47
(6) суровая автоматизация
9 vde69
 
модератор
08.12.17
09:48
(6) опиши конкретно ЗАЧЕМ тебе проводки первого документа во втором!!!
10 Fish
 
08.12.17
09:48
(8) Особенно весело будет при перепроведении/пометке на удалении первого документа. Или второго :)
11 Рэйв
 
08.12.17
09:48
(7)+100
Я уже имею:-)  Пришлось сделать типа такой же схемы с межфилиальными перемещениями.
12 hhhh
 
08.12.17
09:51
(9) ну во всех типовых так устроено. Документ смотрит остатки по регистрам.
13 vde69
 
модератор
08.12.17
09:53
(12) эмммм... уже лет как 10 так не рекомендуется делать...

сейчас спокойно проводят документ а после проведения проверяют остатки...

если автор делает второй документ из первого, то и проверять остатки он должен в первом документе для второго.
14 hhhh
 
08.12.17
09:58
(13) ну, всё равно же ему надо, хотя бы и после проведения. Это "после проведения" всё равно ведь на данную эпоху находится в обработке проведения.
15 vde69
 
модератор
08.12.17
10:03
(14) ему надо все делать в самой верхней транзакции, то есть если он из док1 проводится док2 это условно можно описать так

начатьТранзакцию(1)
начатьТранзакцию(2)
записатьДок2
ЗафиксироватьТранзакцию(2) - по факту это не выполняется
записатьДок1

ВотЗдесьПоверяемОБАДОКУМЕНТАПО_РЕГИСТРАМ

ЗафиксироватьТранзакцию(1) - по факту здесь фиксируется весь кусок
16 wms
 
08.12.17
13:44
(9) не имеет смысла. сам не маленький и знаю что так не совсем правильно, но
Если кратко у мелкого клиента так все работало и это его почти устраивало, только он всегда вручную менял даты в док1 на 1 сек. раньше чем в док2 и перепроводил док2. часто это забывал делать и были проблемы. Попросил это автоматизировать и немного готов заплатить. Я согласился.Клиент всегда прав!Если бы клиент заплатил раз в 10 больше я бы переделал как правильно.Но, он не готов