alex1248, спасибо за ответ. Очень интересно узнать другую точку зрения. Ваше решение понятное, четко структурированное, легко читается, в общем респект.
В моем решении есть явная ошибка (-1 балл) (и наверное, не одна, так что работы еще море
) - запрос (Если ТекСтрокаСписокНоменклатуры.Номенклатура.Услуга = Ложь) в цикле при записи в регистр остатков. В дальнейшем в такой ситуации из ТЧ номенклатуру без услуг выбираю одним запросом.
alex1248, как Вы понимаете смысл Новой методики контроля остатков? Зачем она нужна и что дает?
В моем понимании, она работает быстрее старой (на уровне платформы), то есть позволяет сократить время проведения документа (это становится ощутимо на больших объемах данных).
В своем решении, в документе РН, Вы сначала делаете списание ОстаткиТоваров по НОВОЙ методике, а затем списываете Партии по СТАРОЙ. У меня же используется Старая методика. Запрос выполняется один, он получает остатки и по Складу и по Партиям и если их хватает, то формируются движения.
В моем понимании смысл НОВОЙ методки заключается в том, что сразу один раз без контроля остатков списал, затем проверил, что нет минусов и все! Поэтому она и применима не везде, а только в том случае, если для формирования движений не нужно предварительно получать данные.
А по Вашей схеме, и правда, "новую" методику можно использовать всегда.
С другой стороны, возможно, Вы правы, а я ошибаюсь, вот только рассудить нас некому ))
Хорошо, если бы к нам заглянул ВСЕВИДЯЩИЙ GROOVY, но вряд ли он найдет время копаться в наших "умных" решениях ))
Я бы сказал, что вопрос не в понимании смысла методики, а в том, 1) когда преподаватели на экзамене посчитают, что она эффективнее, 2) убедить себя, что это именно так. В этом случае, можно будет во время защиты находиться с ними на одной волне, что, надеюсь, повысит шансы.
В общем, когда - на данный момент я придерживаюсь т.з., что новую методику (не проведения, а контроля остатков), надо использовать тогда, когда вот этот самый контроль остатков (и ничего более) можно осуществить без получения данных из этого же самого регистра. Записали, прочитали, если есть нехватка - блокировку сняли - с регистром может работать другой работник. Всё остальное (а оно почти всегда находится) мы осуществляем в другом регистре и только в том случае, если знаем, что остатки корректны, и их даже проверять уже не надо.
Хотя, при моем двухнедельном опыте
работы с "новой" методикой и блокировками, думаю, все же лучше поделиться ссылками на источники:
http://1c.chistov.pro/2013/07/blog-post_25.html - итоговый запрос в конце статьи.
http://forum.chistov.pro/index.php?topic=1036.180 - если взглянуть на задачу, вроде бы, тоже можно без проблем провести "по-старому".
http://forum.chistov.pro/index.php?topic=1310.msg13626#msg13626 - ну и вот это вчера нашел (тоже ссылаются в других темах), со вторым регистром действительно почти всегда можно добиться этого.
Придумал ситуацию, когда невозможно использовать новую методику - например, товар хранится на нескольких складах, нам надо набрать в разных, но не более чем с двух - без получения остатков в разрезе складов записывать нечего, придется считать из базы остатки по всем складам из регистра остатков (если бы он был), значит, новая методика не имеет смысла.