Введение.
Думаю, каждый разработчик 1С хоть раз в своей практике сталкивался с задачей замены вызовов процедур и функций в модулях внешних обработок на новые.
К сожалению, 1С не предоставила удобного инструмента для подобных случаев: фактически, доступна лишь глобальная замена, пользоваться которой - при наличии у вас большого числа обработок - то еще мучение.
Недавний релиз ЗУП, в котором произошла массовая миграция процедур и функций из модуля ОбщегоНазначения в модуль ОбщегоНазначенияЗК, заставил меня задуматься об автоматизации процесса и в результате была написана обработка, позволяющая по словарю замен выполнить все требуемые действия.
Благодарности.
Обработка основана на V8Unpack (//infostart.ru/public/15695/), автору которого выражаю мою искреннюю благодарность.
История версий.
Версия 1.1 от 20.11.2013 г - изменен алгоритм замены в текстах модулей, добавлена поддержка управляемых форм. Добавлена возможность помещать в папку результата только измененные обработки.
Версия 1.2 от 29.11.2013 г - добавлена возможность замены текстов без учета регистра. Исправлены выявленные проблемы.
Пошаговая инструкция.
1. Выгрузка внешних обработок
На данном этапе производится выгрузка обработок из справочника "Внешние обработки" в каталог для их дальнейшей обработки.
В случае, если у вас уже есть каталог с обработками, то можете сразу переходить к шагу №2.
Для выгрузки обработок из базы, следует воспользоваться кнопкой "Выгрузить" на панели действий формы.
Предварительно, требуется указать путь для сохранения внешних обработок (в разделе "Путь к внешним обработкам"). После выгрузки, система выдаст предупреждение об окончании процесса.
Внимание! Данный шаг доступен только для тех конфигураций, где есть справочник "Внешние обработки"; во всех остальных конфигурациях выгрузка будет невозможна.
Алгоритм выгрузки позаимствован из обработки с ИТС "КонвертацияВнешнихОбработок".
2. Выбор внешних обработок
На этом шаге, в разделе "Путь к внешним обработкам", требуется указать каталог с файлами внешних обработок (способ конвертации "Все файлы из каталога"), либо выбрать конкретную обработку для проведения замены текстов (способ конвертации "Выбранный файл").
3. Заполнение словаря замен
Для того, чтобы система знала, что и на что необходимо заменить в текстах модулей внешних обработок, в разделе "Словарь замен" требуется указать необходимое количество заменяемых строк и их новых значений.
Словарь также можно сохранить в файл/прочитать из файла (текстовый формат) для дальнейшего использования.
4. Замена строк
На данном этапе в модулях выбранных на шаге №2 внешних обработок производится замена подстрок, согласно словарю замен.
Для начала процесса, требуется указать путь для сохранения измененных внешних обработок (в разделе "Путь для сохранения результатов работы обработки") и нажать кнопку "Замена текстов" на панели действий формы.
После окончания процесса, система выдаст предупреждение.
Внимание! Обработки в исходном каталоге не изменяются, результат сохраняется в отдельный каталог!
5. Проверка результата (опционально)
На этом шаге производится проверка того, что полученные на выходе файлы не содержат критических ошибок.
Проверка запускается при нажатии на кнопку "Проверить" на панели действий формы; анализируются обработки в каталоге, указанном в разделе "Путь для сохранения результатов работы обработки"
Сразу скажу, что никакого глубокого анализа нет: производится простая попытка создать экземпляр внешней обработки из изменного файла, а возникающие ошибки выводятся в окно сообщений.
6. Загрузка внешних обработок в ИБ.
На данном этапе производится загрузка измененных обработок из каталога, указанного в разделе "Путь для сохранения результатов работы обработки" в справочник "Внешние обработки".
Для загрузки обработок в базу, следует воспользоваться кнопкой "Загрузить" на панели действий формы.
После загрузки, система выдаст предупреждение об окончании процесса.
Внимание! Данный шаг доступен только для тех конфигураций, где есть справочник "Внешние обработки"; во всех остальных конфигурациях загрузка будет невозможна!
Алгоритм загрузки позаимствован из обработки с ИТС "КонвертацияВнешнихОбработок".
Заключение.
Надеюсь, обработка окажется полезной в нелегкой работе разработчиков 1С.
Спасибо за внимание.