Добрый день. Делаю документ - загрузка реестра, который должен программно создавать и проводить документ Поступление на расчетный счет. (БП 3.0)
Документ создается, заполняется(теоретически правильно), проводится. НО не создаются проводки. Однако если зайти в создай документ, изменить сумму и нажать Провести, то все проводки появляются. В чем проблема? Особо помидорами не закидывайте, в 1с8 новичок.

```1c
    &НаСервере
    Функция СформироватьПоступление(ТекСтрока)
    Если Объект.ТипУслуги = "Техобслуживание" тогда
    ПоступлениеНаСчет = Документы.ПоступлениеНаРасчетныйСчет.СоздатьДокумент();
    ПоступлениеНаСчет.Контрагент = Справочники.Контрагенты.НайтиПоКоду("000002091");
    //ПоступлениеНаСчет.СубконтоКт1 = Справочники.Контрагенты.НайтиПоКоду("000002091");
    //ПоступлениеНаСчет.СубконтоКт2 = Справочники.ДоговорыКонтрагентов.НайтиПоКоду("000000001",,,ПоступлениеНаСчет.Контрагент);

    НоваяСтрока = ПоступлениеНаСчет.РасшифровкаПлатежа.Добавить();
    НоваяСтрока.СчетУчетаРасчетовСКонтрагентом = ПланыСчетов.Хозрасчетный.НайтиПоКоду("57.04"); // это если оплата за ТО от физ лица. А если транспортировка от юр. лица то 62,01 аванс на 62,02
    НоваяСтрока.СчетУчетаРасчетовПоАвансам = ПланыСчетов.Хозрасчетный.НайтиПоКоду("57.04");
    //НоваяСтрока.СубконтоКт1 = Справочники.Контрагенты.НайтиПоКоду("000002091");
    //НоваяСтрока.СубконтоКт2 = Справочники.ДоговорыКонтрагентов.НайтиПоКоду("000000001",,,ПоступлениеНаСчет.Контрагент);

    НоваяСтрока.СтатьяДвиженияДенежныхСредств = Справочники.СтатьиДвиженияДенежныхСредств.НайтиПоКоду("00-000051");
    НоваяСтрока.ДоговорКонтрагента = Справочники.ДоговорыКонтрагентов.НайтиПоКоду("000000001",,,ПоступлениеНаСчет.Контрагент);
    ПоступлениеНаСчет.НазначениеПлатежа = "ТО:л/с "+ТекСтрока.ЛицевойСчет+ ","+ ТекСтрока.ФИО+", "+ТекСтрока.Адрес;
    ИначеЕсли Справочники.Контрагенты.НайтиПоКоду(ТекСтрока.ЛицевойСчет)<> Справочники.Контрагенты.ПустаяСсылка() тогда
    ПоступлениеНаСчет = Документы.ПоступлениеНаРасчетныйСчет.СоздатьДокумент();
    ПоступлениеНаСчет.Контрагент = Справочники.Контрагенты.НайтиПоКоду(ТекСтрока.ЛицевойСчет);
    НоваяСтрока = ПоступлениеНаСчет.РасшифровкаПлатежа.Добавить();
    если ПоступлениеНаСчет.Контрагент.ЮридическоеФизическоеЛицо = Перечисления.ЮридическоеФизическоеЛицо.ЮридическоеЛицо тогда
    НоваяСтрока.СчетУчетаРасчетовСКонтрагентом = ПланыСчетов.Хозрасчетный.НайтиПоКоду("62.01"); // это если оплата за ТО от физ лица. А если транспортировка от юр. лица то 62,01 аванс на 62,02
    НоваяСтрока.СчетУчетаРасчетовПоАвансам = ПланыСчетов.Хозрасчетный.НайтиПоКоду("62.02");
    иначе
    НоваяСтрока.СчетУчетаРасчетовСКонтрагентом = ПланыСчетов.Хозрасчетный.НайтиПоКоду("57.04"); // это если оплата за ТО от физ лица. А если транспортировка от юр. лица то 62,01 аванс на 62,02
    НоваяСтрока.СчетУчетаРасчетовПоАвансам = ПланыСчетов.Хозрасчетный.НайтиПоКоду("57.04");
    КонецЕсли;
    НоваяСтрока.СтатьяДвиженияДенежныхСредств = Справочники.СтатьиДвиженияДенежныхСредств.НайтиПоКоду("00-000053");
    НоваяСтрока.ДоговорКонтрагента = Справочники.ДоговорыКонтрагентов.НайтиПоНаименованию("транспортир",,,ПоступлениеНаСчет.Контрагент);
    ПоступлениеНаСчет.НазначениеПлатежа = "Транс-ка:л/с "+ТекСтрока.ЛицевойСчет+ ","+ ТекСтрока.ФИО+", "+ТекСтрока.Адрес;
    Иначе
    //сообщить("Контрагент: л/с " + ТекСтрока.ЛицевойСчет+ ", "+ТекСтрока.ФИО+ " не найден в базе." );
    Возврат 0;
    КонецЕсли;
    ПоступлениеНаСчет.Дата = ТекСтрока.ДатаПлатежа;
    ПоступлениеНаСчет.ВидОперации = Перечисления.ВидыОперацийПоступлениеДенежныхСредств.ОплатаПокупателя;
    ПоступлениеНаСчет.СчетБанк = ПланыСчетов.Хозрасчетный.НайтиПоКоду("51");
    ПоступлениеНаСчет.СчетОрганизации = Справочники.БанковскиеСчета.НайтиПоКоду("00-000001");
    ПоступлениеНаСчет.СуммаДокумента = ТекСтрока.СуммаПеревода;
    ПоступлениеНаСчет.ВалютаДокумента = Справочники.Валюты.НайтиПоНаименованию("руб");//Константы.ВалютаРегламентированногоУчета.Получить();
    ПоступлениеНаСчет.Организация = Справочники.Организации.ОрганизацияПоУмолчанию(ПользователиИнформационнойБазы.ТекущийПользователь().Имя);
    НоваяСтрока.СпособПогашенияЗадолженности = Перечисления.СпособыПогашенияЗадолженности.Автоматически;
    НоваяСтрока.СуммаПлатежа = ТекСтрока.СуммаПеревода;
    НоваяСтрока.СтавкаНДС = Перечисления.СтавкиНДС.НДС20;
    НоваяСтрока.СуммаНДС = ТекСтрока.СуммаПеревода/1.20*0.2;

    если ПоступлениеНаСчет.ПроверитьЗаполнение() тогда
    сообщение = новый СообщениеПользователю();
    сообщение.Текст = "нет ошибки";
    сообщение.Сообщить();
    конецЕсли;

    если ПоступлениеНаСчет.ЭтоНовый() тогда
    Попытка
    ПоступлениеНаСчет.Записать(РежимЗаписиДокумента.Проведение);
    Исключение
    Сообщение = новый СообщениеПользователю();
    сообщение.Текст=("ошибка есть"+ОписаниеОшибки());
    сообщение.Сообщить();
    КонецПопытки;
    //Попытка
    // ПоступлениеНаСчет.Записать(РежимЗаписиДокумента.Запись);
    //Исключение
    //КонецПопытки;
    КонецЕсли;
    возврат ПоступлениеНаСчет.Ссылка;
    //КонецЕсли;

    КонецФункции
```
---
Все движения делаются по табличной части, а у Вас там как правильно отметили, не заполнены суммы.
Также в таких случаях советую сравнивать документы.
То есть обработкой открываете и смотрите значения всех реквизитов документа. Потом правите документ и и снова смотрите.

