Сформировать документ: различия между версиями

Материал из База знаний АО АСП
Перейти к навигации Перейти к поиску
Нет описания правки
Нет описания правки
 
Строка 1: Строка 1:
====== Пример формирования документа для выгрузки в АСП.Шлюз ======
====== Пример формирования документа для выгрузки в АСП.Шлюз ======


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


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


ДокументХ.Номер = Документ.Номер;
ДокументХ.Номер = Документ.Номер;
ДокументХ.Дата = Документ.Дата;
ДокументХ.Дата = Документ.Дата;
ДокументХ.ИННОрганизации = Документ.Организация.ИНН; //Указывается, если ведется учет по нескольким организациям
ДокументХ.ИННОрганизации = Документ.Организация.ИНН; // Указывается, если ведется учет по нескольким организациям
//Подразделение = Фабрика.Создать(Фабрика.Тип( ПространствоИмен(),"ПоднадзорныйОбъект"));
//Подразделение = Фабрика.Создать(Фабрика.Тип(ПространствоИмен(), "ПоднадзорныйОбъект"));
//Подразделение.Код = "Код подразделения / склада / поднадзорного объекта организации";
//Подразделение.Код = "Код подразделения / склада / поднадзорного объекта организации";
<syntaxhighlight lang='bash'>
//ДокументХ.Подразделение = Подразделение; // Указывается, если ведется учет по нескольким подразделениям или организациям
ДокументХ.Подразделение = Подразделение;  
</syntaxhighlight>Указывается, если ведется учет по нескольким подразделениям или организациям
ДокументХ.ТипДокумента = ТипДокумента;
ДокументХ.ТипДокумента = ТипДокумента;
// заполняем контрагента
Если ДокументХ.ТипДокумента = "Перемещение" Тогда //перемещение в шлюзе = реализация+поступрелие. в качестве источника данных принимается документ реализации.
// Заполняем контрагента
ДокументХ.Подразделение = СформироватьПоднадзорного(Документ.СкладОтправитель,Документ.Организация,фабрика);
Если ДокументХ.ТипДокумента = "Перемещение" Тогда
ХозСубъект = СформироватьХозСубъект(Документ.Организация,фабрика);
// Перемещение в шлюзе = реализация+поступление.  
Поднадзорный = СформироватьПоднадзорного(Документ.СкладПолучатель,Документ.Организация,фабрика);
// В качестве источника данных принимается документ реализации.
ДокументХ.Подразделение = СформироватьПоднадзорного(Документ.СкладОтправитель, Документ.Организация, Фабрика);
ХозСубъект = СформироватьХозСубъект(Документ.Организация, Фабрика);
Поднадзорный = СформироватьПоднадзорного(Документ.СкладПолучатель, Документ.Организация, Фабрика);
Иначе
Иначе
ХозСубъект = СформироватьХозСубъект(Документ.Контрагент,фабрика);
ХозСубъект = СформироватьХозСубъект(Документ.Контрагент, Фабрика);
Поднадзорный = СформироватьПоднадзорного(Документ.Контрагент, Документ.Контрагент,фабрика); //#1
Поднадзорный = СформироватьПоднадзорного(Документ.Контрагент, Документ.Контрагент, Фабрика); // #1
КонецЕсли;
КонецЕсли;
Строка 39: Строка 46:
КонецЕсли;
КонецЕсли;
ДокументХ.Поднадзорный = Поднадзорный;
ДокументХ.Поднадзорный = Поднадзорный;
//ДокументХ.ТТН = СформироватьТТН(???,???);
//ДокументХ.ТТН = СформироватьТТН(???, ???);
// Табличные части
// Табличные части
Для каждого Стр из Документ.Товары Цикл
Для каждого Стр из Документ.Товары Цикл
ДокументХ.Товары.Добавить(СформироватьСтрокуНоменклатуры(Стр, Документ,Фабрика));
ДокументХ.Товары.Добавить(СформироватьСтрокуНоменклатуры(Стр, Документ, Фабрика));
КонецЦикла;
КонецЦикла;
//Список Материалов
// Список материалов
Для Каждого Стр Из Документ.Материалы Цикл
Для Каждого Стр Из Документ.Материалы Цикл
ДокументХ.Материалы.Добавить(СформироватьСтрокуНоменклатуры(Стр, Документ,Фабрика));
ДокументХ.Материалы.Добавить(СформироватьСтрокуНоменклатуры(Стр, Документ, Фабрика));
КонецЦикла;
КонецЦикла;
Строка 60: Строка 68:
КонецФункции
КонецФункции
</syntaxhighlight>
</syntaxhighlight>
#1 В зависимости от учетной системы, конечными получателем продукции (поднадзорным объектом) может быть Контрагент, Партнер, Склад получатель и т.д. При выгрузке документа в качестве первого параметра функции "СформироватьПоднадзорного" необходимо указать поле документа, отвечающее за фактическое место доставки(отправки) продукции, а в качестве второго параметра - юридическое лицо получатель(отправитель) продукции.
 
'''Примечание #1:''' В зависимости от учетной системы, конечным получателем продукции (поднадзорным объектом) может быть Контрагент, Партнер, Склад получатель и т.д. При выгрузке документа в качестве первого параметра функции "СформироватьПоднадзорного" необходимо указать поле документа, отвечающее за фактическое место доставки (отправки) продукции, а в качестве второго параметра - юридическое лицо получатель (отправитель) продукции.
 
[[Category:Асп.шлюз выгрузка]]
[[Category:Асп.шлюз выгрузка]]


<vote type=1 />
<vote type=1 />

Текущая версия от 12:59, 14 октября 2025

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

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

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

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

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

0.00
(0 голосов)