Обновление создаваемого программно документа

Версия для печатиPDF-версия

Платформа:

Документы создались, но в итоговой строке пусто(

Что надо добавить в коде, чтобы заполнилась итоговая строка? Функция вот:

&НаСервере
Функция ВводНаОснованииНаСервере()
//Создание по табличной части №1-10
 
Для Сч = 1 По 10 Цикл
ИмяТЧ = "ТЧПос" + Строка(Сч);
ПартнерП    = "Партнер_"    + Строка(Сч);
КонтрагентП = "Контрагент_" + Строка(Сч);
КурсУЕР     = "КурсУЕОбщий"      + Строка(Сч);
Если Объект[ИмяТЧ].Количество()>0 Тогда
ДокументПТиУ = Документы.ПоступлениеТоваровУслуг.СоздатьДокумент();
ДокументПТиУ.Дата        = Объект.Дата;
ДокументПТиУ.Партнер     = Объект[ПартнерП];
ДокументПТиУ.Контрагент  = Объект[КонтрагентП];
ДокументПТиУ.Организация = Объект.Организация;
ДокументПТиУ.Склад       = Объект.Склад;
ДокументПТиУ.ДатаПлатежа = Объект.Дата;
ДокументПТиУ.Валюта      = Константы.ВалютаРегламентированногоУчета.Получить();
ДокументПТиУ.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ЗакупкаУПоставщика;
ДокументПТиУ.ВалютаВзаиморасчетов  = Константы.ВалютаРегламентированногоУчета.Получить();
ДокументПТиУ.Комментарий = "Валютный курс на дату поступления: " + Объект[КурсУЕР];
ДокументПТиУ.НалогообложениеНДС  = Перечисления.ТипыНалогообложенияНДС.ПродажаНеОблагаетсяНДС;
 
Для Каждого ЭлементТЧ Из Объект[ИмяТЧ] Цикл
НоваяСтрока = ДокументПТиУ.Товары.Добавить();
НоваяСтрока.Номенклатура = ЭлементТЧ.Номенклатура;
НоваяСтрока.Упаковка     = ЭлементТЧ.Номенклатура.ЕдиницаИзмерения;
НоваяСтрока.Количество   = ЭлементТЧ.Количество;
НоваяСтрока.Склад        = Объект.Склад;
НоваяСтрока.КоличествоУпаковок   = ЭлементТЧ.Количество;
НоваяСтрока.Цена         = ЭлементТЧ.ЦенаР;
НоваяСтрока.Сумма        = ЭлементТЧ.СуммаР;
НоваяСтрока.СтавкаНДС    = Перечисления.СтавкиНДС.БезНДС;
КонецЦикла;
 
ДокументПТиУ.СуммаВзаиморасчетов = Объект[ИмяТЧ].Итог("СуммаР");
ДокументПТиУ.СуммаДокумента      = Объект[ИмяТЧ].Итог("СуммаР");
ДокументПТиУ.Записать();
ДокументПТиУ.Прочитать();
 
Сообщить("Создан документ: " + ДокументПТиУ +"!")
Иначе
Сообщить("Документы не были созданы!")
КонецЕсли;
КонецЦикла;
 
КонецФункции
 

Вот скриншот


Попробуйте при заполнении ТЧ помимо Суммы заполнять СуммуСНДС.

А если она нулевая - просто поставить 0?

 

Попробовал - не прокатило - вычеркиваем)

По идее она должна быть равна Сумме.

Да я так и поставил по коду - я подозреваю, что надо обновить форму создаваемого документа... Но не уверен

А при чём здесь форма? Документ же создётся программно и даже форма его не открывается.

Блин, я тогда же и не знаю чего придумать - суммы дока все есть, в тч они проставлены.... :(

Блин, получилось, в чем затык был не понятно, но на пожарный приведу рабочий код:

&НаКлиенте
Процедура ВводНаОснованииНаКлиенте(Команда)
Если НЕ ЗначениеЗаполнено(Объект.Склад) Тогда
ПоказатьПредупреждение(,"Заполните склад!");
Возврат;
КонецЕсли;
 
Если НЕ ЗначениеЗаполнено(Объект.Организация) Тогда
ПоказатьПредупреждение(,"Заполните Организацию!");
Возврат;
КонецЕсли;
 
ВводНаОснованииНаСервере();
КонецПроцедуры
 
&НаСервере
Функция ВводНаОснованииНаСервере()
//Создание по табличной части №1-10
 
Для Сч = 1 По 10 Цикл
ИмяТЧ = "ТЧПос" + Строка(Сч);
ПартнерП    = "Партнер_"    + Строка(Сч);
КонтрагентП = "Контрагент_" + Строка(Сч);
КурсУЕР     = "КурсУЕОбщий"      + Строка(Сч);
Если Объект[ИмяТЧ].Количество()>0 Тогда
ДокументПТиУ = Документы.ПоступлениеТоваровУслуг.СоздатьДокумент();
ДокументПТиУ.Дата        = Объект.Дата;
ДокументПТиУ.Партнер     = Объект[ПартнерП];
ДокументПТиУ.Контрагент  = Объект[КонтрагентП];
ДокументПТиУ.Организация = Объект.Организация;
ДокументПТиУ.Склад       = Объект.Склад;
ДокументПТиУ.ДатаПлатежа = Объект.Дата;
ДокументПТиУ.Валюта      = Константы.ВалютаРегламентированногоУчета.Получить();
ДокументПТиУ.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ЗакупкаУПоставщика;
ДокументПТиУ.ВалютаВзаиморасчетов  = Константы.ВалютаРегламентированногоУчета.Получить();
ДокументПТиУ.Комментарий = "Валютный курс на дату поступления: " + Объект[КурсУЕР];
ДокументПТиУ.НалогообложениеНДС  = Перечисления.ТипыНалогообложенияНДС.ПродажаНеОблагаетсяНДС;
 
Для Каждого ЭлементТЧ Из Объект[ИмяТЧ] Цикл
НоваяСтрока = ДокументПТиУ.Товары.Добавить();
НоваяСтрока.Номенклатура = ЭлементТЧ.Номенклатура;
НоваяСтрока.Упаковка     = ЭлементТЧ.Номенклатура.ЕдиницаИзмерения;
НоваяСтрока.Количество   = ЭлементТЧ.Количество;
НоваяСтрока.Склад        = Объект.Склад;
НоваяСтрока.КоличествоУпаковок   = ЭлементТЧ.Количество;
НоваяСтрока.Цена         = ЭлементТЧ.ЦенаР;
НоваяСтрока.Сумма        = ЭлементТЧ.СуммаР;
НоваяСтрока.СтавкаНДС    = Перечисления.СтавкиНДС.БезНДС;
НоваяСтрока.СуммаСНДС    = ЭлементТЧ.СуммаР;
НоваяСтрока.СуммаНДС     = 0;
КонецЦикла;
 
ДокументПТиУ.СуммаВзаиморасчетов = Объект[ИмяТЧ].Итог("СуммаР");
ДокументПТиУ.СуммаДокумента      = Объект[ИмяТЧ].Итог("СуммаР");
            ДокументПТиУ.Записать();
Сообщить("Создан документ: " + ДокументПТиУ +"!")
Иначе
Сообщить("Документы не были созданы!")
КонецЕсли;
КонецЦикла;
 
КонецФункции
 

Попробовал сделать создание документа на основе вашей функции: при заполнении СуммыСНДС сумма документа встаёт нормально.

Да, Алексей, спасибо. Все работает

Да, Алексей, спасибо. Все работает