Программно заполнить валюту в документе реализация.УТ 11.4

1. Az18011993 10.03.22 11:08 Сейчас в теме
Добрый день,уважаемые форумчане!
Есть обработка,которая создает документ реализация,но он не проводится даже при программном проставлении соглашения, т.к. валюта в документе не заполняется. Не подскажите решение?
Найденные решения
39. VictorRGB2 14 11.03.22 12:08 Сейчас в теме
(38) налогообложение не есть ставка
а не заполняется, потому что в структуре действий нет "ЗаполнитьСтавкуНДС"
ее надо вставить перед "ПересчитатьСуммуНДС"
44. VictorRGB2 14 11.03.22 12:31 Сейчас в теме
(43) "НовыйДокумент.НалогообложениеНДС = Перечисления.ТипыНалогообложенияНДС.ПродажаНеОблагаетсяНДС;" - сами же ставите, что документ без ндс, значит надо ставку заполнять ручками, например "БезНДС"

что за Оплата имеется в виду?
если график оплаты, то выше давал пример заполнения по соглашению и без
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user957073 10.03.22 12:06 Сейчас в теме
(1)нужно видеть код вашей обработки с формированием документа чтобы проще было объяснить.
3. Az18011993 10.03.22 12:12 Сейчас в теме
(2)
&НаСервере
Процедура СоздатьДокументНаСервере() 
	Попытка
		НовыйДокумент = Документы.РеализацияТоваровУслуг.СоздатьДокумент();
		НовыйДокумент.Дата = ТекущаяДата();
		НовыйДокумент.Контрагент = Контрагент; 
		НовыйДокумент.Партнер = Клиент;
		НовыйДокумент.Соглашение = Соглашение;
		НовыйДокумент.Склад = Склад;
		НовыйДокумент.Организация = Организация;
		НовыйДокумент.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияКлиенту; 
		НовыйДокумент.Валюта = Справочники.Валюты.НайтиПоНаименованию("руб_"); 
		//НовыйДокумент.СуммаДокумента = Справочники.Валюты.НайтиПоНаименованию("руб_"); 
		НовыйДокумент.ВалютаВзаиморасчетов = Справочники.Валюты.НайтиПоНаименованию("руб_"); 
		НовыйДокумент.ЦенаВключаетНДС = Истина;
		НовыйДокумент.НалогообложениеНДС = Перечисления.ТипыНалогообложенияНДС.ПродажаНеОблагаетсяНДС; 
		Для Каждого Строка Из Таблица Цикл 
			НоваяСтрока = НовыйДокумент.Товары.Добавить(); 
			НоваяСтрока.Номенклатура = НайтиНоменклатуру(Строка.Номенклатура);
			НоваяСтрока.КоличествоУпаковок = Строка.Количество;
			НоваяСтрока.Количество = Строка.Количество;
			НоваяСтрока.ВидЦены = Справочники.ВидыЦен.НайтиПоНаименованию("Крафт"); 
		КонецЦикла;
		НовыйДокумент.Записать(РежимЗаписиДокумента.Проведение);
		Сообщить("Документ по контрагенту "+Контрагент+" успешно создан");
	Исключение 
		НовыйДокумент.Записать();
		Сообщить("НЕ УДАЛОСЬ создать документ по контрагенту "+Контрагент);
	КонецПопытки;	
КонецПроцедуры
Показать

Смог проставить валю.ту,но теперь проблема, цена не проставляется по виду цены...
4. user957073 10.03.22 12:18 Сейчас в теме
(3) можно с помощью процедуры ОбработатьСтрокуТЧ() в общем модуле ОбработкаТабличнойЧастиСервер.
5. Az18011993 10.03.22 12:20 Сейчас в теме
(4)А что делает обработатьСтроку?
6. Az18011993 10.03.22 12:22 Сейчас в теме
(4)Просто у меня вот такая картина
Прикрепленные файлы:
7. VictorRGB2 14 10.03.22 12:26 Сейчас в теме
(3) просто указав вид цены не работает
надо вызывать расчет цен по соглашению или по виду цен

типа такого, в цикле заполнения товаров
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ЗаполнитьЦенуПродажи", ОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруЗаполненияЦеныВСтрокеТЧ(лДокумент));
	
лКэшированныеЗначения = Неопределено;
ОбработкаТабличнойЧастиСервер.ОбработатьСтрокуТЧ(лНоваяСтрока, СтруктураДействий, лКэшированныеЗначения);


