Пример формирования документа для выгрузки в АСП.Шлюз

В примере используются следующие функции: СформироватьХозСубъект; СформироватьПоднадзорного; СформироватьСтрокуНоменклатуры; СформироватьСвязанныеДокументы; СформироватьТТН

Функция СформироватьДокумент(Документ, ТипДокумента, Фабрика) Экспорт
	
	ДокументХ = Фабрика.Создать(Фабрика.Тип( ПространствоИмен(),"Документ"));

	ДокументХ.Номер = Документ.Номер;
	ДокументХ.Дата 	= Документ.Дата;
	ДокументХ.ИННОрганизации = Документ.Организация.ИНН; //Указывается, если ведется учет по нескольким организациям
	//Подразделение	= Фабрика.Создать(Фабрика.Тип( ПространствоИмен(),"ПоднадзорныйОбъект"));
	//Подразделение.Код = "Код подразделения / склада / поднадзорного объекта организации";
	//ДокументХ.Подразделение 	= Подразделение; //Указывается, если ведется учет по нескольким подразделениям или организациям
	ДокументХ.ТипДокумента = ТипДокумента;
	// заполняем контрагента
	Если ДокументХ.ТипДокумента = "Перемещение" Тогда //перемещение в шлюзе = реализация+поступрелие. в качестве источника данных принимается документ реализации.		
		ДокументХ.Подразделение =  СформироватьПоднадзорного(Документ.СкладОтправитель,Документ.Организация,фабрика);
		ХозСубъект = СформироватьХозСубъект(Документ.Организация,фабрика);	
		Поднадзорный = СформироватьПоднадзорного(Документ.СкладПолучатель,Документ.Организация,фабрика);	
	Иначе	
		ХозСубъект = СформироватьХозСубъект(Документ.Контрагент,фабрика);		
		Поднадзорный = СформироватьПоднадзорного(Документ.Контрагент, Документ.Контрагент,фабрика); //#1		
	КонецЕсли;
	
	Если ТипЗнч(ХозСубъект) = Тип("Строка") Тогда
		Сообщить(ХозСубъект);
		Возврат Неопределено;
	КонецЕсли;
	ДокументХ.ХозСубъект = ХозСубъект;
	
	Если ТипЗнч(Поднадзорный) = Тип("Строка") Тогда
		Сообщить(Поднадзорный);
		Возврат Неопределено;
	КонецЕсли;
	ДокументХ.Поднадзорный = Поднадзорный;
	//ДокументХ.ТТН = СформироватьТТН(???,???);
	
	// Табличные части		
	Для каждого Стр из Документ.Товары Цикл
		ДокументХ.Товары.Добавить(СформироватьСтрокуНоменклатуры(Стр, Документ,Фабрика));
	КонецЦикла;
	
	//Список Материалов
	Для Каждого Стр Из Документ.Материалы Цикл
		ДокументХ.Материалы.Добавить(СформироватьСтрокуНоменклатуры(Стр, Документ,Фабрика));
	КонецЦикла;	
			
	// Список пунктов перегрузки
	//ДокументХ.ПунктыПерегрузки.Добавить(СформироватьПунктПерегрузки(???));
	
	// Список связанных документов
	//ДокументХ.СвязанныеДокументы.Добавить(СформироватьСвязанныеДокументы(???)); 
	
	Возврат ДокументХ;
КонецФункции

#1 В зависимости от учетной системы, конечными получателем продукции (поднадзорным объектом) может быть Контрагент, Партнер, Склад получатель и т.д. При выгрузке документа в качестве первого параметра функции «СформироватьПоднадзорного» необходимо указать поле документа, отвечающее за фактическое место доставки(отправки) продукции, а в качестве второго параметра - юридическое лицо получатель(отправитель) продукции.