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