и в конце, перед записью документа еще вызывать расчет сумм и налогов, примерно так
лДокумент.СкидкиРассчитаны = истина;

СтруктураДействий = Новый Структура;
		
СтруктураДействий.Вставить("ЗаполнитьСтавкуНДС",  лДокумент.НалогообложениеНДС);
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", ОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруПересчетаСуммыНДСВТЧ(лДокумент));
СтруктураДействий.Вставить("ПересчитатьКоличествоЕдиниц");
СтруктураДействий.Вставить("ПересчитатьСуммуСУчетомРучнойСкидки", Новый Структура("Очищать", Ложь));
СтруктураДействий.Вставить("ПересчитатьСуммуСУчетомАвтоматическойСкидки", Новый Структура("Очищать", Истина));
		
ОбработкаТабличнойЧастиСервер.ОбработатьТЧ(лДокумент.Товары, СтруктураДействий, Неопределено);
Показать


а еще надо заполнить график этапов оплаты (если требуется по вашему процессу, но обычно требуется), примерно так
		// заполним этапы графика оплаты
		СуммаЗаказано     = лДокумент.Товары.Итог("Сумма")+ лДокумент.Товары.Итог("СуммаНДС");
		лДокумент.СуммаДокумента =  СуммаЗаказано;

			лДокумент.ГрафикОплаты 	= лДокумент.Соглашение.ГрафикОплаты;
	 		лДокумент.ФормаОплаты 	= лДокумент.ГрафикОплаты.ФормаОплаты;
			
			ГрафикСоглашенияЗаполнен = ПродажиВызовСервера.ГрафикСоглашенияЗаполнен(лДокумент.Соглашение);
			ГрафикЗаполнен = ЗначениеЗаполнено(лДокумент.ГрафикОплаты);
			Если ГрафикЗаполнен Тогда					
			
				ЭтапыОплатыСервер.ЗаполнитьЭтапыОплатыДокументаПродажи(лДокумент, 
																		ГрафикСоглашенияЗаполнен,
																		ГрафикЗаполнен,
																		СуммаЗаказано,
																		0);
			Иначе
				// дописываем вариант графика оплаты по соглашению
				Для каждого СтрокаЭтапа из лДокумент.Соглашение.ЭтапыГрафикаОплаты цикл
					лГрафик = лДокумент.ЭтапыГрафикаОплаты.Добавить();
					лГрафик.ВариантОплаты = СтрокаЭтапа.ВариантОплаты;
					лГрафик.ДатаПлатежа = лДокумент.ЖелаемаяДатаОтгрузки + 3600*24*СтрокаЭтапа.Сдвиг;
					лГрафик.ПроцентПлатежа = СтрокаЭтапа.ПроцентПлатежа;
					лГрафик.СуммаПлатежа = СуммаЗаказано;
				КонецЦикла;
			КонецЕсли;
		
		Если лДокумент.ЭтапыГрафикаОплаты.Количество()=0 Тогда
			// дописываем вариант графика оплаты по умолчанию
			лГрафик = лДокумент.ЭтапыГрафикаОплаты.Добавить();
			лГрафик.ВариантОплаты = Перечисления.ВариантыОплатыКлиентом.КредитПослеОтгрузки;
			лГрафик.ДатаПлатежа = лДокумент.ЖелаемаяДатаОтгрузки;
			лГрафик.ПроцентПлатежа = 100;
			лГрафик.СуммаПлатежа = СуммаЗаказано;
		КонецЕсли;
Показать
9. Az18011993 10.03.22 12:46 Сейчас в теме
(7)
лДокумент.СкидкиРассчитаны = истина;

СтруктураДействий = Новый Структура;

СтруктураДействий.Вставить("ЗаполнитьСтавкуНДС", лДокумент.НалогообложениеНДС);
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", ОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруПересчетаСуммыНДСВТЧ(лДокумент));
СтруктураДействий.Вставить("ПересчитатьКоличествоЕдиниц");
СтруктураДействий.Вставить("ПересчитатьСуммуСУчетомРучнойСкидки", Новый Структура("Очищать", Ложь));
СтруктураДействий.Вставить("ПересчитатьСуммуСУчетомАвтоматическойСкидки", Новый Структура("Очищать", Истина));

ОбработкаТабличнойЧастиСервер.ОбработатьТЧ(лДокумент.Товары, СтруктураДействий, Неопределено);

