DIRECTUM 5.5: новый и универсальный – коннектор к 1С

17 3

Изменения в архитектуре

В версии 5.5 разработан новый коннектор к учетной системе «1С:Предприятие», который позволит упростить внедрение механизма интеграции в любой организации.

Со стороны DIRECTUM коннектор использует механизмы набора средств интеграции (DIT). Со стороны 1С мы выбрали механизм Универсальный механизм обмена данными в формате XML. Этот механизм широко используется самой 1С для обмена между базами 1С с различными конфигурациями, т.е. с разной прикладной разработкой, что схоже с нашей ситуацией:

Условно можно сказать, что до DIRECTUM 5.5 использовался коннектор к 1С версии 1.0. Сейчас мы выпустили коннектор к 1С версии 2.0. В системе он называется так:

Почему решили изменить коннектор? Коннектор версии 1.0 перестал покрывать встречающиеся сценарии использования на проектах внедрения. Организации дорабатывали его под себя либо разрабатывали собственную интеграцию с 1С.

Особенности обмена данными

  • Обмен данными теперь выполняется по GUID объектов. Между объектами DIRECTUM и 1С автоматически устанавливается связь. Это исключает ситуации дублирования синхронизируемых объектов и решает проблемы передачи сложных иерархических связей справочников.
  • Поддерживается синхронизация больших данных из 1С в DIRECTUM: пакет делится на части и загружается в систему;
  • Пакет данных можно изменять с помощью вычислений на языке ISBL. Вычисления задаются через события, например, «При выгрузке из DIRECTUM».
  • Синхронизируются удаленные записи: в DIRECTUM они переходят в состояние «Закрытая», в 1С помечаются на удаление.
  • Данные табличных частей справочника теперь передаются по ключевым реквизитам или с полной перезаписью в принимающей системе. Удобный вариант выбирает сам разработчик.

Простая разработка и администрирование

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

Мы хотим, чтобы работа в системе была вам понятна на всех этапах использования.

  • С новой версии система оповещает об ошибках обмена администратора или любого другого ответственного, кого вы укажете в установках набора средств интеграции.
  • В лог-файл теперь записывается точное место ошибки. Для удобства чтения логов мы убрали перенос строк. Кроме этого, уменьшили вероятность блокировки лог-файла при одновременном запуске нескольких сеансов интеграции.
  • Стандартные шаблоны для настройки обмена переведены на новый коннектор и усовершенствованы, в т.ч. проработана передача контактной информации.

Совместимость, лицензирование и поставка

  1. Физически коннектор 2.0 и 1.0 – это два разных коннектора, поэтому их можно ставить вместе в одну базу. Автоматической конвертации настроек обмена с коннектора 1.0 на коннектор 2.0 нет, т.к. существенно изменились правила разработки интеграции. Переходите на версию 2.0 постепенно, переводя настройки обмена по очереди.
  2. Изменения набора средств интеграции, связанные с новым коннектором (справочники, функции, сценарии), совместимы со всеми ранее выпущенными коннекторами 1С, SAP и Axapta.
  3. Если заказчик уже приобретал лицензию на коннектор к 1С 1.0, то приобретать лицензию на новый коннектор не потребуется.
  4. Коннектор 1.0 остается в поставке DIRECTUM 5.5 для совместимости. Его поддержка продолжится, но развития функционала не планируется.
  5. Коннектор 2.0 можно синхронизировать в предыдущие версии DIRECTUM. Эти работы выполняются по заявке от заказчика.

Обновление справочника «Интегрированные системы»

В справочнике Интегрированные системы вынесли общие настройки на одну закладку:

Если вы не подготовили папки для настройки обмена, то они создадутся сами при синхронизации. Просто укажите нужный путь в полях *Файл обмена и *Протоколы.

Поле Код теперь блокируется от изменений, если обмен данными был выполнен хотя бы раз. Это нужно, чтобы не разорвать связи объектов 1С и DIRECTUM по GUID-ИД. Связи хранятся в разрезе кодов интегрированных систем.

Сократилось количество параметров с 22 до 12, что также упрощает настройку.

Удобные настройки обмена

Теперь при выполнении сеанса обмена настройки применяются в той очередности, которую задает разработчик в поле Очередность. Чем меньше значение, тем раньше применится настройка.

XSL-преобразования в новом коннекторе нет, есть правила преобразования. Текст правил генерируется автоматически после каждого сохранения измененной настройки, например, состава реквизитов. Вручную делать ничего не нужно.

Если все же возникла необходимость изменить текст преобразования, то автогенерация текста отключится, об этом уведомит система:

Подсказка в записях сохраняется. Таким образом разработчик всегда может видеть, в каких настройках обмена внесены ручные изменения.

При ручном формировании текста преобразования по кнопке Сгенерировать запись с настройкой переходит в режим редактирования, поэтому заданные настройки в любой момент можно откатить. Ранее она сохранялась сразу.

Появились события

В новом коннекторе используется механизм событий. События — это своеобразные точки расширения коннектора. Они применяются, когда не хватает возможностей визуальной настройки. В коннекторе 1.0 тоже были предпосылки к созданию событий – это кнопка Установить фильтр и реквизит «Сценарий DIRECTUM». В новом коннекторе они переехали на закладку «События и фильтры», и сам список событий и фильтров существенно расширился.

Изменился состав полей

Добавлено поле Наименование настройки обмена данными для удобства обращения к записи. Вдобавок это позволило оптимизировать процесс импорта настроек обмена. Ранее этот процесс был менее прозрачным, и при переносе настроек обмена могли создаваться дубли. Теперь записи с настройками обмена определяются по Наименованию и по Интегрированной системе.

Вынесли поля Тип объекта DIRECTUM и Тип объекта системы, чтобы проще определять, для каких типов объектов настраивается синхронизация. Например, в 1С объект Статьи затрат может являться как справочником, так и планом видов характеристик.

В окне выбора объекта системы и реквизита 1С добавлены колонки Имя типа объекта и Имя раздела. Значения полей пригодятся при написании вычислений на реквизитах или в событиях.

Отладка разработки обмена

На этапе разработки интеграции, в начале тестовой или опытно-промышленной эксплуатации рекомендуется включать режим отладки. Он поможет быстрее разобраться при возникновении ошибок обмена. Чтобы включить режим отладки, в параметре интегрированной системы DebugMode установите значение Да. А также задайте параметр SaveExchangeFiles для сохранения временных файлов.

Отладка при загрузке данных в DIRECTUM

Если при загрузке данных в DIRECTUM возникли ошибки, ищите причину ошибок в лог-файле. Если сведений недостаточно, вы можете посмотреть:

  • сформировался ли файл с правилом преобразования. Файл имеет постфикс _Rule.xml.
  • что выгрузилось в файл с данными обмена. Файл имеет постфикс _Data.xml. Если ошибка в вычислениях на реквизитах 1С, которые заданы в тексте правил преобразования, отдельно нужно выполнить отладку вычислений.
  • содержимое таблицы Import_..._Data1C. В эту таблицу загружаются данные из XML-файла без каких-либо преобразований.
  • содержимое таблицы Import_..._DataDIR. В таблице хранятся данные, полученные от 1С и преобразованные к формату DIRECTUM. К ним уже применены вычисления на реквизитах и вычисления событий.

При отладке особое внимание уделите колонке ID. Если запись нужно обновить в DIRECTUM, то эта колонка должна быть заполнена. Если запись нужно создать, то колонка не заполняется. Если колонка ID заполнена не так как ожидает разработчик, то нужно проверить, что алгоритм поиска записей в DIRECTUM удовлетворяет поставленным требованиям.

По умолчанию система выполняет поиск записей по GUID-ИД и по ключевым реквизитам, если они заданы. Если запись не найдена, то создается новая. Ошибки могут возникать из-за отсутствия связей GUID-ИД, когда они ожидаются по алгоритму, либо задана неуникальная комбинация ключевых реквизитов.

Разработчик может переопределить алгоритм поиска записей с помощью события «Перед загрузкой в DIRECTUM», тогда ошибки обмена надо искать в вычислениях этого события.

Записи, которые не загрузились, попадут в очередной сеанс обмена.

Отладка при выгрузке данных из DIRECTUM

Ошибки выгрузки также записываются в лог-файл. Дополнительно вы можете проверить:

  • корректность настройки SQL-, ISBL-фильтров и события «При выгрузке из DIRECTUM»;
  • содержимое таблицы Export_..._Data. В эту таблицу выгружаются данные из DIRECTUM. К ним применены вычисления на реквизитах, вычисления событий и фильтров.

В заключение

Развитие нового коннектора продолжится в следующей версии 5.6. Мы ожидаем от вас обратной связи и желаем успешной настройки интеграции!

Чтобы узнать больше о новинках, обратитесь к закрепленному менеджеру или воспользуйтесь формой «Заказать демонстрацию» на нашем сайте.

17
Авторизуйтесь, чтобы оценить материал.
6
Артем Сунцов

Спасибо за новый коннектор, описано много ожидавшихся изменений. Есть комментарий и вопрос:

1) Несмотря на документацию 1С, GUID объектов в рамках одной конфигурации не всегда уникален, поэтому закладываться лишь на него не совсем правильно. Разработчики 1С не могут менять присвоенный системой GUID, но могут установить требуемый GUID при создании новой записи, чем иногда и пользуются.

2) Планируется ли развитие возможностей коннектора/интеграции в сторону использования веб-сервисов 1С?

3) По возможности, опишите, пожалуйста, детальнее правильный с вашей точки зрения порядок перевода настроек коннектора с версии 1.0 на 2.0 (хотя бы коробочных/типовых настроек).

Юлия Литвинюк

На первый вопрос могу ответить я, в новом коннекторе есть событие «Перед загрузкой в DIRECTUM», которое позволяет прикладному разработчику на ISBL переопределить поиск записи по любой комбинации реквизитов и/или другим условиям. Если выполняется заданный разработчиком алгоритм поиска, то стандартные механизмы игнорируются

Алексей Шушков

1. По первому вопросу еще дополню. В 1С в рамках одного справочника GUID будет уникальным, поэтому связи GUID 1С - ID DIRECTUM хранятся в разрезе метаданных 1С. Записи с одинаковыми GUID из разных справочников 1С коннектор обработает корректно.

2. Текущую архитектуру коннектора вполне можно адаптировать под веб-сервисы 1С. Информации о появлении в стандартной версии такой возможности пока нет. Данные работы могут быть выполнены по запросу заказчиков в рамках внедрения или сопровождения.

3. Что нужно учитывать при переходе на новый коннектор.

Во-первых, для ранее синхронизированных записей нужно заполнить таблицу IntegratedSystemsObjectLinks. Описание структуры таблицы приведено в справке.

Во-вторых, настройки обмена находящиеся в разных направлениях обмена можно переводить в разное время.

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

В-четвертых, начинать рекомендуется с более простых справочников.

Например, в DIRECTUM имеется одна интегрированная система для 1С ERP. В ней настроена загрузка из 1С в DIRECUTM Орг. структуры (Подразделения, Персоны, Работники), и настроена выгрузка из DIRECTUM в 1С Контрагентов и Договоров. Т.к. в настройке обмена договоров есть реквизит Контрагент, т.е. справочники связанные, то Договора и Контрагенты нужно переводить одновременно, аналогично и с орг. структурой. Поэтому порядок перевода может быть следующим: 

  1. Создать новую интегрированную систему с 1С с новым коннектором.
  2. Разработать настройки обмена для загрузки орг. структуры (справочники Подразделения, Персоны, Работники).
  3. Заполнить таблицу связей IntegratedSystemsObjectLinks  для ранее синхронизированных записей Подразделений, Персон, Работников.
  4. Отключить загрузку орг. структуры в старом коннекторе и включить её в новом.
  5. Некоторое время выделить на опытную эксплуатацию для новых настроек обмена.
  6. Разработать настройки обмена для выгрузки Договоров и Контрагентов.
  7. Заполнить таблицу связей IntegratedSystemsObjectLinks  для ранее синхронизированных записей Договоров и Контрагентов
  8. Отключить выгрузку Договоров и Контрагентов в старом коннекторе и включить её в новом.
Алексей Шушков: обновлено 30.11.2017 в 15:46
Алексей Шушков: обновлено 30.11.2017 в 15:47
Алексей Шушков: обновлено 30.11.2017 в 15:56
Алексей Шушков: обновлено 30.11.2017 в 15:56

Авторизуйтесь, чтобы написать комментарий