Обращение к движениям документа в обработке проведения #228032


#0 by denomad
У документа отключено автоматическое удаление движений. Как при отмене проведения проверить есть ли у него движения по конкретному регистру, чтобы в случае их наличия очистить их? Но, если движений нет, документ не пытался бы заблокировать таблицу регистра
#1 by Michael99
Насчет заблокировать не знаю, а удалить движения можно получив набор записей регистра с отбором по регистратору
#2 by asady
в процедуре ОбработкаПроведения ДвижненияРегистра=Движения[ИмяРегистра]; Если ДвиженияРегистра.Количество>0 Тогда
#3 by denomad
- при таком раскладе документ пытается заблокировать таблицу регистра - счас попробую, спасибо
#4 by denomad
может быть я что-то не так делаю, но у меня ДвиженияРегистра.Количество всегда равно нулу вне зависимости есть у этого документа движения по данному регистру или нет
#5 by asady
ДвиженияРегистра.Количество=0 в обработкеПроведения? или ты смотришь это еще где-нибудь.
#6 by denomad
Именно в обработке проведения. В самом ее начале. Или имелось ввиду, что я эти движения в обработке заполню, а потом вызову Количество и узнаю есть они или нет?
#7 by asady
обычно если надо очистить движения перед проведением то делают так:
#8 by Scooter
#9 by denomad
Согласен. Так можно очистить движения не взирая на то были ли они раньше у этого документа. При этом заблокировать регистр на время проведения и никого к нему не подпускать. Мне же хочется  не блокировать регистр бесполезными очистками движений, если их у документа и так нет. Т.е. Если при перепроведении документа нет движений по данному регистру и они не формируются при перевпроведении зачем что-то очищать? И при этом блокировать общий ресурс (регистр в данном случае). Я и хочу выяснить надо ли его очищать, т.е. есть ли УЖЕ у этого документа по данному регистру движения. И если нет, то не чистить ничего. Проблема в том. что все попытки получить движения данного документа по регистру в ОбработкеПроведения и в ОбработкеУдаленияПроведения хоть запросом, коть ВыбратьПорегистратору заканчиваются попыткой заблокировать регистр, и в случае, если какай-то документ по нему параллельно формирует движения - вылетом обработкипроведения по таймауту ожидания захвата таблицы
#10 by denomad
Если вставить этот код в начало ОбработкиПроведения, то ТаблицаДвижений также всегда пустая ((
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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