Не могу понять как в цикле добалять проводки к документу ОперацияБух в БП 3.0. Ведь табличной части в нем нет. Делаю так: создаю пустой документ, записываю. Потом в цикле пытаюсь добавить к нему проводки, вызывая процедуру

```1c
    &НаСервере
    Процедура СоздатьПроводкуБух(Струк)
    ДокСсылка = Документы.ОперацияБух.НайтиПоНомеру(Струк.НомерДока, Струк.ДатаДока);
    Если НЕ ДокСсылка.Пустая() Тогда
    Док = ДокСсылка.ПолучитьОбъект();
    Проводка = Док.Движения.Хозрасчетный.Добавить();
    Проводка.Активность = Истина;
    Проводка.Сумма = Струк.Сумма;
    Проводка.Регистратор = Док.Ссылка;
    Проводка.Организация = Док.Организация;
    Проводка.Период = Струк.ДатаДока;
    Проводка.Содержание = Струк.Содержание;
    Проводка.СчетДт = ОпределитьСчет(Струк.СчетДт);
    Проводка.СубконтоДт.Вставить(Проводка.СчетДт.ВидыСубконто.Получить(0).ВидСубконто, ЗаполнитьСубконто(Струк,Проводка.СчетДт,0,Струк.СубконтоДт));
    Проводка.СубконтоДт.Вставить(Проводка.СчетДт.ВидыСубконто.Получить(1).ВидСубконто, ЗаполнитьСубконто(Струк,Проводка.СчетДт,1,Струк.СубконтоДт));
    Проводка.СубконтоДт.Вставить(Проводка.СчетДт.ВидыСубконто.Получить(2).ВидСубконто, ЗаполнитьСубконто(Струк,Проводка.СчетДт,2,Струк.СубконтоДт));
    Проводка.ПодразделениеДт = Справочники.ПодразделенияОрганизаций.НайтиПоКоду(Струк.ПодразделениеДт);
    Проводка.СчетКт = ОпределитьСчет(Струк.СчетКт);
    Проводка.СубконтоКт.Вставить(Проводка.СчетКт.ВидыСубконто.Получить(0).ВидСубконто, ЗаполнитьСубконто(Струк,Проводка.СчетКт,0,Струк.СубконтоКт));
    Проводка.СубконтоКт.Вставить(Проводка.СчетКт.ВидыСубконто.Получить(1).ВидСубконто, ЗаполнитьСубконто(Струк,Проводка.СчетКт,1,Струк.СубконтоКт));
    Проводка.СубконтоКт.Вставить(Проводка.СчетКт.ВидыСубконто.Получить(2).ВидСубконто, ЗаполнитьСубконто(Струк,Проводка.СчетКт,2,Струк.СубконтоКт));
    Проводка.ПодразделениеКт = Справочники.ПодразделенияОрганизаций.НайтиПоКоду(Струк.ПодразделениеКт);
    Док.Движения.Хозрасчетный.Записать();
    Док.Записать(РежимЗаписиДокумента.Запись);
    Иначе
    Сообщить("Не найден документ "+Струк.НомерДока+" от "+Струк.ДатаДока, СтатусСообщения.Важное);
    КонецЕсли;
    КонецПроцедуры
```

в результате получаю только одну последнюю проводку и всё.
Что я делаю не так?

ЗЫ. На определение счета и субконт внимания не обращайте - там всё так.
---
вопрос снят
решил вот таким кодом

```1c
    &НаСервере
    Процедура СоздатьПроводкуБух(Струк)
    Док = Документы.ОперацияБух.НайтиПоНомеру(Струк.НомерДока, Струк.ДатаДока);
    Если НЕ Док.Пустая() Тогда
    Набор = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
    Набор.Отбор.Регистратор.Установить(Док.Ссылка);
    Набор.Прочитать();
    Проводка = Набор.Добавить();
    Проводка.Активность = Истина;
    Проводка.Сумма = Струк.Сумма;
    Проводка.Организация = Струк.Организация;
    Проводка.Период = Струк.ДатаДока;
    Проводка.Содержание = Струк.Содержание;
    Проводка.СчетДт = ОпределитьСчет(Струк.СчетДт);
    Проводка.СубконтоДт.Вставить(Проводка.СчетДт.ВидыСубконто.Получить(0).ВидСубконто, ЗаполнитьСубконто(Струк,Проводка.СчетДт,0,Струк.СубконтоДт));
    Проводка.СубконтоДт.Вставить(Проводка.СчетДт.ВидыСубконто.Получить(1).ВидСубконто, ЗаполнитьСубконто(Струк,Проводка.СчетДт,1,Струк.СубконтоДт));
    Проводка.СубконтоДт.Вставить(Проводка.СчетДт.ВидыСубконто.Получить(2).ВидСубконто, ЗаполнитьСубконто(Струк,Проводка.СчетДт,2,Струк.СубконтоДт));
    Проводка.ПодразделениеДт = Справочники.ПодразделенияОрганизаций.НайтиПоКоду(Струк.ПодразделениеДт);
    Проводка.СчетКт = ОпределитьСчет(Струк.СчетКт);
    Проводка.СубконтоКт.Вставить(Проводка.СчетКт.ВидыСубконто.Получить(0).ВидСубконто, ЗаполнитьСубконто(Струк,Проводка.СчетКт,0,Струк.СубконтоКт));
    Проводка.СубконтоКт.Вставить(Проводка.СчетКт.ВидыСубконто.Получить(1).ВидСубконто, ЗаполнитьСубконто(Струк,Проводка.СчетКт,1,Струк.СубконтоКт));
    Проводка.СубконтоКт.Вставить(Проводка.СчетКт.ВидыСубконто.Получить(2).ВидСубконто, ЗаполнитьСубконто(Струк,Проводка.СчетКт,2,Струк.СубконтоКт));
    Проводка.ПодразделениеКт = Справочники.ПодразделенияОрганизаций.НайтиПоКоду(Струк.ПодразделениеКт);
    Набор.Записать(Истина);
    Иначе
    Сообщить("Не найден документ "+Струк.НомерДока+" от "+Струк.ДатаДока, СтатусСообщения.Важное);
    КонецЕсли;
    КонецПроцедуры
```
---
1. зачем вы ищите документ? У вас есть ссылка на него после записи.