Теперь цены заполнются,но сумма все так же пустая
10. Az18011993 10.03.22 12:53 Сейчас в теме
(7)
лДокумент.СкидкиРассчитаны = истина;

СтруктураДействий = Новый Структура;

СтруктураДействий.Вставить("ЗаполнитьСтавкуНДС", лДокумент.НалогообложениеНДС);
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", ОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруПересчетаСуммыНДСВТЧ(лДокумент));
СтруктураДействий.Вставить("ПересчитатьКоличествоЕдиниц");
СтруктураДействий.Вставить("ПересчитатьСуммуСУчетомРучнойСкидки", Новый Структура("Очищать", Ложь));
СтруктураДействий.Вставить("ПересчитатьСуммуСУчетомАвтоматическойСкидки", Новый Структура("Очищать", Истина));

ОбработкаТабличнойЧастиСервер.ОбработатьТЧ(лДокумент.Товары, СтруктураДействий, Неопределено);
11. Az18011993 10.03.22 13:00 Сейчас в теме
(7)

Скрыть

Вторая функция не работает(
Не рассчитывает сумму
12. VictorRGB2 14 10.03.22 13:06 Сейчас в теме
(11) смотрите на вызовы
ищите их в коде конфигурации и смотрите на структуру передаваемых параметров
в разных релизах УТ 11 они разные, я же дал пример, а не готовое решение

а вызовы всех этих пересчетов можно найти прямо в самом документе, например, перейдя по событию ПриИзмении для Номенклатуры в ТЧ
там и найдете все, как нужно выполнить для вашего релиза
13. Az18011993 10.03.22 13:43 Сейчас в теме
(12)Да,но у меня создание документа происходит на сервере.А там функции клиентские
&НаКлиенте
Процедура ТоварыЦенаПриИзменении(Элемент)
	
	ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;
	
	СтруктураПересчетаСуммы = ОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Объект);
	
	СтруктураДействий = Новый Структура;
	СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
	СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
	СтруктураДействий.Вставить("ПересчитатьСумму");
	СтруктураДействий.Вставить("ПересчитатьСуммуСУчетомРучнойСкидки", Новый Структура("Очищать", Ложь));
	СтруктураДействий.Вставить("ПересчитатьСуммуСУчетомАвтоматическойСкидки", Новый Структура("Очищать", Истина));
	СтруктураДействий.Вставить("ЗаполнитьДубликатыЗависимыхРеквизитов", ЗависимыеРеквизиты());
	СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетов");
	СтруктураДействий.Вставить("ПересчитатьСуммуСверхЗаказа", Новый Структура("РеализацияПоступлениеПоЗаказу, ТребуетсяЗалогЗаТару",
		Объект.РеализацияПоЗаказам, Объект.ТребуетсяЗалогЗаТару));
	ОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
	
	ПродажиКлиентСервер.РассчитатьИтоговыеПоказателиРеализации(ЭтаФорма);
	СкидкиНаценкиКлиент.СброситьФлагСкидкиРассчитаны(ЭтаФорма);
	
КонецПроцедуры
Показать
14. VictorRGB2 14 10.03.22 14:00 Сейчас в теме
(13)
ОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ


если пройти дальше, то окажется что вызывается ОбработкаТабличнойЧастиКлиентСервер - а это уже на сервере
т.ч. нужно всего лишь исключить клиентскую часть, перенеся заполнение структуры действия в вашу обработку и вызвав ОбработкаТабличнойЧастиКлиент.Что-то там что вызывает ОбработатьСтрокуТЧ на сервере
15. VictorRGB2 14 10.03.22 14:08 Сейчас в теме
(13) вот как у меня для УТ 11.4
 // выполним пересчет сумм документа
		СтруктураДействий = Новый Структура;
		
		СтруктураПересчетаСуммы = ОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(лДокумент);
		СтруктураДействий.Вставить("ЗаполнитьСтавкуНДС",  Новый Структура("НалогообложениеНДС, Дата, ПоДатеОтгрузки", лДокумент.НалогообложениеНДС, лДокумент.Дата, Истина));
		СтруктураДействий.Вставить("ПересчитатьКоличествоЕдиниц");
		СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
		СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
		СтруктураДействий.Вставить("ПересчитатьСумму");
		СтруктураДействий.Вставить("ПересчитатьСуммуСУчетомРучнойСкидки", Новый Структура("Очищать", Ложь));
		СтруктураДействий.Вставить("ПересчитатьСуммуСУчетомАвтоматическойСкидки", Новый Структура("Очищать", Истина));
		
		ОбработкаТабличнойЧастиСервер.ОбработатьТЧ(лДокумент.Товары, СтруктураДействий, Неопределено);
