Создать документ на основании, внешняя обработка ТЧ.

1. avogadro57 16.08.17 09:40 Сейчас в теме
Добрый день, у меня обработка ТЧ, которая должно создать 2 документа на основании счета. Типовая процедура не подходит, т.к. из этого документа нужно разделить часть номенклатуры в заказ на производство, часть на закупку. Поэтому я взял типовую процедуру к себе в обработку, чтобы тут ее можно было менять. Сильно не пинайте, я только учусь.
Пришел к этому:
Процедура Инициализировать(Объект,ИмяТабличнойЧасти,ТабличноеПолеОбъекта) Экспорт 

НовыйДокумент = Документы.ЗаказПокупателя.СоздатьДокумент();
ОбработкаЗаполненияЗаказПокупателя(Объект.Ссылка, НовыйДокумент.Ссылка);
НовыйДокумент.Дата = ТекущаяДата();
НовыйДокумент.Записать();
ОткрытьЗначение( НовыйДокумент.Ссылка );
КонецПроцедуры
Показать


Ниже скопированное типовое решение, только заменил "ЭтотОбъект" на "НовыйДокумент.Ссылка"

Теперь выходит ошибка, что поле "НовыйДокумент.АвтоРазмещение" не обнаружено

Если ТипЗнч(Основание) = Тип("ДокументСсылка.СчетНаОплатуПокупателю") Тогда

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

		//ЗаполнениеДокументов.ЗаполнитьДанныеДоставкиПоОснованию(НовыйДокумент, Основание);

		УправлениеЗаказами.УстановитьДатуОплатыПоДоговору(НовыйДокумент);

		Для Каждого ТекСтрокаВозвратнаяТара Из Основание.ВозвратнаяТара Цикл

			НоваяСтрока = НовыйДокумент.ВозвратнаяТара.Добавить();
			НоваяСтрока.Количество   = ТекСтрокаВозвратнаяТара.Количество;
			НоваяСтрока.Номенклатура = ТекСтрокаВозвратнаяТара.Номенклатура;
			НоваяСтрока.Сумма        = ТекСтрокаВозвратнаяТара.Сумма;
			НоваяСтрока.Цена         = ТекСтрокаВозвратнаяТара.Цена;

		//ЗаполнитьСчетаУчетаВСтрокеТабЧастиРегл(НоваяСтрока, "ВозвратнаяТара", ОтражатьВБухгалтерскомУчете, ОтражатьВНалоговомУчете);

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

		Для Каждого ТекСтрокаУслуги Из Основание.Услуги Цикл

			НоваяСтрока = НовыйДокумент.Услуги.Добавить();
			НоваяСтрока.Количество                          = ТекСтрокаУслуги.Количество;
			НоваяСтрока.Номенклатура                        = ТекСтрокаУслуги.Номенклатура;
			НоваяСтрока.Содержание                          = ТекСтрокаУслуги.Содержание;
			НоваяСтрока.СтавкаНДС                           = ТекСтрокаУслуги.СтавкаНДС;
			НоваяСтрока.Сумма                               = ТекСтрокаУслуги.Сумма;
			НоваяСтрока.СуммаНДС                            = ТекСтрокаУслуги.СуммаНДС;
			НоваяСтрока.Цена                                = ТекСтрокаУслуги.Цена;
			НоваяСтрока.ПроцентСкидкиНаценки                = ТекСтрокаУслуги.ПроцентСкидкиНаценки;
			НоваяСтрока.ПроцентАвтоматическихСкидок         = ТекСтрокаУслуги.ПроцентАвтоматическихСкидок;
			НоваяСтрока.УсловиеАвтоматическойСкидки         = ТекСтрокаУслуги.УсловиеАвтоматическойСкидки;
			НоваяСтрока.ЗначениеУсловияАвтоматическойСкидки = ТекСтрокаУслуги.ЗначениеУсловияАвтоматическойСкидки;
		КонецЦикла;
	КонецЕсли;
	
КонецПроцедуры // ОбработкаЗаполнения()




Процедура ЗаполнитьСчетаУчетаВСтрокеТабЧастиРегл(СтрокаТЧ, ИмяТабЧасти, ЗаполнятьБУ, ЗаполнятьНУ, НовыйДокумент) Экспорт
	
	ЗаполнитьСчетаУчетаВТабЧасти(СтрокаТЧ, ИмяТабЧасти, ЗаполнятьБУ, ЗаполнятьНУ, НовыйДокумент);
	
КонецПроцедуры // ЗаполнитьСчетаУчетаВСтрокеТабЧастиРегл()

Процедура ЗаполнитьСчетаУчетаВТабЧасти(ТабличнаяЧасть, ИмяТабЧасти, ЗаполнятьБУ, ЗаполнятьНУ, НовыйДокумент) Экспорт
	
	СчетаУчетаВДокументах.ЗаполнитьСчетаУчетаТабличнойЧасти(ИмяТабЧасти, ТабличнаяЧасть, НовыйДокумент, ЗаполнятьБУ, ЗаполнятьНУ);
	
КонецПроцедуры // ЗаполнитьСчетаУчетаВТабЧасти()
Показать


Если закомментировать автоРазмещение, то немного другая ошибка:
Поле объекта недоступно для записи (ВалютаДокумента)
По теме из базы знаний
Найденные решения
4. EVKash 14 16.08.17 10:35 Сейчас в теме
(3) Убери ".Ссылка", передавай объект.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. EVKash 14 16.08.17 10:27 Сейчас в теме
(1)
Ниже скопированное типовое решение, только заменил "ЭтотОбъект" на "НовыйДокумент.Ссылка"

А почему ссылка? В ссылку ничего записать нельзя.
3. avogadro57 16.08.17 10:33 Сейчас в теме
(2) А как правильно сделать? НовыйДокумент.Ссылка.ПолучитьОбъект() ?
4. EVKash 14 16.08.17 10:35 Сейчас в теме
(3) Убери ".Ссылка", передавай объект.
5. avogadro57 16.08.17 10:37 Сейчас в теме
(4) Спасибо, получилось, про Ссылку не знал
Оставьте свое сообщение

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