2. Необходимо в цикле выполнять весь код, начинающийся на "Проводка".

3. Док.Движения.Хозрасчетный.Записать() необходимо вынести за переделы цикла из п.2

4. Повторно записывать сам документ после записи проводок нет необходимости.
---
Как пример, абсолютно точно работающие обработки и тестировались на последних версиях БУХ 3.0...
---
Еще примеры, но уже не совсем бесплатные (за $m):
https://infostart.ru/public/994326/
https://infostart.ru/public/630456/

Бесплатно - обсуждения:
https://forum.infostart.ru/forum9/topic116963/
https://forum.infostart.ru/forum9/topic193075/

И так далее...
---
вопрос снят
решил вот таким кодом

```1c
    &НаСервере
    Процедура СоздатьПроводкуБух(Струк)
    Док = Документы.ОперацияБух.НайтиПоНомеру(Струк.НомерДока, Струк.ДатаДока);
    Если НЕ Док.Пустая() Тогда
    Набор = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
    Набор.Отбор.Регистратор.Установить(Док.Ссылка);
    Набор.Прочитать();
    Проводка = Набор.Добавить();
    Проводка.Активность = Истина;
    Проводка.Сумма = Струк.Сумма;
    Проводка.Организация = Струк.Организация;
    Проводка.Период = Струк.ДатаДока;
    Проводка.Содержание = Струк.Содержание;
    Проводка.СчетДт = ОпределитьСчет(Струк.СчетДт);
    Проводка.СубконтоДт.Вставить(Проводка.СчетДт.ВидыСубконто.Получить(0).ВидСубконто, ЗаполнитьСубконто(Струк,Проводка.СчетДт,0,Струк.СубконтоДт));
    Проводка.СубконтоДт.Вставить(Проводка.СчетДт.ВидыСубконто.Получить(1).ВидСубконто, ЗаполнитьСубконто(Струк,Проводка.СчетДт,1,Струк.СубконтоДт));
    Проводка.СубконтоДт.Вставить(Проводка.СчетДт.ВидыСубконто.Получить(2).ВидСубконто, ЗаполнитьСубконто(Струк,Проводка.СчетДт,2,Струк.СубконтоДт));
    Проводка.ПодразделениеДт = Справочники.ПодразделенияОрганизаций.НайтиПоКоду(Струк.ПодразделениеДт);
    Проводка.СчетКт = ОпределитьСчет(Струк.СчетКт);
    Проводка.СубконтоКт.Вставить(Проводка.СчетКт.ВидыСубконто.Получить(0).ВидСубконто, ЗаполнитьСубконто(Струк,Проводка.СчетКт,0,Струк.СубконтоКт));
    Проводка.СубконтоКт.Вставить(Проводка.СчетКт.ВидыСубконто.Получить(1).ВидСубконто, ЗаполнитьСубконто(Струк,Проводка.СчетКт,1,Струк.СубконтоКт));
    Проводка.СубконтоКт.Вставить(Проводка.СчетКт.ВидыСубконто.Получить(2).ВидСубконто, ЗаполнитьСубконто(Струк,Проводка.СчетКт,2,Струк.СубконтоКт));
    Проводка.ПодразделениеКт = Справочники.ПодразделенияОрганизаций.НайтиПоКоду(Струк.ПодразделениеКт);
    Набор.Записать(Истина);
    Иначе
    Сообщить("Не найден документ "+Струк.НомерДока+" от "+Струк.ДатаДока, СтатусСообщения.Важное);
    КонецЕсли;
    КонецПроцедуры
```