Показать


точнее вызовы нужно смотреть в конкретный релиз, что у вас
16. Az18011993 10.03.22 14:16 Сейчас в теме
(15)
// выполним пересчет сумм документа
СтруктураДействий = Новый Структура;

СтруктураПересчетаСуммы = ОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(лДокумент);
СтруктураДействий.Вставить("ЗаполнитьСтавкуНДС", Новый Структура("НалогообложениеНДС, Дата, ПоДатеОтгрузки", лДокумент.НалогообложениеНДС, лДокумент.Дата, Истина));
СтруктураДействий.Вставить("ПересчитатьКоличествоЕдиниц");
СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
СтруктураДействий.Вставить("ПересчитатьСумму");
СтруктураДействий.Вставить("ПересчитатьСуммуСУчетомРучнойСкидки", Новый Структура("Очищать", Ложь));
СтруктураДействий.Вставить("ПересчитатьСуммуСУчетомАвтоматическойСкидки", Новый Структура("Очищать", Истина));
У меня тогда заполняется только одна строка)

ОбработкаТабличнойЧастиСервер.ОбработатьТЧ(лДокумент.Товары, СтруктураДействий, Неопределено);
Показать
17. Az18011993 10.03.22 14:41 Сейчас в теме
(15)
ОбработкаТабличнойЧастиСервер.ОбработатьТЧ(лДокумент.Товары, СтруктураДействий, Неопределено);

