В ряде случаев при обмене либо при неправильном использовании конструкции Источник.ОбменДанными.Загрузка = Истина возможно возникновение ситуации при которой документ не проведен и/или помечен на удаление*, но имеет какие-либо актуальные движения (например проводки по бухгалтерскому или налоговому учету, записи регистров сведений или регистров накопления). Такая ситуация сбивает пользователей - документ помечен на удаление и, по идее, и его данные не должны присутствовать в отчетах, а по факту - присутствуют. Данная обработка ищет такие документы.
Ну и при наличии подобных документов повод программисту посмотреть причины возникновения имеющихся не корректных данных - человеческий фактор или программная ошибка.
*Следует учитывать следующее. В подавляющем большинстве случаев движения документа возникают при проведении. Соответственно при отмене проведения движения "уничтожаются". Но существуют такие документы, которые не проводятся, но движения в них возникают при записи документа, а "исчезают" при пометке на удаление (в частности в конфигурации УПП это документ "Корректировка записей регистров").
Возможные причины возникновения непроведенных документов имеющих активные движения.
1. Некорректно прописанный код при отмене проведения документа. То есть у документа свойство "Удаление движений" стоит отличное от "Удалять автоматически" и программа не корректно удаляет движения. И, скорее всего, такое происходит только при определенных условиях.
2. Неграмотное использование обработок в которых присутствует код Источник.ОбменДанными.Загрузка = Истина. Данный код позволяет записывать документы без проверок и контроля. Значит обработка может записать документ с признаком Проведен=Ложь, при этом движения остаются в исходном виде. Тот же Редактор объекта в Инструментах разработчика - сменил у проведенного документа реквизит Проведен на значение "Нет", записал и получил непроведенный документ с движениями.
3. Работа с одним документом на разных узлах стандартного обмена РИБ.
Ситуация. Создан документ (он не проведён). По обмену ушел в узел. На подчиненном узле его провели. На главном узле его перезаписали (да хотя бы поставили отметку на удаление). При следующем обмене получим непроведенный документ имеющий движения.
Причины такого результата. Во-первых, объекты пришедшие по обмену РИБ записываются без анализа и контроля. Во-вторых, если объект (в данном случае документ) изменен и на главном и на подчиненном узле, то приоритет получет состояние объекта из главного узла. В-третьих, при создании и изменении документа на обмен регистрируются только сам документ, без движений. Движения на обмен регистрируются только при проведении или отмене проведения. В-четвертых, для ОБМЕНА РИБ документ и каждое его движение это ОТДЕЛЬНЫЙ независимый объект.
И в итоге получаем. На главном узле документ не проведен и без движений и при его записи на обмен регистриуется только документ без движений. На подчиненном узле проведенный документ с движениями. При обмене документ из главного узла "затирает" документ из подчиненного узла (и получаем не проведенный документ). При этом движения из подчиненного узла нормально "приходят" в главный узел (как мы помним из главного узла движения не "придут").
Кстати для информации - наличие в файле обмена РИБ только движений без самого документа вероятный признак вышеописанной ситуации (ну если стоит авторегистрация и не было "ручной" регистрации на обмен только движений либо в конфигурации движение документа может быть изменено не только владельцем движения (на моей памяти в УАТе документ Путевой лист при изменении даты менял период в регистре у подчиненного документа ТоварноТранспортнаяНакладная)).
Похожие публикации:
//infostart.ru/public/86185/
//infostart.ru/public/138265/
В отличие от этих публикаций в предлагаемой обработке поиск идет по всем движениям документа (не только проводки). Плюс всякие "плюшки" и удобности для пользователя.