Дополнительная обработка исходящих пакетов¶
Когда стоит задача изменить поля пакета до отправки на сервер, поможет событие ПослеПодготовкиПакета. В этой функции получится переопределить:
- отправителя
- получателя
- подразделения
- промежуточного получателя
- признак заблокированного пакета и т.п.
Пример изменения получателя до отправки пакета:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1
| ВЫБОР
| КОГДА Диадок_ЮрФизЛица.ID_ВладелецПодразделения <> """"
| ТОГДА Диадок_ЮрФизЛица.ID_ВладелецПодразделения
| ИНАЧЕ Диадок_ЮрФизЛица.ID
| КОНЕЦ КАК ID
|ИЗ
| Справочник.Диадок_ЮрФизЛица КАК Диадок_ЮрФизЛица
|ГДЕ
| Диадок_ЮрФизЛица.СвязанныйСправочник1 = &СвязанныйСправочник1";
Запрос.УстановитьПараметр("СвязанныйСправочник1", Пакет.Данные1С.Контрагент);
Пакет.ДанныеДД.CounteragentId = ОсновнойМодуль.ЭДО_Служебные_ПолучитьРезультатЗапроса(Запрос, "ID");
Пример отправки пакета через промежуточного получателя:
ProxyBoxId = "000000000000000@diadoc.ru";
Пакет.ДанныеДД.ProxyBoxId = ProxyBoxId;
После отправки пакета документов, можно дополнить или изменить данные в документах 1С с помощью функции ПослеОтправкиПакета.
Пример заполнения комментария в счете-фактуре 1С сведениями о дате отправки его в пакете УПД:
Если Пакет.Данные1С.ВидПакета.Наименование = "УПД" Тогда
СчетФактура1С = Пакет.Данные1С.Документ.ПолучитьОбъект();
СчетФактура1С.Комментарий = "Отправлен " + Пакет.Данные1С.Ссылка.ДатаЗагрузки;
СчетФактура1С.ОбменДанными.Загрузка = Истина;
СчетФактура1С.Записать();
КонецЕсли;