Дополнительная обработка исходящих пакетов
Когда стоит задача изменить поля пакета до отправки на сервер, поможет событие ПослеПодготовкиПакета. В этой функции получится переопределить:
отправителя,
получателя,
подразделения,
промежуточного получателя,
признак заблокированного пакета и т.п.
Пример изменения отправителя:
СвязанныйОбъектИБ = Параметры.Пакет.Отправитель.Организация;
OrganizationBoxId = BoxId_Отправителя;
Пакет.ДанныеДД.OrganizationId = ОсновнойМодуль.ЭДО_Справочники_ИдентификаторПодразделенияОрганизации(СвязанныйОбъектИБ, OrganizationBoxId);
Пакет.ДанныеДД.BoxId = OrganizationBoxId;
Пример изменения получателя:
СвязанныйОбъектИБ = Параметры.Пакет.Получатель.Организация;
CounteragentBoxId = Параметры.Пакет.Получатель.BoxId;
Пакет.ДанныеДД.CounteragentId = ОсновнойМодуль.ЭДО_Справочники_ИдентификаторПодразделенияКонтрагента(СвязанныйОбъектИБ, CounteragentBoxId);
Пример изменения подразделения отправителя:
СвязанныйОбъектИБ = Параметры.Пакет.ДокументУчета.ПодразделениеОрганизации;
OrganizationBoxId = Параметры.Пакет.Отправитель.BoxId;
Пакет.ДанныеДД.OrganizationId = ОсновнойМодуль.ЭДО_Справочники_ИдентификаторПодразделенияОрганизации(СвязанныйОбъектИБ, OrganizationBoxId);
Пример изменения подразделения получателя:
СвязанныйОбъектИБ = Параметры.Пакет.ДокументУчета.ПодразделениеКонтрагента;
CounteragentBoxId = Параметры.Пакет.Получатель.BoxId;
Пакет.ДанныеДД.CounteragentId = ОсновнойМодуль.ЭДО_Справочники_ИдентификаторПодразделенияКонтрагента(СвязанныйОбъектИБ, CounteragentBoxId);
Пример отправки пакета через промежуточного получателя:
ProxyBoxId = "000000000000000@diadoc.ru";
Пакет.ДанныеДД.ProxyBoxId = ProxyBoxId;
Пример помещения исходящего пакета в черновики — без отправки контрагенту:
Пакет.ДанныеДД.DelaySend = Истина;
Пример отправки закрытого пакета:
Пакет.ДанныеДД.LockPackage = Истина;
После отправки пакета документов, можно дополнить или изменить данные в документах 1С с помощью функции ПослеОтправкиПакета.
Пример заполнения комментария в счете-фактуре 1С сведениями о дате отправки его в пакете УПД:
Если Пакет.Данные1С.ВидПакета.Наименование = "УПД" Тогда
СчетФактура1С = Пакет.Данные1С.Документ.ПолучитьОбъект();
СчетФактура1С.Комментарий = "Отправлен" + Пакет.Данные1С.Ссылка.ДатаЗагрузки;
СчетФактура1С.ОбменДанными.Загрузка = Истина;
СчетФактура1С.Записать();
КонецЕсли;