GROOVY, Спасибо за выложенное решение.
Не то чтобы критика
, но хотел бы воспользоваться тем, что Вы выложили свое решение и задать несколько вопросов по обработке проведения Расходной.
1. Насколько критична блокировка по периоду: ЭлементБлокировки.УстановитьЗначение("Период", Новый Диапазон( , Дата)); ? Просто раньше я не видел такой строчки. Правильно ли я понял, что мы блокируем записи регистра вплоть до даты документа, то есть, таким образом, позволяем документам с более поздней датой беспрепятственно читать/писать в регистр?
2. Почему движения чистите только при Оперативном проведении? А если поменяли время вчерашнего документа на более позднее? Вроде бы в задаче не сказано, что пользователь не может менять, например, время вчерашнего документа... Кроме того, у Вас в документе РасходнаяНакладная ОперативноеПроведение = Запретить.
3. Для чего 2 цикла по результату запроса? Можно ли было сразу в первом цикле после проверки отрицательных остатков написать Если НЕ Отказ Тогда формируем движения?
4. Для блокировки используете результат запроса к ТЧ документа. Это делается, чтобы сгруппировать по номенклатуре и инв номеру? Не будет ли ошибкой в качестве источника данных просто взять табличную часть?
Заранее спасибо за ответы.