Пытаюсь дополнить документ проводками по регистру сведений ОперацииСПрослеживаемымиТоварами и регистру накопления ПрослеживаемыеТовары.

В модуле объекта

```1c
    УсловияПрослеживаемости = Новый Структура;

    УсловияПрослеживаемости.Вставить("ВедетсяУчетПрослеживаемыхТоваров", ПолучитьФункциональнуюОпцию("ВестиУчетПрослеживаемыхТоваров")
    И ПрослеживаемостьБРУ.ВедетсяУчетПрослеживаемыхТоваров(СтруктураШапкиДокумента.Дата));

    Если УсловияПрослеживаемости.ВедетсяУчетПрослеживаемыхТоваров Тогда
    Документы.ОИТ_ТребованиеНакладнаяПоЛимиткамЗаПериод.ДвиженияПоРегистрамПрослеживаемыхТоваров(СтруктураШапкиДокумента, ТаблицаМатериалов);

    КонецЕсли;
```

Далее отладчик переходим в модуть менеджера дорабатываемого документа

```1c
    Процедура ДвиженияПоРегистрамПрослеживаемыхТоваров(СтруктураШапкиДокумента, ТаблицаСумм = Неопределено) Экспорт

    УчетнаяПолитикаРегл = ОбщегоНазначения.ПолучитьПараметрыУчетнойПолитики(СтруктураШапкиДокумента.Дата, ЛОЖЬ, СтруктураШапкиДокумента.Организация, , Истина);

    Запрос = Новый Запрос;
    Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
    Запрос.УстановитьПараметр("Ссылка", СтруктураШапкиДокумента.Ссылка);

    НомераТаблиц = Новый Структура;
    ПараметрыПроведения = Новый Структура;

    УсловияПрослеживаемости = Новый Структура;
    УсловияПрослеживаемости.Вставить("ВедетсяУчетПрослеживаемыхТоваров", ПолучитьФункциональнуюОпцию("ВестиУчетПрослеживаемыхТоваров")
    И ПрослеживаемостьБРУ.ВедетсяУчетПрослеживаемыхТоваров(СтруктураШапкиДокумента.Дата));

    Запрос.Текст = Документы.ОИТ_ТребованиеНакладнаяПоЛимиткам.ТекстЗапросаПрослеживаемыеТовары(НомераТаблиц, ПараметрыПроведения, УсловияПрослеживаемости);

    Если НЕ ПустаяСтрока(Запрос.Текст) Тогда
    Результат = Запрос.ВыполнитьПакет();

    Для Каждого НомерТаблицы Из НомераТаблиц Цикл
    ПараметрыПроведения.Вставить(НомерТаблицы.Ключ, Результат[НомерТаблицы.Значение].Выгрузить());
    КонецЦикла;
    КонецЕсли;

    Если УсловияПрослеживаемости.ВедетсяУчетПрослеживаемыхТоваров Тогда
    ТаблицаРеквизиты = ПрослеживаемостьБП.СтруктуруВТаблицуЗначений(СтруктураШапкиДокумента);

    Если НЕ ТаблицаСумм = Неопределено Тогда
    Для каждого Строка Из ПараметрыПроведения.ПрослеживаемыеОперации Цикл
    СтрокаССуммой = ТаблицаСумм.Найти(Строка.ИдентификаторСтроки, "ИдСтрокиПрослеживаемогоТовара");

    Если ЗначениеЗаполнено(СтрокаССуммой) Тогда
    Строка.СуммаБезНДС = СтрокаССуммой.Стоимость;
    КонецЕсли;
    КонецЦикла;

    ПараметрыПроведения.ПрослеживаемыеОперации.Свернуть("ДатаДокумента, ДокументОперации, КодОперации, Контрагент,
    |Номенклатура, НомерДокумента, ОтражениеВОтчетности, ПериодОперации, РНПТ, ТипДокументаВПрослеживаемости",
    "СуммаБезНДС, Количество, КоличествоПрослеживаемости");
    КонецЕсли;

    ПрослеживаемостьБП.СформироватьДвиженияРеализацияТоваров(
    ПараметрыПроведения.ПрослеживаемыеТовары,
    ПараметрыПроведения.ПрослеживаемыеОперации,
    ТаблицаРеквизиты,
    СтруктураШапкиДокумента.Ссылка.ПолучитьОбъект().Движения);

    КонецЕсли;

    КонецПроцедуры
```

