
В следующем обновлении не будет final у классов. Но если кто-то каким-то образом унаследовался от классов с final, то после установки обновления могут быть проблемы, т.к. я поменял сигнатуру методов (добавил строгую типизацию, местами отрефакторил). Изменения больше косметические, но всё же.
Кроме этого, я добавил возможность указать своего наследника вместо стандартного класса для Document, Template, DataProviderManager, UserPermissions через событие. Переопределив Template, можно будет указать свой тип парсера (вынес в отдельный метод). Т.к. классов для парсера два, то у Docx я добавил метод
getXmlClassName, где можно будет указать своего наследника вместо DocxXml.
Некоторые просили дать возможность добавлять свои поля в стандартные провайдеры в crm. Теперь такая возможность появилась - с помощью события можно будет подсунуть своего наследника вместо стандартного провайдера. И он будет использован во всех местах, без внесения изменений в интерфейс. Ну и всегда есть вариант наследовать DataProviderManager и там делать что угодно с провайдерами и полями.
Для ArrayDataProvider и HashDataProvider добавил геттеры и сеттеры, больше не надо будет использовать рефлексию в onBeforeProcessDocument.
Ещё будет добавлена возможность использовать повторяющиеся блоки внутри ячеек таблицы, и в маркере повторяющегося блока можно будет вставить модификатор index, чтобы он размножился только один раз для определенного элемента списка (эти способы можно комбинировать).
В одном из следующих обновлений crm выйдет выбор моей компании и реквизитов в роботе создания документа, печать свойств заказа.
Документацию написал.
По срокам - вряд ли скоро, не раньше мая.