Дополнительная обработка исходящих пакетов

Когда стоит задача изменить поля пакета до отправки на сервер, поможет событие ПослеПодготовкиПакета. В этой функции получится переопределить:

  • отправителя,

  • получателя,

  • подразделения,

  • промежуточного получателя,

  • признак заблокированного пакета и т.п.

Пример изменения отправителя:

СвязанныйОбъектИБ = Параметры.Пакет.Отправитель.Организация;
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С.Записать();

КонецЕсли;