Проведение ни чего для заполнения не вызывает, может только проверять.
---
Я не вижу тут у вас формирование движений документа. Только создание, запись и заполнение самого документа, но не движений.
Я так полагаю, вам нужно добавить сюда вызов типовых процедур, которые формируют движения. Найдите их в модуле менеджера(кажется) документа.
---
А разве вот эта запись "ПоступлениеНаСчет.Записать(РежимЗаписиДокумента.Проведение);" Не вызывает их автоматически?
---
вызывает. Только движения формируются по табличной части РасшифровкаПлатежа, необходимые поля в которой вы, судя по вашему коду, не заполнили.
---
В ТЧ РасшифровкаПлатежа тоже есть суммы
---
Все движения делаются по табличной части, а у Вас там как правильно отметили, не заполнены суммы.
Также в таких случаях советую сравнивать документы.
То есть обработкой открываете и смотрите значения всех реквизитов документа. Потом правите документ и и снова смотрите.

Проведение ни чего для заполнения не вызывает, может только проверять.
---
```1c
    ПоступлениеНаСчет.СуммаДокумента = ТекСтрока.СуммаПеревода;
    НоваяСтрока.СуммаПлатежа = ТекСтрока.СуммаПеревода;
    НоваяСтрока.СтавкаНДС = Перечисления.СтавкиНДС.НДС20;
    НоваяСтрока.СуммаНДС = ТекСтрока.СуммаПеревода/1.20*0.2;
```

Так вроде суммы в ТЧ заполнены...

(5) То есть обработкой открываете и смотрите значения всех реквизитов документа
Что за обработка? Не понял :(
---
Либо такая https://infostart.ru/public/100967/
Либо свою написать
---
либо консолью запроса посмотреть два документа "рядом", созданный вручную и созданный автоматически. И найти незаполненные реквизиты.
---
или в отладчике найти условие отказа формирования проводок
---
Всем большое спасибо за ответы. Проблема решилась. Действительно не все реквизиты были заполнены. Обработка https://infostart.ru/public/100967/ помогла решить проблему. Целый день тупил :(
---
Да все проще делается.
Создается один документ ручками.
Затем консолью запросов смотрите, что заполнено, какие реквизиты и программно создаете все точно также.
---
Так тоже делал :) Но уже после того, как носом ткнули