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