В событиях задаются вычисления, которые выполняются в определенный момент синхронизации. Фильтры используются для ограничения загрузки некоторых записей.
Вычисления для событий и фильтров указываются на соответствующей закладке справочника Настройки обмена данными с интегрированными системами.
В стандартной поставке коннектора к 1С для выгрузки из DIRECTUM можно использовать:
Выполняется один раз при отборе записей справочника DIRECTUM на выгрузку. Заполняется на языке Transact-SQL. Фильтр представляет собой условие в разделе WHERE SQL-запроса. Предопределенных переменных для фильтра нет. Для обращения к SQL-таблицам используйте стандартные алиасы (псевдонимы таблиц). Пример: При синхронизации данных выгружаются только утвержденные записи справочников.
MBAnalit.XRecStat = '+' |
Используется, если не хватает возможностей SQL-фильтра. Выполняется отдельно для каждой записи сразу после выполнения SQL-фильтра, перед началом выгрузки записей во временную таблицу Export_..._Data. Фильтр заполняется на языке ISBL. В вычислениях фильтра должна быть заполнена переменная Result одним из значений:
Для фильтра доступны предопределенные переменные:
Чтобы получить значения реквизитов, используйте функцию ReferenceRequisiteValue. Пример: При синхронизации данных выгружаются только действующие записи справочников.
RecordStatus = ReferenceRequisiteValue("ОРГ"; RecordCode; "Состояние";) Result = (RecordStatus == "Действующая") |
Событие «При выгрузке из DIRECTUM»
Используется для дополнения или изменения значений реквизитов записи справочника DIRECTUM во временной SQL-таблице Export_..._Data. С помощью события также можно выгрузить значения реквизитов, для которых нельзя задать настройки выгрузки через табличную часть «Соответствие реквизитов», например, составные реквизиты 1С. Событие заполняется на языке ISBL. Выполняется для каждой записи после того, как она выгрузится из DIRECTUM во временную SQL-таблицу. Для события доступны предопределенные переменные:
Чтобы получить значения реквизитов, используйте функцию 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 |