Затем переходим в общий модуль ПрослеживаемостьБП

```1c
    Процедура СформироватьДвиженияРеализацияТоваров(ТаблицаТовары, ТаблицаОперации, ТаблицаРеквизиты, Движения) Экспорт

    Если Не ЗначениеЗаполнено(ТаблицаРеквизиты) Тогда
    Возврат;
    КонецЕсли;

    ОбщиеПараметры = ПодготовитьОбщиеПараметры(ТаблицаРеквизиты);
    Реквизиты = ОбщиеПараметры.Реквизиты[0];

    СформироватьДвиженияПрослеживаемыхТоваров(ТаблицаТовары, Реквизиты, Движения, Истина);

    СформироватьДвиженияОперацииСПрослеживаемымиТоварами(ТаблицаОперации, Реквизиты, Движения, ТаблицаРеквизиты);

    КонецПроцедуры

    Процедура СформироватьДвиженияОперацииСПрослеживаемымиТоварами(ТаблицаОперации, Реквизиты, Движения, ТаблицаРеквизиты = Неопределено) Экспорт

    Если Не ЗначениеЗаполнено(ТаблицаОперации) Тогда
    Возврат;
    КонецЕсли;

    Параметры = ПодготовитьПараметрыОперацииСПрослеживаемымиТоварами(ТаблицаОперации);

    Для Каждого СтрокаТаблицы Из Параметры.Операции Цикл
    Запись = Движения.ОперацииСПрослеживаемымиТоварами.Добавить();

    Запись.Период = Реквизиты.Дата;

    Если ТаблицаРеквизиты <> Неопределено Тогда
    Если ТаблицаРеквизиты.Колонки.Найти("ВалютаДокумента") <> Неопределено
    И ТаблицаРеквизиты.Колонки.Найти("ВалютаРегламентированногоУчета") <> Неопределено
    И ТаблицаРеквизиты.Колонки.Найти("КурсДокумента") <> Неопределено
    И ТаблицаРеквизиты.Колонки.Найти("КратностьДокумента") <> Неопределено Тогда
    Если НЕ ТаблицаРеквизиты[0].ВалютаДокумента = ТаблицаРеквизиты[0].ВалютаРегламентированногоУчета Тогда
    Данные = МодульВалютногоУчета.ПолучитьКурсВалюты(ТаблицаРеквизиты[0].ВалютаРегламентированногоУчета, ТаблицаРеквизиты[0].Дата);

    СтрокаТаблицы.СуммаБезНДС = МодульВалютногоУчета.ПересчитатьИзВалютыВВалюту(СтрокаТаблицы.СуммаБезНДС, ТаблицаРеквизиты[0].ВалютаДокумента,
    ТаблицаРеквизиты[0].ВалютаРегламентированногоУчета,
    ТаблицаРеквизиты[0].КурсДокумента,
    Данные.Курс,
    ТаблицаРеквизиты[0].КратностьДокумента,
    Данные.Кратность);
    КонецЕсли;
    КонецЕсли;
    КонецЕсли;

    ЗаполнитьЗначенияСвойств(Запись, Реквизиты);
    ЗаполнитьЗначенияСвойств(Запись, СтрокаТаблицы);
    Если СтрокаТаблицы.ОтражениеВОтчетности <> Перечисления.ПорядокОтраженияВОтчетностиПоПрослеживаемости.ОтчетОбОперациях Тогда
    Запись.СуммаБезНДС = Окр(Запись.СуммаБезНДС, 0);
    КонецЕсли;
    КонецЦикла;

    Если ТипЗнч(Реквизиты.Ссылка) = Тип("ДокументСсылка.СписаниеТоваров")
    //ОИТ_Савина Прослеживмость 07.2022г. +
    ИЛИ ТипЗнч(Реквизиты.Ссылка) = Тип("ДокументСсылка.ОИТ_ТребованиеНакладнаяПоЛимиткамЗаПериод")
    //ОИТ_Савина Прослеживмость 07.2022г. -
    ИЛИ ТипЗнч(Реквизиты.Ссылка) = Тип("ДокументСсылка.ТребованиеНакладная") Тогда
    // Движения.ОперацииСПрослеживаемымиТоварами.Записать(ИСТИНА);
    Движения.ОперацииСПрослеживаемымиТоварами.Записывать = Истина;
    Иначе
    Движения.ОперацииСПрослеживаемымиТоварами.Записывать = Истина;
    КонецЕсли;

    КонецПроцедуры

    Процедура СформироватьДвиженияОперацииСПрослеживаемымиТоварами(ТаблицаОперации, Реквизиты, Движения, ТаблицаРеквизиты = Неопределено) Экспорт

    Если Не ЗначениеЗаполнено(ТаблицаОперации) Тогда
    Возврат;
    КонецЕсли;

    Параметры = ПодготовитьПараметрыОперацииСПрослеживаемымиТоварами(ТаблицаОперации);

    Для Каждого СтрокаТаблицы Из Параметры.Операции Цикл
    Запись = Движения.ОперацииСПрослеживаемымиТоварами.Добавить();

    Запись.Период = Реквизиты.Дата;

    Если ТаблицаРеквизиты <> Неопределено Тогда
    Если ТаблицаРеквизиты.Колонки.Найти("ВалютаДокумента") <> Неопределено
    И ТаблицаРеквизиты.Колонки.Найти("ВалютаРегламентированногоУчета") <> Неопределено
    И ТаблицаРеквизиты.Колонки.Найти("КурсДокумента") <> Неопределено
    И ТаблицаРеквизиты.Колонки.Найти("КратностьДокумента") <> Неопределено Тогда
    Если НЕ ТаблицаРеквизиты[0].ВалютаДокумента = ТаблицаРеквизиты[0].ВалютаРегламентированногоУчета Тогда
    Данные = МодульВалютногоУчета.ПолучитьКурсВалюты(ТаблицаРеквизиты[0].ВалютаРегламентированногоУчета, ТаблицаРеквизиты[0].Дата);

    СтрокаТаблицы.СуммаБезНДС = МодульВалютногоУчета.ПересчитатьИзВалютыВВалюту(СтрокаТаблицы.СуммаБезНДС, ТаблицаРеквизиты[0].ВалютаДокумента,
    ТаблицаРеквизиты[0].ВалютаРегламентированногоУчета,
    ТаблицаРеквизиты[0].КурсДокумента,
    Данные.Курс,
    ТаблицаРеквизиты[0].КратностьДокумента,
    Данные.Кратность);
    КонецЕсли;
    КонецЕсли;
    КонецЕсли;

    ЗаполнитьЗначенияСвойств(Запись, Реквизиты);
    ЗаполнитьЗначенияСвойств(Запись, СтрокаТаблицы);
    Если СтрокаТаблицы.ОтражениеВОтчетности <> Перечисления.ПорядокОтраженияВОтчетностиПоПрослеживаемости.ОтчетОбОперациях Тогда
    Запись.СуммаБезНДС = Окр(Запись.СуммаБезНДС, 0);
    КонецЕсли;
    КонецЦикла;

    Если ТипЗнч(Реквизиты.Ссылка) = Тип("ДокументСсылка.СписаниеТоваров")
    //ОИТ_Савина Прослеживмость 07.2022г. +
    ИЛИ ТипЗнч(Реквизиты.Ссылка) = Тип("ДокументСсылка.ОИТ_ТребованиеНакладнаяПоЛимиткамЗаПериод")
    //ОИТ_Савина Прослеживмость 07.2022г. -
    ИЛИ ТипЗнч(Реквизиты.Ссылка) = Тип("ДокументСсылка.ТребованиеНакладная") Тогда
    // Движения.ОперацииСПрослеживаемымиТоварами.Записать(ИСТИНА);
    Движения.ОперацииСПрослеживаемымиТоварами.Записывать = Истина;
    Иначе
    Движения.ОперацииСПрослеживаемымиТоварами.Записывать = Истина;
    КонецЕсли;

    КонецПроцедуры
```

