Сформировать документ

Версия от 12:59, 14 октября 2025; Shihov (обсуждение | вклад)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Пример формирования документа для выгрузки в АСП.Шлюз

В примере используются следующие функции:

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

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

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

0.00
(0 голосов)