Некоторое время назад на сайте публиковалась статья, которая рассказывала об инструменте выгрузки строк локализации и констант, которые встречались в тексте разработки. После активного использования, возникло несколько пожеланий, которые реализованы в текущей версии.
Во-первых, теперь в текстах разработки есть возможность найти не только константы и строки локализации, но и прикладные функции. Что особенно важно, текст добавляемой функции рекурсивно обрабатывается, и в пакет сразу добавляются компоненты, встречающиеся в нем.
Во-вторых, для удобной работы с инструментом, диалог с пользователем теперь оформлен в форме мастера действий.
На первом этапе необходимо выбрать, какие компоненты добавить в пакет разработки. По умолчанию все галочки проставлены.
На втором этапе необходимо указать пакеты с разработкой, мастерами действий, типовыми маршрутами и пользовательскими расчетами. Для дальнейшей работы достаточно одного из пакетов.
Важно! Мастера действий, типовые маршруты и пользовательские сценарии должны быть выгружены при помощи специальных сценариев экспорта (а не как записи справочника).
При нажатии на кнопку Готово в пакет с разработкой будут выгружены компоненты с указанными на первом этапе типами, которые используются в текстах разработки из переданных файлов.
Если пакет разработки не указан, то сформируется новый файл Output.isx, в который будут выгружены компоненты. Он будет сохранен в той же папке, что и пакет с мастерами, типовыми маршрутами и пользовательскими расчетами. Путь до папки с пакетом разработки будет добавлен на завершающий этап.
Во время выгрузки ведется статистика количества выгруженных компонент каждого типа. Эта статистика тоже попадет на завершающий этап мастера.
Если какие-то из компонент в базе не найдены, информация об этом тоже будет выведена на завершающем этапе мастера.
К сожалению, не обошлось без погрешности. Среди компонент, которые не найдены в базе, могут оказаться функции, которые используются в SQL- запросе, например ltrim(), rtrim(), функции MS Excel, например СУММ(), а также функции других языков программирования и разметки.
Для работы с мастером необходимо:
Автоматическая выгрузка компонент, используемых в разработке.zip (34,30 Кб)
Совместимо с версиями, начиная с 4.7.
Приятного использования!
А системные функции тоже подтягиваются? И рекурсивно такие функции обрабатываются?
Мастера действий, типовые маршруты и пользовательские сценарии должны быть выгружены при помощи специальных сценариев экспорта - Что будет, если пакет был через экспорт записей сделан? Свалится ошибка, или ничего не найдет?
А вообще - очень круто! Ещё бы dfm-ки парсились на строки локализации. Спасибо!
А системные функции тоже подтягиваются?
Системные функции в пакет разработки подтягиваться не будут. В этом нет смысла, в рамках одной версии системы они одинаковы. А вот прикладные выгрузятся все, даже те, которые очень давно не менялись, но это не проблема, они просто не примутся в базе, в которую будет импортироваться полученный пакет.
Да, прикладные функции обрабатываются рекурсивно.
Если типовые маршруты, мастера действий или пользовательские сценарии выгрузить как записи справочников, то поля типа Текст выгрузятся в отдельные файлы, которые не будут обрабатываться утилитой, то есть просто ничего не будет найдено.
Зарегистрировано как пожелание.
При импорте мастера в 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.
[^] Меньше сведений [ОК]
Почистила xml-ку, перезалила архив.
Не удалось повторить, можете прислать тестовые данные? Можно в личку.
Добрый день.
В предложенном пакете некоректное значение разделителя в функции ComponentAutoExport, а именно
DELIMITER = ';)|*(' & ')^%#'
Символ процента при формировании строки с не найденными функциями мешает функции Format(FUNCTION & Delimiter; FunctionName), где FUNCTION содержит символ процента, а Delimiter добавляет еще один. Но в качестве формальных параметров передается только один параметр FunctionName, в результате чего невозможно завершить действие "Мастер действия", по причине возникновения исключения.
В целом полезное решение, спасибо.
подозреваю, что это оно:
CHR(1) или что угодно из первых десяток кодов символов должно скорее всего помочь.
Авторизуйтесь, чтобы написать комментарий