В итоге... когда отладчик в общем модуле ПрослеживаемостьБП в ригистрах ОперацииСПрослеживаемымиТоварами и Прослеживаемые товары движения есть. Когда возвращаемся в документ движения пропадают. По завершении операции проведения движения только по хозрасчетному регистру.
Что не так?
---
ошибка скорее всего здесь

```1c
    ПрослеживаемостьБП.СформироватьДвиженияРеализацияТоваров(
    ПараметрыПроведения.ПрослеживаемыеТовары,
    ПараметрыПроведения.ПрослеживаемыеОперации,
    ТаблицаРеквизиты,
    СтруктураШапкиДокумента.Ссылка.ПолучитьОбъект().Движения);
```

СтруктураШапкиДокумента.Ссылка.ПолучитьОбъект().Движения);- вы создаете НОВЫЙ объект с новым набором движений!!!
попробуйте через свою структуру передать как раз ссылку на движения ТЕКУЩЕГО документа объекта

что бы такой код был

```1c
    ПрослеживаемостьБП.СформироватьДвиженияРеализацияТоваров(
    ПараметрыПроведения.ПрослеживаемыеТовары,
    ПараметрыПроведения.ПрослеживаемыеОперации,
    ТаблицаРеквизиты,
    СтруктураШапкиДокумента.Движения);
```
---
найдите где формируете СтруктураШапкиДокумента
и где добавляете
СтруктураШапкиДокумента.вставить("Ссылка", Ссылка);
там же добавьте и движения
СтруктураШапкиДокумента.вставить("Движения", Движения);

