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

18 10

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

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

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

На первом этапе необходимо выбрать, какие компоненты добавить в пакет разработки. По умолчанию все галочки проставлены.

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

Важно! Мастера действий, типовые маршруты и пользовательские сценарии должны быть выгружены при помощи специальных сценариев экспорта (а не как записи справочника).

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

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

Во время выгрузки ведется статистика количества выгруженных компонент каждого типа. Эта статистика тоже попадет на завершающий этап мастера.

Если какие-то из компонент в базе не найдены, информация об этом тоже будет выведена на завершающем этапе мастера.

К сожалению, не обошлось без погрешности. Среди компонент, которые не найдены в базе, могут оказаться функции, которые используются в SQL- запросе, например ltrim(), rtrim(), функции MS Excel, например СУММ(), а также функции других языков программирования и разметки.

Для работы с мастером необходимо:

  1. Принять разработку из файла dev.isx;
  2. Принять мастер из файла Wizards.xml.

Автоматическая выгрузка компонент, используемых в разработке.zip (34,30 Кб)

Совместимо с версиями, начиная с 4.7.

Приятного использования!

Анна Долганова

А системные функции тоже подтягиваются? И рекурсивно такие функции обрабатываются?

Мастера действий, типовые маршруты и пользовательские сценарии должны быть выгружены при помощи специальных сценариев экспорта Что будет, если пакет был через экспорт записей сделан? Свалится ошибка, или ничего не найдет?

А вообще - очень круто! Ещё бы dfm-ки парсились на строки локализации. Спасибо! cool

Ксения Иванова

 А системные функции тоже подтягиваются?

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

И рекурсивно такие функции обрабатываются?

Да, прикладные функции обрабатываются рекурсивно.

Что будет, если пакет был через экспорт записей сделан?

Если типовые маршруты, мастера действий или пользовательские сценарии выгрузить как записи справочников, то поля типа Текст выгрузятся в отдельные файлы, которые не будут обрабатываться утилитой, то есть просто ничего не будет найдено. 

Ещё бы dfm-ки парсились на строки локализации.

Зарегистрировано как пожелание.

Денис Архипов
Совместимо с версиями, начиная с 4.7.

При импорте мастера в IS-Builder 7.11.0.2410 ошибка

[Window Title]
Ошибка

[Main Instruction]
Реквизит "LastUpdate" справочника "WIZARDS" не найден.

[Expanded Information]
Функция "СпрИмпорт": ошибка в строке 444.
Сценарий "ImportWizard": ошибка в строке 141.

[^] Меньше сведений  [OK] [Справка]

Денис Архипов

[Window Title]
Ошибка

[Content]
Неверное количество параметров при вызове функции.

[Expanded Information]
Функция "ComponentAutoExport": ошибка в строке 197.
Мастер "Автоматическая выгрузка компонент", этап "Files", действие "Finish": ошибка в строке 55.

[^] Меньше сведений  [ОК]

Ксения Иванова
При импорте мастера в IS-Builder 7.11.0.2410 ошибка

Почистила xml-ку, перезалила архив.

[Window Title] Ошибка [Content] Неверное количество параметров при вызове функции.

Не удалось повторить, можете прислать тестовые данные? Можно в личку.

Дмитрий Клементьев

Добрый день.

В предложенном пакете некоректное значение разделителя в функции ComponentAutoExport, а именно

DELIMITER = ';)|*(' & ')^%#'

Символ процента при формировании строки с не найденными функциями мешает функции Format(FUNCTION & Delimiter; FunctionName), где FUNCTION содержит символ процента, а Delimiter добавляет еще один. Но в качестве формальных параметров передается только один параметр FunctionName, в результате чего невозможно завершить действие "Мастер действия", по причине возникновения исключения.

В целом полезное решение, спасибо.

Денис Архипов
Не удалось повторить, можете прислать тестовые данные? Можно в личку.

подозреваю, что это оно:

В предложенном пакете некоректное значение разделителя в функции ComponentAutoExport, а именно DELIMITER = ';)|*(' & ')^%#'

CHR(1) или что угодно из первых десяток кодов символов должно скорее всего помочь.

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