Управление торговлей, редакция 11 (11.4.13.282) (http://v8.1c.ru/trade/)
Copyright © ООО "1С-Софт", 2003-2018. Все права защищены
(http://www.1c.ru)
18. VictorRGB2 14 10.03.22 15:32 Сейчас в теме
(17) (16) как вызываете?
в цикле заполнения ТЧ или после него?
19. Az18011993 10.03.22 19:12 Сейчас в теме
(18)
Попытка
		НовыйДокумент = Документы.РеализацияТоваровУслуг.СоздатьДокумент();
		НовыйДокумент.Дата = ТекущаяДата();
		НовыйДокумент.Контрагент = Контрагент; 
		НовыйДокумент.Партнер = Клиент;
		НовыйДокумент.Соглашение = Соглашение;
		НовыйДокумент.Склад = Склад;
		НовыйДокумент.Организация = Организация;
		НовыйДокумент.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияКлиенту; 
		НовыйДокумент.Валюта = Справочники.Валюты.НайтиПоНаименованию("руб_"); 
		//НовыйДокумент.СуммаДокумента = Справочники.Валюты.НайтиПоНаименованию("руб_"); 
		НовыйДокумент.ВалютаВзаиморасчетов = Справочники.Валюты.НайтиПоНаименованию("руб_"); 
		НовыйДокумент.ЦенаВключаетНДС = Истина;
		НовыйДокумент.НалогообложениеНДС = Перечисления.ТипыНалогообложенияНДС.ПродажаНеОблагаетсяНДС; 
		СтруктураДействий = Новый Структура;
		СтруктураДействий.Вставить("ЗаполнитьЦенуПродажи", ОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруЗаполненияЦеныВСтрокеТЧ(НовыйДокумент));	
		лКэшированныеЗначения = Неопределено;
		Для Каждого Строка Из Таблица Цикл 
			НоваяСтрока = НовыйДокумент.Товары.Добавить(); 
			НоваяСтрока.Номенклатура = НайтиНоменклатуру(Строка.Номенклатура);
			НоваяСтрока.КоличествоУпаковок = Строка.Количество;
			НоваяСтрока.Количество = Строка.Количество;
			НоваяСтрока.ВидЦены = Справочники.ВидыЦен.НайтиПоНаименованию("Крафт"); 
			ОбработкаТабличнойЧастиСервер.ОбработатьСтрокуТЧ(НоваяСтрока, СтруктураДействий, лКэшированныеЗначения); 
			//НоваяСтрока.Сумма = НоваяСтрока.Цена*НоваяСтрока.Количество;
			//НоваяСтрока.СтавкаНДС = Перечисления.СтавкиНДС.БезНДС;  
		// выполним пересчет сумм документа
				
		//СтруктураПересчетаСуммы = ОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(НовыйДокумент);
		//СтруктураДействий.Вставить("ЗаполнитьСтавкуНДС",  Новый Структура("НалогообложениеНДС, Дата, ПоДатеОтгрузки", НовыйДокумент.НалогообложениеНДС, НовыйДокумент.Дата, Истина));
		//СтруктураДействий.Вставить("ПересчитатьКоличествоЕдиниц");
		//СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
		//СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
		//СтруктураДействий.Вставить("ПересчитатьСумму");
		//СтруктураДействий.Вставить("ПересчитатьСуммуСУчетомРучнойСкидки", Новый Структура("Очищать", Ложь));
		//СтруктураДействий.Вставить("ПересчитатьСуммуСУчетомАвтоматическойСкидки", Новый Структура("Очищать", Истина));
		//
		//ОбработкаТабличнойЧастиСервер.ОбработатьТЧ(НовыйДокумент.Товары, СтруктураДействий, Неопределено);
		КонецЦикла; 
	  		НовыйДокумент.Записать(РежимЗаписиДокумента.Проведение);
		Сообщить("Документ по контрагенту "+Контрагент+" успешно создан");
	Исключение 
		НовыйДокумент.Записать();
		Сообщить("НЕ УДАЛОСЬ создать документ по контрагенту "+Контрагент);
	КонецПопытки;	
Показать

В цикле заполнения
У меня заполняется только одна строка,если вставлять функцию
20. VictorRGB2 14 10.03.22 19:19 Сейчас в теме
(19) в цикле заполнения надо только заполнение цен
а пересчет сумм и налогов вызывается после
21. Az18011993 10.03.22 19:25 Сейчас в теме
(20)ОбработкаТабличнойЧастиСервер.ОбработатьТЧ(лДокумент.Товары, СтруктураДействий, Неопределено);
Эта?
22. VictorRGB2 14 10.03.22 19:45 Сейчас в теме
24. Az18011993 11.03.22 07:34 Сейчас в теме
(22)может я что то не так делаю?:)
25. lefthander 11.03.22 09:38 Сейчас в теме
(24)На сколько я знаю ВидЦены связан с параметром выбора. Может отключить и проверить?
26. Az18011993 11.03.22 09:43 Сейчас в теме
(25)Да валюта уже заполняется.Тут проблема в пересчете суммы.
27. lefthander 11.03.22 09:46 Сейчас в теме
(26)Да там выбор то не от валюты зависит а от цены ;)
Прикрепленные файлы:
23. Az18011993 10.03.22 20:26 Сейчас в теме
(20)
СтруктураДействий = Новый Структура;
		СтруктураДействий.Вставить("ЗаполнитьЦенуПродажи", ОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруЗаполненияЦеныВСтрокеТЧ(НовыйДокумент));	
		лКэшированныеЗначения = Неопределено;
		Для Каждого Строка Из Таблица Цикл 
			НоваяСтрока = НовыйДокумент.Товары.Добавить(); 
			НоваяСтрока.Номенклатура = НайтиНоменклатуру(Строка.Номенклатура);
			НоваяСтрока.КоличествоУпаковок = Строка.Количество;
			НоваяСтрока.Количество = Строка.Количество;
			НоваяСтрока.ВидЦены = Справочники.ВидыЦен.НайтиПоНаименованию("Крафт"); 
			ОбработкаТабличнойЧастиСервер.ОбработатьСтрокуТЧ(НоваяСтрока, СтруктураДействий, лКэшированныеЗначения); 
			//НоваяСтрока.Сумма = НоваяСтрока.Цена*НоваяСтрока.Количество;
			//НоваяСтрока.СтавкаНДС = Перечисления.СтавкиНДС.БезНДС;  
		// выполним пересчет сумм документа
				
		//СтруктураПересчетаСуммы = ОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(НовыйДокумент);
		//СтруктураДействий.Вставить("ЗаполнитьСтавкуНДС",  Новый Структура("НалогообложениеНДС, Дата, ПоДатеОтгрузки", НовыйДокумент.НалогообложениеНДС, НовыйДокумент.Дата, Истина));
		//СтруктураДействий.Вставить("ПересчитатьКоличествоЕдиниц");
		//СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
		//СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
		//СтруктураДействий.Вставить("ПересчитатьСумму");
		//СтруктураДействий.Вставить("ПересчитатьСуммуСУчетомРучнойСкидки", Новый Структура("Очищать", Ложь));
		//СтруктураДействий.Вставить("ПересчитатьСуммуСУчетомАвтоматическойСкидки", Новый Структура("Очищать", Истина));
		//
		//ОбработкаТабличнойЧастиСервер.ОбработатьТЧ(НовыйДокумент.Товары, СтруктураДействий, Неопределено);
	КонецЦикла; 
	СтруктураПересчетаСуммы = ОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(НовыйДокумент);
        СтруктураДействий.Вставить("ЗаполнитьСтавкуНДС",  Новый Структура("НалогообложениеНДС, Дата, ПоДатеОтгрузки",НовыйДокумент.НалогообложениеНДС, НовыйДокумент.Дата, Истина));
        СтруктураДействий.Вставить("ПересчитатьКоличествоЕдиниц");
        СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
        СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
        СтруктураДействий.Вставить("ПересчитатьСумму");
        СтруктураДействий.Вставить("ПересчитатьСуммуСУчетомРучнойСкидки", Новый Структура("Очищать", Ложь));
        СтруктураДействий.Вставить("ПересчитатьСуммуСУчетомАвтоматическойСкидки", Новый Структура("Очищать", Истина));
        
        ОбработкаТабличнойЧастиСервер.ОбработатьТЧ(НовыйДокумент.Товары, СтруктураДействий, Неопределено);
	  		НовыйДокумент.Записать(РежимЗаписиДокумента.Проведение);
		Сообщить("Документ по контрагенту "+Контрагент+" успешно создан");
	Исключение 
		НовыйДокумент.Записать();
		Сообщить("НЕ УДАЛОСЬ создать документ по контрагенту "+Контрагент);
	КонецПопытки;	
