Задача: при проведении РН нужно автоматически сформировать, записать и провести другой документ, который изменит остатки, чтоб сама РН их уже увидела. Нужно чтоб он лег на оси времени до самой РН. В обработку проведения вставил вызов процедуры, в которой формируется новый док. Получаю время РН ч-з ПолучитьВремя(...), После записи нового дока УстановитьВремя(...), Потом открываю его ч-з ОткрытьФорму(), и в ПриОткрытии его провожу и закрываю, в отладчике проверяю, все правильно время нового дока меньше РН, но после проведении он записуется всеравно позже РН, да еще несдвигает ТА. Потом, если даже удаляю эти 2 дока, то остатки искажаются. Приходится только в режиме тестирования пересчитывать итоги.
Я с Опер.учетом работал мало, многие вещи может неправильно понимаю, поэтому несудите строго, подскажите, как правильно записать документ до самой РН, чтобы он изменил остатки, и сама РН при проведении уже увидела эти остатки.
Режим проведения в провести() В СП описано.
Цитата(MATEVI @ 05.06.12, 15:08) необходимо зарегистрироваться для просмотра ссылки
Режим проведения в провести() В СП описано.
Да читал, ставил все: 0,1,2,3. Все равно немогу его записать до РН, и ТА остается на РН.
3 помогало. Как то натыкался еще что если прописано автовремя() то мжет время не ставиться.
можно использовать первый док. просто как источник данных , а все проводки делать во втором
Что только уже непробовал, и АвтоВремяОтключить() ставил, потом УстановитьВремя(...), в отладчике проверяю сразу ч-з ПолучитьВремя(...) - все правильно, как мне нужно, уже убрал Провести(), просто записую, и всеравно он появляется после РН. Уже незнаю что смотреть.
Буду пытаться записывать из модуля формы, тогда оттуда и Провести() можно, а то Провести() приходится вызывать из самой формы в ПриОткрытии()
из модуля формы вроде как можно, только ж при пакетном проведении база будет вести себя по-другому
Все, сделал, из модуля формы РН. Если РН новый, тоесть незаписан, то вызываю Док.АвтоВремяТекущее(), записует до РН, если же РН уже записана, то Док.АвтоВремяОтключить(), и Док.УстановитьВремя(....). До метода Док.Записать(). Всем кто отозвался спс.
Цитата(XBrut @ 05.06.12, 22:52) необходимо зарегистрироваться для просмотра ссылки
можно использовать первый док. просто как источник данных , а все проводки делать во втором

Полностью поддерживаю! Сам бы делал именно так. В противном случае обычно требуется жесткая синхронизация поведения подчиненного документа с основным. Т.е. перепроводить при перепроведении, удалять при удалении и т.п.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.