сохранитесь и должно заработать
---
ошибка скорее всего здесь

```1c
    ПрослеживаемостьБП.СформироватьДвиженияРеализацияТоваров(
    ПараметрыПроведения.ПрослеживаемыеТовары,
    ПараметрыПроведения.ПрослеживаемыеОперации,
    ТаблицаРеквизиты,
    СтруктураШапкиДокумента.Ссылка.ПолучитьОбъект().Движения);
```

СтруктураШапкиДокумента.Ссылка.ПолучитьОбъект().Движения);- вы создаете НОВЫЙ объект с новым набором движений!!!
попробуйте через свою структуру передать как раз ссылку на движения ТЕКУЩЕГО документа объекта

что бы такой код был

```1c
    ПрослеживаемостьБП.СформироватьДвиженияРеализацияТоваров(
    ПараметрыПроведения.ПрослеживаемыеТовары,
    ПараметрыПроведения.ПрослеживаемыеОперации,
    ТаблицаРеквизиты,
    СтруктураШапкиДокумента.Движения);
```
---
СтруктураШапкиДокумента.Движения - нет такого реквизита, выдает ошибку не найден.

СтруктураШапкиДокумента.Ссылка.ПолучитьОбъект().Движения - я же получаю проводимый документ по ссылке
---
СтруктураШапкиДокумента.Движения - нет такого реквизита, ругается не найден.
СтруктураШапкиДокумента.Ссылка.ПолучитьОбъект().Движения - в др конфигурации этот код рабочий, есть движения по регистрам
---
найдите где формируете СтруктураШапкиДокумента
и где добавляете
СтруктураШапкиДокумента.вставить("Ссылка", Ссылка);
там же добавьте и движения
СтруктураШапкиДокумента.вставить("Движения", Движения);

сохранитесь и должно заработать
---
Да, заработало! Спасибо огромное!