Показать

Не считает(
28. VictorRGB2 14 11.03.22 09:51 Сейчас в теме
(23) попробуйте заполнить Упаковки
совсем недавно столкнулись с тем, что если их не заполнить, то система не подставит по умолчанию и суммы не рассчитает
29. Az18011993 11.03.22 09:59 Сейчас в теме
(28)У меня так заполняется...
Прикрепленные файлы:
30. Az18011993 11.03.22 10:00 Сейчас в теме
(28)
Попытка
		НовыйДокумент = Документы.РеализацияТоваровУслуг.СоздатьДокумент();
		НовыйДокумент.Дата = ТекущаяДата();
		НовыйДокумент.Контрагент = Контрагент; 
		НовыйДокумент.Партнер = Клиент;
		НовыйДокумент.Соглашение = Соглашение;
		НовыйДокумент.Склад = Склад;
		НовыйДокумент.Организация = Организация;
		НовыйДокумент.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияКлиенту; 
		НовыйДокумент.Валюта = Справочники.Валюты.НайтиПоНаименованию("руб_"); 
		//НовыйДокумент.СуммаДокумента = Справочники.Валюты.НайтиПоНаименованию("руб_"); 
		НовыйДокумент.ВалютаВзаиморасчетов = Справочники.Валюты.НайтиПоНаименованию("руб_"); 
		НовыйДокумент.ЦенаВключаетНДС = Истина;
		НовыйДокумент.НалогообложениеНДС = Перечисления.ТипыНалогообложенияНДС.ПродажаНеОблагаетсяНДС; 
		СтруктураДействий = Новый Структура;
		СтруктураДействий.Вставить("ЗаполнитьЦенуПродажи", ОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруЗаполненияЦеныВСтрокеТЧ(НовыйДокумент));	
		лКэшированныеЗначения = Неопределено;
		Для Каждого Строка Из Таблица Цикл 
			НоваяСтрока = НовыйДокумент.Товары.Добавить(); 
			НоваяСтрока.Номенклатура = НайтиНоменклатуру(Строка.Номенклатура);
			НоваяСтрока.КоличествоУпаковок = Строка.Количество;
			НоваяСтрока.Количество = Строка.Количество;
			НоваяСтрока.ВидЦены = Справочники.ВидыЦен.НайтиПоНаименованию("Крафт");  
			СтруктураПересчетаСуммы = ОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(НовыйДокумент);

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

			ОбработкаТабличнойЧастиСервер.ОбработатьСтрокуТЧ(НоваяСтрока, СтруктураДействий, лКэшированныеЗначения);
			
			//НоваяСтрока.Сумма = НоваяСтрока.Цена*НоваяСтрока.Количество;
			//НоваяСтрока.СтавкаНДС = Перечисления.СтавкиНДС.БезНДС;  
		// выполним пересчет сумм документа
				
		//СтруктураПересчетаСуммы = ОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(НовыйДокумент);
		//СтруктураДействий.Вставить("ЗаполнитьСтавкуНДС",  Новый Структура("НалогообложениеНДС, Дата, ПоДатеОтгрузки", НовыйДокумент.НалогообложениеНДС, НовыйДокумент.Дата, Истина));
		//СтруктураДействий.Вставить("ПересчитатьКоличествоЕдиниц");
		//СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
		//СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
		//СтруктураДействий.Вставить("ПересчитатьСумму");
		//СтруктураДействий.Вставить("ПересчитатьСуммуСУчетомРучнойСкидки", Новый Структура("Очищать", Ложь));
		//СтруктураДействий.Вставить("ПересчитатьСуммуСУчетомАвтоматическойСкидки", Новый Структура("Очищать", Истина));
		//
		//ОбработкаТабличнойЧастиСервер.ОбработатьТЧ(НовыйДокумент.Товары, СтруктураДействий, Неопределено);
	КонецЦикла; 
	НовыйДокумент.Записать(РежимЗаписиДокумента.Проведение);
		Сообщить("Документ по контрагенту "+Контрагент+" успешно создан");
	Исключение 
		НовыйДокумент.Записать();
		Сообщить("НЕ УДАЛОСЬ создать документ по контрагенту "+Контрагент);
	КонецПопытки;
Показать
31. VictorRGB2 14 11.03.22 10:08 Сейчас в теме
(30) так и в чем сейчас проблема наблюдается?
вроде все заполнено и рассчитано
32. Az18011993 11.03.22 10:09 Сейчас в теме
(31)только вот у меня должно быть 29 позиций,а не 1(
33. VictorRGB2 14 11.03.22 11:06 Сейчас в теме
(32) в цикле заполнения ТЧ проблема, в отладчике прогоняли, смотрели то и как заполняется в цикле?
34. Az18011993 11.03.22 11:07 Сейчас в теме
(33)после первого прохода выходит из цикла
35. VictorRGB2 14 11.03.22 11:10 Сейчас в теме
(34) значит в Таблица всего одна строка
или вылетает в исключение, смотреть в отладке нужно по всем пунктам формирования ТЧ
36. Az18011993 11.03.22 11:10 Сейчас в теме
37. Az18011993 11.03.22 11:23 Сейчас в теме
(35)добавил Попытка,все заработало...
38. Az18011993 11.03.22 11:29 Сейчас в теме
(35)Только вот теперь проблема в заполнении оплаты и почему то ставка ндс не заполнена,хотя налогообложение у меня заполнено.
Прикрепленные файлы:
39. VictorRGB2 14 11.03.22 12:08 Сейчас в теме
(38) налогообложение не есть ставка
а не заполняется, потому что в структуре действий нет "ЗаполнитьСтавкуНДС"
ее надо вставить перед "ПересчитатьСуммуНДС"
40. Az18011993 11.03.22 12:12 Сейчас в теме
(39)Понятно)А не подскажите как заполнить поле Оплаты?В реквизитах не нашел.
41. Az18011993 11.03.22 12:17 Сейчас в теме
(39)Когда я это ставлю у меня не рассчитываются суммы
42. Az18011993 11.03.22 12:21 Сейчас в теме
НовыйДокумент.НалогообложениеНДС = Перечисления.ТипыНалогообложенияНДС.ПродажаНеОблагаетсяНДС; 	  
	СтруктураДействий = Новый Структура;
	СтруктураДействий.Вставить("ЗаполнитьПризнакТипНоменклатуры", Новый Структура("Номенклатура", "ТипНоменклатуры"));
	СтруктураДействий.Вставить("ЗаполнитьПризнакАртикул", Новый Структура("Номенклатура", "Артикул"));
	СтруктураДействий.Вставить("ЗаполнитьСтавкуНДС",
		Новый Структура("НалогообложениеНДС, Дата", НовыйДокумент.НалогообложениеНДС, НовыйДокумент.Дата));
	СтруктураДействий.Вставить("ЗаполнитьКодТНВЭД", НовыйДокумент.НалогообложениеНДС);
	СтруктураДействий.Вставить("ЗаполнитьСтавкуНДСВозвратнойТары", НовыйДокумент.ВернутьМногооборотнуюТару);
	СтруктураДействий.Вставить("ЗаполнитьПризнакБезВозвратнойТары", НовыйДокумент.ВернутьМногооборотнуюТару);
	СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
	СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
	СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетов");
	
	ОбработкаТабличнойЧастиСервер.ОбработатьТЧ(НовыйДокумент.Товары, СтруктураДействий, Неопределено);
Показать

Поставил,все равно не заполняется
43. Az18011993 11.03.22 12:28 Сейчас в теме
(39)
ЗаполнитьСтавкуНДС

СтруктураДействий = Новый Структура;
		СтруктураДействий.Вставить("ЗаполнитьЦенуПродажи", ОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруЗаполненияЦеныВСтрокеТЧ(НовыйДокумент));	
		лКэшированныеЗначения = Неопределено;
		СтруктураПересчетаСуммы = ОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(НовыйДокумент);
	    СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
	СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
	СтруктураДействий.Вставить("ПересчитатьСумму");
	СтруктураДействий.Вставить("ПересчитатьСуммуСУчетомРучнойСкидки", Новый Структура("Очищать", Ложь));
	СтруктураДействий.Вставить("ПересчитатьСуммуСУчетомАвтоматическойСкидки", Новый Структура("Очищать", Истина));
	СтруктураДействий.Вставить("ЗаполнитьДубликатыЗависимыхРеквизитов", ЗависимыеРеквизиты());
	СтруктураДействий.Вставить("ОчиститьСуммуВзаиморасчетов");
	СтруктураДействий.Вставить("ПересчитатьСуммуСверхЗаказа", Новый Структура("РеализацияПоступлениеПоЗаказу, ТребуетсяЗалогЗаТару",
		НовыйДокумент.РеализацияПоЗаказам, НовыйДокумент.ТребуетсяЗалогЗаТару));       
			СтруктураДействий.Вставить("ЗаполнитьСтавкуНДС",
		Новый Структура("НалогообложениеНДС, Дата", НовыйДокумент.НалогообложениеНДС, НовыйДокумент.Дата));

			Для Каждого Строка Из Таблица Цикл  
			Попытка
			НоваяСтрока = НовыйДокумент.Товары.Добавить(); 
			НоваяСтрока.Номенклатура = НайтиНоменклатуру(Строка.Номенклатура);
			НоваяСтрока.КоличествоУпаковок = Строка.Количество;
			НоваяСтрока.Количество = Строка.Количество;
			НоваяСтрока.ВидЦены = Справочники.ВидыЦен.НайтиПоНаименованию("Крафт"); 
			ОбработкаТабличнойЧастиСервер.ОбработатьСтрокуТЧ(НоваяСтрока, СтруктураДействий, лКэшированныеЗначения); 
			ТекущаяСтрокаСтруктура = ПолучитьТекущуюСтрокуСтруктурой(НоваяСтрока,СтруктураДействий);
		    НоваяСтрока.СтавкаНДС = Перечисления.СтавкиНДС.БезНДС;  
		ОбработкаТабличнойЧастиВызовСервера.ОбработатьСтрокуТЧ(ТекущаяСтрокаСтруктура, СтруктураДействий, лКэшированныеЗначения);   
		ОбработкаТабличнойЧастиСервер.ОбработатьТЧ(НовыйДокумент.Товары, СтруктураДействий, Неопределено);

			//НоваяСтрока.Сумма = НоваяСтрока.Цена*НоваяСтрока.Количество;
		// выполним пересчет сумм документа   
	Исключение
		КонецПопытки;
	КонецЦикла;  
Показать

Сделал так,но не знаю как заполнить оплату
44. VictorRGB2 14 11.03.22 12:31 Сейчас в теме
(43) "НовыйДокумент.НалогообложениеНДС = Перечисления.ТипыНалогообложенияНДС.ПродажаНеОблагаетсяНДС;" - сами же ставите, что документ без ндс, значит надо ставку заполнять ручками, например "БезНДС"

что за Оплата имеется в виду?
если график оплаты, то выше давал пример заполнения по соглашению и без
45. Az18011993 11.03.22 12:33 Сейчас в теме
(44)
Прикрепленные файлы:
46. Az18011993 11.03.22 12:43 Сейчас в теме
(44)Все)Нужно было заполнить реквизит ПорядокОплаты.
47. nik_rzn 27.03.23 20:05 Сейчас в теме
(46) подскажите порядок оплаты как заполняли ?
8. user957073 10.03.22 12:27 Сейчас в теме
Вам нужно подставить цену и пересчитать строки.
Это можно сделать с помощью типовых функций. Пример одной из таких ф-ций выше.
Осталось разобраться какие параметры в неё передать, чтобы пересчитались строки
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот