БИТ.ФИНАНС

Рекомендации по увеличению быстродействия трансляции

Сокращение количества правил трансляции
Для повышения производительности желательно создавать меньшее количество элементов справочника «Правила трансляции», поскольку механизмом проверяется каждое «Правило…»
Использование иерархии в правилах трансляции
При наличии нескольких правил с одним счетом источником следует объединить их под одним общим. Если проводка при трансляции не удовлетворяет условиям верхнего уровня, то правила нижнего уровня не проверяются

Важно: Нельзя использовать группу счетов в поле «Счёт – источник». Трансляция осуществляется только по счетам, используемым в проводках
Распространена ситуация, когда мэппинг расходов и доходов настроен по значениям аналитик счетов.

На один счёт-источник может быть создано несколько сотен правил трансляции. При добавлении одного группирующего счета можно добиться существенной эффективности.
Улучшение: Сокращение времени выполнения трансляции от 10%
Сокращение количества произвольных условий
При использовании произвольных условий следует учитывать, что они будут выполняться при каждом поиске подходящего правила трансляции, что может значительно понизить быстродействие механизма трансляции.

Сокращение произвольных условий возможно несколькими путями. Во-первых, можно объединить одинаковые произвольные условия для одного счета.
После вынесения произвольного условия в правило верхнего уровня, его можно удалить из подчиненных правил и добиться ускорения трансляции:
Улучшение: Сокращение времени выполнения трансляции от 8%
Во-вторых, по возможности произвольное условие следует заменить, например, используя возможности конструктора условий в «Правилах трансляции».
Сокращение избыточных произвольных условий привело к следующим результатам:
Улучшение: Сокращение времени выполнения трансляции от 8%
В некоторых случаях оптимальным решением является вынесение повторяющегося кода в справочник «Правила заполнения полей при трансляции» на закладку «Алгоритмы».

Однако следует учитывать:
  • алгоритмы «Перед формированием записи» и «После формирования записи» отрабатывают для каждой проводки
  • алгоритмы «Перед формированием набора записей» и «После формирования набора записей» для каждого документа-регистратора
Назначение алгоритмов только для тех объектов системы, где они должны применяться
Распространено заполнение в «Правилах заполнения полей при трансляции» алгоритмов:

  • Перед формированием набора записей
  • Перед формированием записи
  • После формирования записи
  • После формирования набора записей

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

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

Например, если алгоритм касается только выручки, то необходимо назначить его для соответствующих документов-регистраторов, например, для «Реализации» и «Корректировки реализации».
Улучшение: Сокращение времени выполнения трансляции от 30% и более
Отказ от использования дополнительных реквизитов и дополнительных сведений
Если данные, введенные с помощью использования механизма дополнительных сведений или дополнительных реквизитов используются только для информации, то использование данных механизмов полностью оправданно.

Однако если их использовать для настройки трансляции, то это значительно замедляет её. По возможности лучше добавить реквизит объекту, чем добавить дополнительный реквизит. Не рекомендуется использовать подобное условие в правилах верхнего уровня и для больших объемов данных.
Рассмотрим пример с проверкой контрагента на то, является ли он связанной стороной. В исходном примере данное условие задавалось с помощью произвольного условия. Нам удалось оптимизировать трансляцию, сгруппировав все условия на контрагента для одного счета. Однако группировка этого условия невозможна для множества балансовых счетов, поскольку счёт-источник различается.

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

После группировки правил трансляции доходов и расходов количество произвольных условий на контрагентов было сокращено до 112 (из них 5 - в правилах трансляции доходов и расходов). Время трансляции по данным правилам возьмем за 100%.

Во всех случаях условие было заменено на дополнительный реквизит или на новый реквизит справочника «Контрагенты». Результаты приведены в таблице:

Длительность трансляции относительно длительности трансляции с произвольными условиями