Алгоритм проведения документов в 1С 8 #613939


#0 by DenisVich
Здравствуйте, вопрос по поводу проведения документов в 1С 8 Управление торговлей 10.3. Как строится алгоритм проведения? Сначала обрабатывается информация формы документа, затем данные передаются движителю - регистру накопления. Не прибегая к конструктору движений модифицировал(для определенных целей) поля документа(добавил 2 суммовых поля - в регистре накопления и в самом документе). Суть проблемы: При проведении документа регистр накопления не видит изменения в документе. хотя в самом документе эти значения хранятся. Скажите пожалуйста как решить такую ошибку. Прилагаю кусок кода:
#1 by DenisVich
СуммаРеализации СуммаПоПоступлению
#2 by shuhard
что-то мешает зайти в ДвиженияПоРегистрам отладчиком и посмотреть ?
#3 by DenisVich
Смотрел, значения не передаются.
#4 by unregistered
Мало что понял.... >> Сначала обрабатывается информация формы документа При проведении данные формы не обрабатываются. При проведении формы вообще может не быть, если документ проводится программно или в форме списка. >> затем данные передаются движителю - регистру накопления. Этого вообще не понял >> Не прибегая к конструктору движений модифицировал(для определенных целей) поля документа(добавил 2 суммовых поля - в регистре накопления и в самом документе). В какой момент происходит "модификация" полей документа? В каком обработчике? За такое: ЭтотОбъект.СуммаРеализации = СуммаРеализации1 в обработке проведения надо по пальцам табуреткой бить.
#5 by DenisVich
>>В какой момент происходит "модификация" полей документа? В каком обработчике? В момент выполнения процедуры ОбработкаПроведения
#6 by DenisVich
Непосредственно после выполнения ДвиженияПоРегистрам должно быть выполнено.
#7 by Irbis
Занятно, открыл новый мешок попкорна.
#8 by DenisVich
Но ничего не происходит с двумя новыми полями.:( Просто на уровне концепции как движения регистров правильно выполнять для документов?
#9 by Irbis
на уровне концепции документ сам должен знать что ему делать при проведении. Иногда используются разные махинации с проверкой до проведения или после, но это загоны гуру от 1С.
#10 by ptiz
Реквизиты документа надо заполнять в процедуре "ПередЗаписью" модуля объекта. Так же, как это сделано с реквизитом "СуммаДокумента".
#11 by unregistered
>> В момент выполнения процедуры ОбработкаПроведения Этого делать нельзя. Значения всех реквизитов документа должны быть установлены ПередЗаписью. ПриЗаписи, и в ОбработкеПроведения реквизиты документа меняться не должны. Естественно все типовые запросы по шапке и табличным частям не видят тех реквизитов которые ты там понаустанавливал, т.к. эти запросы делаются к базе данных, а в базе данных ни каких устанавленных тобою в обработке проведения значений нет (они есть только у объекта).
#12 by unregistered
>> Просто на уровне концепции Запись и проведении происходит в одной транзакции. Сначала запись документа в БД, потом - проведение. В обработке проведения, как правило, для получения необходимых для проведения данных делаются запросы к базе данных (документ уже на этот момент записан и данные в БД есть) по шапке документа, по его табличным частям, к необходимым дополнительным объектам (регистрам, справочникам и т.п.). Используя эти данные выполняются движение по регистрам.
#13 by DenisVich
Спасибо помогло, прояснили!
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С