Настройка синхронизации — различия между версиями

Материал из razgovorov.ru
Перейти к: навигация, поиск
 
(не показано 5 промежуточных версий 1 участника)
Строка 8: Строка 8:
 
== Дополнительные функции обработки данных (хэндлеры) ==
 
== Дополнительные функции обработки данных (хэндлеры) ==
 
Позволяют внести изменения в данные расчета по файлам настроек в случае сильно не стандартных решений и когда файлом настройки невозможно сформировать [[:Категория:SBIS_API3_Объект|нужную структуру данных]].
 
Позволяют внести изменения в данные расчета по файлам настроек в случае сильно не стандартных решений и когда файлом настройки невозможно сформировать [[:Категория:SBIS_API3_Объект|нужную структуру данных]].
* Группа обработчиков '''handlers_before_calc'''.
+
===before_calc===
* Группа обработчиков '''handlers_after_calc'''.
+
===after_calc===
# Обработчик ''split_document''
+
Группа обработчиков handlers_after_calc вызывается ....
# Обработчик ''split_and_rewrite_document_overtime''
+
====split_document====
 +
Формирует по указанной табличной части объекта отдельные записи в ESO.
 +
 
 +
Параметры:
 +
* name_table_doc (обяз) - имя табличной части объекта, по которой происходит разбивка.
 +
Алгоритм:
 +
.....
 +
====split_and_rewrite_document_overtime====
 +
Обработчик парсит входящий массив на ESO по name_table_doc и name_split_param_1/name_split_param_2. А так же подставляем значения из name_param_3/name_param_4 в итоговую структуру в зависимости от условия. Собираем финальный объект по согласованной структуре
 
# Обработчик  ''handler_group_table''
 
# Обработчик  ''handler_group_table''
 
#* Обработчик группировки таблиц. Делает группировку по параметрам group. Допускается последовательная группировка при нескольких узлах group. Поля, не указанные в группировках group_by, group_what, group_joined отсекаются. Пример настройки можно посмотреть в синхронизации кадровых документов с 1С КАМИН расчет зарплаты 5.0.  
 
#* Обработчик группировки таблиц. Делает группировку по параметрам group. Допускается последовательная группировка при нескольких узлах group. Поля, не указанные в группировках group_by, group_what, group_joined отсекаются. Пример настройки можно посмотреть в синхронизации кадровых документов с 1С КАМИН расчет зарплаты 5.0.  
Строка 18: Строка 26:
 
#*# data_put (необяз) - куда положить новые сгруппированные данные. Если не указан, либо пуст то берётся как data_get
 
#*# data_put (необяз) - куда положить новые сгруппированные данные. Если не указан, либо пуст то берётся как data_get
 
#*# group_by (обяз) - перечисление полей через "," по которым проходит группировка
 
#*# group_by (обяз) - перечисление полей через "," по которым проходит группировка
#*# group_joined (необяз) - перечисление полей, связанных с группировками. Указанные поля добавятся в результирующую строку из первой группировки значения. Служит для уменьшения выборки поиска, в это поле рекомендуется добавить все, что завязано на группируемые поля. Например, при выгрузке объекта "физическое лицо", нет необходимости дополнительно делать группировку по фамилии, имени и отчеству. Достаточно сделать группировку по основному объекту, а ФИО указать как дополнительные поля.
+
#*# group_joined (необяз) - перечисление полей, связанных с группировками. Указанные поля добавятся в результирующую строку из первой группировки значения. Служит для уменьшения выборки поиска, в это поле рекомендуется добавить все, что завязано на группируемые поля.
 
#*# group_what (необяз) - узлы с описанием группируемых параметров.
 
#*# group_what (необяз) - узлы с описанием группируемых параметров.
 
#*#* Допустимые параметры:
 
#*#* Допустимые параметры:
 
#*## function (обяз) - функция группировки. Доступные функции: sum, min, max, count, count_diff
 
#*## function (обяз) - функция группировки. Доступные функции: sum, min, max, count, count_diff
 
#*## key (необяз) - ключ данных. Если не указан, то берётся имя узла.
 
#*## key (необяз) - ключ данных. Если не указан, то берётся имя узла.
#*## type (необяз) - приведение значения к типу. Например, для суммирования числа доступные типы: int, str, array (если не массив, то создается массив со значением). Если не указан, то должен совпадать для всех группируемых элементов.
+
#*## type (необяз) - приведение значения к типу. Например, для суммирования числа. Доступные типы: int, str, array (если не массив, то создается массив со значением). Если не указан, то должен совпадать для всех группируемых элементов.
 
#*# group_in_table (необяз) - узлы с формированием данных в подтаблицу для каждой группируемой строки. Имя новой таблицы определяется по имени узла.
 
#*# group_in_table (необяз) - узлы с формированием данных в подтаблицу для каждой группируемой строки. Имя новой таблицы определяется по имени узла.
 
#*#* Допустимые параметры:
 
#*#* Допустимые параметры:
Строка 29: Строка 37:
 
#*## group_joined, group_what алогично основной группировке таблицы.
 
#*## group_joined, group_what алогично основной группировке таблицы.
 
# Обработчик  ''handler_multiply_sub_objects''
 
# Обработчик  ''handler_multiply_sub_objects''
 +
#* Обработчик клонирует указанные объекты в таблице ESO, добавляя в ID копии, значения этих подобъектов или их ID. Исходный объект при этом помечается типом "Служебный", а в данных по указанному пути, значение старого объекта меняется на новое. Пример настройки можно посмотреть в синхронизации кадровых документов с 1С КАМИН расчет зарплаты 5.0.
 +
#* Допустимые параметры multiply:
 +
#*# multiply_by (обяз) - путь к копируемым данным через ".". Если на пути встречается массив объектов (табличная часть), скопированы будут объекты по всем строкам.
 +
#*# multiply_what(обяз) - путь к значению, по которому будет выполнено копирование через ".". В случае объекта, берётся его уникальный идентификатор. Если на пути встречается массив объектов (табличная часть), то копирование будет проведено по каждому объекту по всем строкам.
 +
#* Примечание: в случае, если начальный путь в multiply_by и multiply_what какое-то время совпадает, то копирование проводится по остаточному различию в пути. Например, запись вида
 +
 +
[[Файл:Запись multiply.png|Алгоритм формирования XML.png]]
 +
 +
приведет к тому, что по каждой строке таблицы Сотрудники будет проведено копирование объекта Сотрудник с идентификатором из объекта НашаОрганизация из ''той же строки'', а не по всем записям таблицы Сотрудники.
 
* Группа обработчиков '''handlers_before_execute'''.
 
* Группа обработчиков '''handlers_before_execute'''.
 +
# Обработчик  ''set_priority_to_hierarchy_objects''
 +
#* Обработчик устанавливает приоритет обработки для объектов, с включенным параметром "Иерархия" ("Истина") в файле настроек. В результате работы обработчика не получится ситуации, при которой потомок будет обрабатываться раньше, чем его предок.
 +
#* Допустимые параметры:
 +
#*#  Иерархия - (необяз). Добавляется как узел "Иерархия" в основной узел "ини".  Принимает значения 'Истина'/'Ложь'. Если не указан, то значение 'Ложь'.
 
* Группа обработчиков '''handlers_after_execute'''.
 
* Группа обработчиков '''handlers_after_execute'''.
 
[[Категория:1С]]
 
[[Категория:1С]]

Текущая версия на 11:38, 23 января 2020

Общее описание

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

Почему возникает необходимость настройки?

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

Дополнительные функции обработки данных (хэндлеры)

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

before_calc

after_calc

Группа обработчиков handlers_after_calc вызывается ....

split_document

Формирует по указанной табличной части объекта отдельные записи в ESO.

Параметры:

  • name_table_doc (обяз) - имя табличной части объекта, по которой происходит разбивка.

Алгоритм: .....

split_and_rewrite_document_overtime

Обработчик парсит входящий массив на ESO по name_table_doc и name_split_param_1/name_split_param_2. А так же подставляем значения из name_param_3/name_param_4 в итоговую структуру в зависимости от условия. Собираем финальный объект по согласованной структуре

  1. Обработчик handler_group_table
    • Обработчик группировки таблиц. Делает группировку по параметрам group. Допускается последовательная группировка при нескольких узлах group. Поля, не указанные в группировках group_by, group_what, group_joined отсекаются. Пример настройки можно посмотреть в синхронизации кадровых документов с 1С КАМИН расчет зарплаты 5.0.
    • Допустимые параметры group:
      1. data_get (необяз) - путь к группируемым данным. Если не указан, либо пуст то берется корень
      2. data_put (необяз) - куда положить новые сгруппированные данные. Если не указан, либо пуст то берётся как data_get
      3. group_by (обяз) - перечисление полей через "," по которым проходит группировка
      4. group_joined (необяз) - перечисление полей, связанных с группировками. Указанные поля добавятся в результирующую строку из первой группировки значения. Служит для уменьшения выборки поиска, в это поле рекомендуется добавить все, что завязано на группируемые поля.
      5. group_what (необяз) - узлы с описанием группируемых параметров.
        • Допустимые параметры:
        1. function (обяз) - функция группировки. Доступные функции: sum, min, max, count, count_diff
        2. key (необяз) - ключ данных. Если не указан, то берётся имя узла.
        3. type (необяз) - приведение значения к типу. Например, для суммирования числа. Доступные типы: int, str, array (если не массив, то создается массив со значением). Если не указан, то должен совпадать для всех группируемых элементов.
      6. group_in_table (необяз) - узлы с формированием данных в подтаблицу для каждой группируемой строки. Имя новой таблицы определяется по имени узла.
        • Допустимые параметры:
        1. group_by (необяз) - путь к дополнительным группируемым данным (помимо group_by основной группировки).
        2. group_joined, group_what алогично основной группировке таблицы.
  2. Обработчик handler_multiply_sub_objects
    • Обработчик клонирует указанные объекты в таблице ESO, добавляя в ID копии, значения этих подобъектов или их ID. Исходный объект при этом помечается типом "Служебный", а в данных по указанному пути, значение старого объекта меняется на новое. Пример настройки можно посмотреть в синхронизации кадровых документов с 1С КАМИН расчет зарплаты 5.0.
    • Допустимые параметры multiply:
      1. multiply_by (обяз) - путь к копируемым данным через ".". Если на пути встречается массив объектов (табличная часть), скопированы будут объекты по всем строкам.
      2. multiply_what(обяз) - путь к значению, по которому будет выполнено копирование через ".". В случае объекта, берётся его уникальный идентификатор. Если на пути встречается массив объектов (табличная часть), то копирование будет проведено по каждому объекту по всем строкам.
    • Примечание: в случае, если начальный путь в multiply_by и multiply_what какое-то время совпадает, то копирование проводится по остаточному различию в пути. Например, запись вида

Алгоритм формирования XML.png

приведет к тому, что по каждой строке таблицы Сотрудники будет проведено копирование объекта Сотрудник с идентификатором из объекта НашаОрганизация из той же строки, а не по всем записям таблицы Сотрудники.

  • Группа обработчиков handlers_before_execute.
  1. Обработчик set_priority_to_hierarchy_objects
    • Обработчик устанавливает приоритет обработки для объектов, с включенным параметром "Иерархия" ("Истина") в файле настроек. В результате работы обработчика не получится ситуации, при которой потомок будет обрабатываться раньше, чем его предок.
    • Допустимые параметры:
      1. Иерархия - (необяз). Добавляется как узел "Иерархия" в основной узел "ини". Принимает значения 'Истина'/'Ложь'. Если не указан, то значение 'Ложь'.
  • Группа обработчиков handlers_after_execute.