<< Click to Display Table of Contents >> Интеграция с 1С > Интеграция с 1C: Бухгалтерия предприятия 3.0 > Разработка правил синхронизации Изменение системного правила |
Правила, которые входят в стандартную поставку решения, можно адаптировать под нужды организации. В зависимости от поставленных требований применяются способы доработки системных правил:
•Изменение настроек синхронизации в справочнике Правила синхронизации. Используется при незначительной доработке правила. Например, если нужно изменить мастер-систему.
•Добавление синхронизации новых реквизитов. Используется, если нужно доработать правило таким образом, чтобы по нему синхронизировались дополнительные свойства объектов.
•Изменение логики системного правила. Используется, если нужно изменить код, применяющийся в правиле синхронизации.
•Перекрытие логики получения записей из Directum RX. Используется, если синхронизируемый справочник в Directum RX:
•перекрыли до настройки интеграции с 1С;
•перекрыли после настройки интеграции с 1С.
Пример изменения настроек правила
Задача
В организации информация о контрагентах хранится только в системе 1С. Необходимо изменить системное правило синхронизации так, чтобы данные контрагентов синхронизировались только в одностороннем порядке: из 1С в Directum RX.
Решение
1.В справочнике Правила синхронизации в карточках каждого правила синхронизации контрагента установите флажок Использовать при отправке и снимите флажок Использовать при получении.
2.Сделайте действующим каждое правило, нажав на кнопку Активировать правило.
3.Сохраните и закройте карточки правил.
Пример настройки синхронизации дополнительных реквизитов
Задача
В Directum RX в справочнике Организации есть поле Сайт (свойство Homepage), в котором указывается официальный веб-сайт контрагента. В конфигурацию «1С: Бухгалтерия 3.0» в справочник Контрагенты добавлен аналогичный реквизит. Необходимо доработать системное правило, чтобы этот реквизит синхронизировался из 1С в Directum RX и наоборот.
Решение
1.В справочнике Правила синхронизации выберите системное правило синхронизации «Контрагенты (Организации)» и в контекстном меню выберите пункт Скопировать:
2.В открывшейся карточке скопированного правила, в табличной части добавьте новую строку и укажите реквизиты:
•в столбце Реквизит 1С – Сайт;
•в столбце Реквизит RX – Homepage.
3.В поле Наименование укажите название нового правила.
4.Сделайте правило действующим, нажав на кнопку Активировать правило:
Пример изменения логики системного правила
Задача
Необходимо доработать системное правило синхронизации организации так, чтобы из Directum RX в 1С синхронизировались только резиденты.
Решение
1.Откройте среду разработки Directum RX и в серверных функциях модуля Integration1C (Интеграция с 1С) найдите функцию GetCompanyIdsForSync().
2.Перекройте функцию на рабочем слое и добавьте дополнительную фильтрацию по свойству Нерезидент:
[Public(WebApiRequestType = RequestType.Get)]
public override List<long> GetCompanyIdsForSync(string extEntityType, string systemId, bool strictMode)
{
var companyIds = base.GetCompanyIdsForSync(extEntityType, systemId, strictMode);
var filteredCompanyIds = Companies.GetAll().Where(c => companyIds.Contains(c.Id) && c.Nonresident == false).Select(c => c.Id).ToList();
return filteredCompanyIds;
}
Подробнее о перекрытии функций интеграции см. раздел «Переопределение функций интеграции на слое».
Пример настройки синхронизации перекрытого справочника Directum RX
Задача
В Directum RX перекрыт справочник Company (Организации). Необходимо синхронизировать его со справочником Контрагенты в 1С. При этом изменять логику системного правила не нужно.
Решение
1.В среде разработки Directum RX в дереве решений перейдите к перекрытому справочнику Company (Организации).
2.В контекстном меню справочника выберите пункт Скопировать идентификатор.
3.В справочнике Правила синхронизации откройте карточку правила «Контрагенты (Организации)» и в поле Состояние укажите значение Закрытая.
4.В справочнике Правила синхронизации выберите правило «Контрагенты (Организации)» и в контекстном меню выберите пункт Скопируйте системное правило.
5.В поле ИД типа сущности RX укажите скопированный идентификатор перекрытого справочника Company (Организации):
6.В поле Наименование укажите название нового правила. Например, «Контрагенты (Организации) – перекрытие».
7.Сделайте правило действующим, нажав на кнопку Активировать правило.
8.Сохраните и закройте карточку.
Пример настройки синхронизации справочника, который был перекрыт после настройки интеграции с 1С
Задача
В Directum RX перекрыли справочник Company (Организации). При этом ранее для него была настроена синхронизация со справочником Контрагенты в 1С. Необходимо скорректировать системное правило, чтобы синхронизация справочников продолжила работать.
Решение
1.В проводнике системы 1C в разделе «Directum RX» в группе «Настройки» выберите пункт Настройка регламентных заданий:
2.Отключите регламентные задания Получение данных от Directum RX и Отправка данных в Directum RX. Для этого в карточках регламентных заданий снимите флажок Использование и сохраните настройки:
3.Выполните шаги из порядка действий «Пример настройки синхронизации записей перекрытого справочника Directum RX».
4.В базе данных Directum RX выполните скрипт конвертации, который в таблице Sungero_Commons_ExtEntityLinks заменит значение свойства EntityType с GUID базового типа сущности на GUID перекрытого типа сущности.
update Sungero_Commons_ExtEntityLinks
set EntityType = 'debdb222-ccc6-4ff2-b8b7-4afaddefa5d1' -- GUID перекрытого типа сущности
where EntityType = '593e143c-616c-4d95-9457-fd916c4aa7f8' -- GUID базового типа сущности
5.Включите регламентные задания по синхронизации записей с Directum RX.
© Компания Directum, 2024 |