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

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

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

Пример изменения получателя до отправки пакета:

Запрос = Новый Запрос;
Запрос.Текст =
    "ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1
    |   ВЫБОР
    |       КОГДА Диадок_ЮрФизЛица.ID_ВладелецПодразделения <> """"
    |           ТОГДА Диадок_ЮрФизЛица.ID_ВладелецПодразделения
    |       ИНАЧЕ Диадок_ЮрФизЛица.ID
    |   КОНЕЦ КАК ID
    |ИЗ
    |   Справочник.Диадок_ЮрФизЛица КАК Диадок_ЮрФизЛица
    |ГДЕ
    |   Диадок_ЮрФизЛица.СвязанныйСправочник1 = &СвязанныйСправочник1";

Запрос.УстановитьПараметр("СвязанныйСправочник1", Пакет.Данные1С.Контрагент);
Пакет.ДанныеДД.CounteragentId = ОсновнойМодуль.ЭДО_Служебные_ПолучитьРезультатЗапроса(Запрос, "ID");

После отправки пакета документов, можно дополнить или изменить данные в документах 1С с помощью функции ПослеОтправкиПакета.

Пример заполнения комментария в счете-фактуре 1С сведениями о дате отправки его в пакете УПД:

Если Пакет.Данные1С.ВидПакета.Наименование = "УПД" Тогда

    СчетФактура1С = Пакет.Данные1С.Документ.ПолучитьОбъект();

    СчетФактура1С.Комментарий = "Отправлен " + Пакет.Данные1С.Ссылка.ДатаЗагрузки;
    СчетФактура1С.ОбменДанными.Загрузка = Истина;

    СчетФактура1С.Записать();

КонецЕсли;