Копировать ссылку на страницу Перейти в предыдущий раздел Перейти в следующий раздел

В событиях задаются вычисления, которые выполняются в определенный момент синхронизации. Фильтры используются для ограничения загрузки некоторых записей.

Вычисления для событий и фильтров указываются на соответствующей закладке справочника Настройки обмена данными с интегрированными системами.

В стандартной поставке коннектора к 1С для выгрузки из DIRECTUM можно использовать:

Подробнее SQL-фильтр

Выполняется один раз при отборе записей справочника DIRECTUM на выгрузку. Заполняется на языке Transact-SQL. Фильтр представляет собой условие в разделе WHERE SQL-запроса.

Предопределенных переменных для фильтра нет. Для обращения к SQL-таблицам используйте стандартные алиасы (псевдонимы таблиц).

Пример:

При синхронизации данных выгружаются только утвержденные записи справочников.

 

MBAnalit.XRecStat = '+'

Подробнее ISBL-фильтр

Используется, если не хватает возможностей SQL-фильтра. Выполняется отдельно для каждой записи сразу после выполнения SQL-фильтра, перед началом выгрузки записей во временную таблицу Export_..._Data.

Фильтр заполняется на языке ISBL. В вычислениях фильтра должна быть заполнена переменная Result одним из значений:

TRUE – запись выгрузится;
FALSE – запись не выгрузится.

Для фильтра доступны предопределенные переменные:

IntegratedSystemCode – код интегрированной системы;
DIRECTUMObjectType – код объекта DIRECTUM;
DIRECTUMObjectName – имя объекта DIRECTUM;
IntSysObjectType – тип объекта 1С;
IntSysObjectName – имя объекта 1С;
TableIntSys – имя временной таблицы с данными в формате 1С;
RecordCode – код текущей записи DIRECTUM. Если запись удалена, значение остается пустым;
RecordID – ИД текущей записи DIRECTUM;
Action – действие над текущей записью. Возможные значения: Change – создание или изменение записи; Delete – удаление записи.

Чтобы получить значения реквизитов, используйте функцию ReferenceRequisiteValue.

Пример:

При синхронизации данных выгружаются только действующие записи справочников.

 

RecordStatus = ReferenceRequisiteValue("ОРГ"; RecordCode; "Состояние";)

Result = (RecordStatus == "Действующая")

Подробнее Событие «При выгрузке из DIRECTUM»

Используется для дополнения или изменения значений реквизитов записи справочника DIRECTUM во временной SQL-таблице Export_..._Data. С помощью события также можно выгрузить значения реквизитов, для которых нельзя задать настройки выгрузки через табличную часть «Соответствие реквизитов», например, составные реквизиты 1С.

Событие заполняется на языке ISBL. Выполняется для каждой записи после того, как она выгрузится из DIRECTUM во временную SQL-таблицу.

Для события доступны предопределенные переменные:

IntegratedSystemCode – код интегрированной системы;
DIRECTUMObjectType – тип объекта DIRECTUM;
DIRECTUMObjectName – имя объекта DIRECTUM;
IntSysObjectType – тип объекта 1С;
IntSysObjectName – имя объекта 1С;
TableIntSys – имя временной таблицы с данными в формате 1С;
Action – действие над текущей записью. Возможные значения: Change – создание или изменение записи; Delete – удаление записи;
GUID – идентификатор текущей записи в 1С;
RecordID – ИД текущей записи DIRECTUM;
RecordCode – код текущей записи DIRECTUM. Если запись удалена, значение остается пустым.

Чтобы получить значения реквизитов, используйте функцию ReferenceRequisiteValue.

Чтобы записать новые реквизиты в таблицу TableIntSys, используйте функцию Connector1C8v2ConvertRequisiteToTable.

Переменную Result заполнять не нужно.

Пример:

В примере при выгрузке записей справочника Контактные лица организаций заполняется реквизит 1С ОбъектВладелец.

 

  ObjType = "Reference"

  ObjName = "КонтактныеЛица"

  Section = "Главный"

  ВладелецКод = ReferenceRequisiteValue("КНТ"; RecordCode; "Организация")

  ВладелецИД = GetRecordIDByCode("ОРГ"; ВладелецКод)

  ВладелецGUID = IntegratedSystemsObjectLinksGet(IntegratedSystemCode; "Reference"; "Контрагенты";; "Reference"; "ОРГ"; ВладелецИД)

  if not Assigned(ВладелецGUID)

    // Если GUID записи не найден, то создать новый.

    ВладелецGUID = NewID()

    IntegratedSystemsObjectLinksAdd("insert"; "BUH30"; "Reference"; "Контрагенты"; ВладелецGUID; "Reference"; "ОРГ"; ВладелецИД)

  endif

  Connector1C8v2ConvertRequisiteToTable(TableIntSys; ObjType; ObjName; RecordID; GUID; Action; Section; "1"; "ОбъектВладелец"; "СправочникСсылка.Контрагенты"; ВладелецGUID)

© Компания DIRECTUM, 2018 Сообщество пользователей DIRECTUM
.navbar > a:hover { background: #FFD73B; }