Стандартная обработка StandardDocumentsPostingMy
"Все функции - Стандартные - Проведение документов" (БСП 3.0.1.418)

Производиться выборка проведенных документов и их перепроведение.
в функции делающей выборку документов за дату DoPortionPostAtServer

в полученной выборке у документов все движения пустые. ПОЧЕМУ?

ПОДРОБНЕЕ:
У выбранных документов установлен признак проведения

```1c
    DocObject = SelectionDetailRecords.Ref.GetObject();
```

но движения пустые.
Движения появляются после проведения

```1c
    DocObject.Write(DocumentWriteMode.Posting);
```

Явной отмены проведения я не вижу.

ВОПРОС: Почему у объекта полученного из ссылки в выборке пустые движения если он проведен?
Или я не вижу момента отмены проведения?
---
Охохо...

```1c
    DocObject = SelectionDetailRecords.Ref.GetObject();
    DocObject.Движения.Хозрасчетный.Прочитать();
    //после того как прочитали движения, в DocObject.Движения.Хозрасчетный - будут движения
```

Это же основы.
---
Коненчо. У Прочитать() нет возвращаемого значения, поэтому отладчик ничего не покажет...
---
Наличие признака проведения у документа не означает наличие движений. Можно установить признак проведения, но не проводить.
---
Документы были проведены и имели движения (до выполнения обработки)
---
Удивительно, но документ может быть помечен на удаление и иметь движения ))
---
Странно видеть такой вопрос у столь опытного автора
---
Документ можно вручную отредактировать через внешнюю обработку и удалить движения или поставить признак проведения.
---
И наоборот.
---
Вопрос не почему исчезли, а почему не видны...
---
Вам ответили уже в (7) - при получении объекта движения не считываются.
---
А вы как движения смотрите? У объекта Объект.Движения? Если так. То надо их в начале Объект.Движения.ТоварыНаСкладах.Прочитать()
---
Прочитать()

Функция на &AtServerNoContext

так пустые движения
РегистрыБухгалтерии.Хозрасчетный.ВыбратьПоРегистратору(SelectionDetailRecords.Ref)
или
SelectionDetailRecords.Ref.GetObject().Движения.Хозрасчетный

так ошибка "{(1)}: Метод объекта не обнаружен (Прочитать)"
РегистрыБухгалтерии.Хозрасчетный.ВыбратьПоРегистратору(SelectionDetailRecords.Ref).Прочитать()
или
SelectionDetailRecords.Ref.GetObject().Движения.Хозрасчетный.Прочитать()

после
DocObject.Write(DocumentWriteMode.Posting);

есть движения по
РегистрыБухгалтерии.Хозрасчетный.ВыбратьПоРегистратору(SelectionDetailRecords.Ref)
или
SelectionDetailRecords.Ref.GetObject().Движения.Хозрасчетный

До вызова обработки документы имели движения!!!!
---
```1c
    РегистрыБухгалтерии.Хозрасчетный.ВыбратьПоРегистратору(SelectionDetailRecords.Ref).Прочитать()
```
 У выборки и нет метода Прочитать(), конечно же...

```1c
    SelectionDetailRecords.Ref.GetObject().Движения.Хозрасчетный.Прочитать()
```
 В порядке предположения: в одной строке нельзя каскадно помещать два метода, обращающиеся к СУБД.
---
одной строке нельзя каскадно помещать два метода, обращающиеся к СУБД.

Про выборку это я погарячился.

Просто я уже в конфигураторе перепробовал кучу методов/способов...
---
Так тоже пробовали?

```1c
    DocObject = SelectionDetailRecords.Ref.GetObject();
    DocObject.Движения.Хозрасчетный.Прочитать();
```
---
Так тоже пробовали?
---
Охохо...

```1c
    DocObject = SelectionDetailRecords.Ref.GetObject();
    DocObject.Движения.Хозрасчетный.Прочитать();
    //после того как прочитали движения, в DocObject.Движения.Хозрасчетный - будут движения
```

Это же основы.
---
//после того как прочитали движения, в DocObject.Движения.Хозрасчетный - будут движения

Спасибо.

На N-ій день "аврала" - и на таком споткнёшься...
---
Коненчо. У Прочитать() нет возвращаемого значения, поэтому отладчик ничего не покажет...
---
1) Выборка
2) Текущий элемент выборки

```1c
    DocObject = SelectionDetailRecords.Ref.GetObject();
```

DocObject.Движения[3] - пустое

запишем

```1c
    DocObject.Write(DocumentWriteMode.Posting);
```

DocObject.Движения[3] - есть движения
---
Конечно. Так и должно быть.
---
Ко всему прочему: Объект - движения - Прочитать()
аналогичный результат: Объект - записать(проведение)
---
Совсем не обязательно.
Прочитать() - читает те движения, которые на момент чтения есть в регистре.
Объект - записать(проведение) - при перепроведении движения формируются заново и записываются в регистр.
Они могут измениться, например, может сумма в проводках измениться, если она рассчитывается как средняя.
---
Это понятно. Имелось в виду что у объекта "появляются" (становятся доступны) движения...
---
Ну да, потому что типовая запись в типовых решениях идет же через Объект.Движения.Регистр.Загрузить(ТаблицаДвижения). Или как-то так.