Глобальный поиск и замена в модулях конфигурации

26.05.20

Разработка - Инструментарий разработчика

Зачастую у программиста возникает желание работать с кодом модулей конфигурации средствами встроенного языка: так, как мы сейчас работаем с данными. Как результат реализации данной потребности и родилась данная обработка. Она предназначена для минимизации ручного труда при внесении однотипных изменений в модули конфигурации. Она представляет из себя расширение глобального поиска и замены в конфигураторе. Отличие в предоставлении ряда дополнительных возможностей, таких, как: наложение условий И, ИЛИ, НЕ; поиск только в названии процедуры / функции, либо в теле определенной процедуры / функции; управление поиском в комментариях и др.

Скачать файлы

Наименование Файл Версия Размер
Глобальный поиск и замена в модулях конфигурации
.epf 107,75Kb
25
.epf 1 107,75Kb 25 Скачать

Обработка "Глобальный поиск в модулях конфигурации"

Расширение глобального поиска / замены в конфигураторе. Отличие в предоставлении ряда дополнительных возможностей по поиску:

  1. Возможность наложения условий И, ИЛИ, НЕ.
  2. Возможность поиска только в процедуре/функции с указанным именем.
  3. Возможность поиска только в названии процедуры / функции.
  4. Не осуществлять поиск в комментариях.
  5. Возможность замены на текстовый блок (с переносами строк).
  6. Использование переменных при поиске и замене.
  7. Возможность пакетного поиска.

Пример задачи, которую можно выполнить с помощью данной обработки: Во всех отчетах, в конце каждой процедуры СформироватьОтчет() добавить вызов функции ОбщегоНазначения.УстановитьСчетчикВызововОбъекта(Метаданные().ПолноеИмя()). Кроме тех процедур, в которых вывод табличного документа осуществляется вызовом общей функции ТиповыеОтчеты.СформироватьТиповойОтчет() (т. к. в ней уже есть вызов счетчика).

Предварительно.

Перед использованием необходимо «Выгрузить файлы конфигурации» в каталог на диске. Имеющаяся в 8.3 команда «Конфигурация –> Выгрузить конфигурацию в файлы» не подходит. Необходимо использовать команду «Выгрузить файлы конфигурации».

Важно! Из конфигуратора в платформе 8.3 исключены команды «Выгрузить файлы конфигурации» и «Загрузить файлы конфигурации». Однако, с помощью настройки главного меню можно отобразить эти команды в меню и пользоваться ими.   

После замены загрузка измененных модулей / макетов конфигурации осуществляется через меню: "Конфигурация -> Загрузить файлы конфигурации".

Ограничения.

  1. Предназначено для использования на обычных формах.
  2. Поиск осуществляется лучше всего в модулях и макетах СКД.
  3. Невозможно использование скобок при наложении условий И, ИЛИ.

 

Порядок использования.

Краткое описание порядка поиска.

  1. Указать каталог, в котором находятся заранее выгруженные файлы конфигурации.
  2. Указать операцию. Возможные варианты: стандартный поиск, пакетный поиск, замена.
     

    Закладка "Стандартный поиск"

  3. В табличной части "Строки поиска" указать строку или строки, которую необходимо найти в модулях конфигурации.
    Самая первая строка является ключевой строкой поиска, многие настройки поиска отталкиваются от нее, например, возможность поиска остальных строк рядом с ней.
    Возможные настройки:
    • Операция - логическое условие, соединяющее условие в текущей строке с предыдущим. Не используется для 1 строки. Возможные значения: И, ИЛИ. 
    • Строка поиска - искомый текст
    • Комментарий - краткое пояснение смысла строки
    • Пространство поиска:
      • Процедура - имя процедуры/функции, в которой осуществлять поиск. Если не указано, то поиск осуществляется в любой процедуре/функции или вне нее.
      • В процедуре целиком - флаг, указывающий, что поиск нужно осуществлять в тексте той процедуры/функции, в которой найдена 1 строка поиска. Не актуален для 1 строки поиска.
      • В названии процедуры - флаг, указывающий, что Строку поиска нужно искать только в названиях процедур и функций. Не рекомендуется использовать одновременно с заполнением ячейки в колонке "Процедура" (противоречие по сути поиска).
      • До строки поиска - количество строк до номера найденной по 1 условию строки. В пределах указанного количества строк выполняется поиск текущей строки поиска. Не актуально для 1 строки поиска. Если 0, то поиск осуществляется только в той же самой строке.
      • После строки поиска - количество строк после номера найденной по 1 условию строки. В пределах указанного количества строк выполняется поиск текущей строки поиска. Не актуально для 1 строки поиска. Если 0, то поиск осуществляется только в той же самой строке.
  4. В табличной части "Исключать найденные строки, если рядом встретилось (операция НЕ):" указать строку, при нахождении которой рядом с искомой, та исключается из результатов поиска.
    Возможные настройки:
    • Операция - логическое условие, соединяющее условие в текущей строке с предыдущим. Не используется для 1 строки. Возможные значения: И, ИЛИ. 
    • Строка поиска - исключаемый текст
    • Комментарий - краткое пояснение смысла строки
    • Пространство поиска:
      • В процедуре целиком - флаг, указывающий, что поиск нужно осуществлять в тексте той процедуры/функции, в которой найдена 1 строка поиска. Не актуален для 1 строки поиска.
      • В названии процедуры - флаг, указывающий, что Строку поиска нужно искать только в названиях процедур и функций. Не рекомендуется использовать одновременно с заполнением ячейки в колонке "Процедура" (противоречие по сути поиска).
      • До строки поиска - количество строк до номера найденной по 1 условию строки. В пределах указанного количества строк выполняется поиск текущей строки поиска. Не актуально для 1 строки поиска. Если 0, то поиск осуществляется только в той же самой строке.
      • После строки поиска - количество строк после номера найденной по 1 условию строки. В пределах указанного количества строк выполняется поиск текущей строки поиска. Не актуально для 1 строки поиска. Если 0, то поиск осуществляется только в той же самой строке.
  5. Нажать кнопку "Найти строки". Результат поиска будет отображен на закладке "Найденные строки".
     

    Полное описание порядка поиска.

  6. Поиск в комментариях. Управляет порядком поиска в комментариях. Возможные значения: включать, исключать, только в комментариях. По умолчанию установлено значение "Исключать", при котором поиск в комментариях не осуществляется. Все настройки поиска должны выполняться до нажатия кнопки "Найти строки".
  7. Учитывать регистр - указывает, что искать нужно строки в точном соответствии с регистром или искать с любым регистром. Аналог типового флага в глобальном поиске в конфигурации.
  8. Искать слово целиком - флаг указывает, что строка поиска не должна быть часть другого слова, а должна быть отдельным словом (перед и после нее должен быть пробел/перевод строки/начало или конец строки и т.д.)
  9. Заменить спецсимволы в XML. В xml некоторые знаки заменяются спецсимволами, например, >, <. Это затрудняет поиск, т.к. делает невозможным поиск "А < B". Если флаг установлен, то спецсимволы перед поиском преобразуются в привычный нам вид. Но при этом становится невозможна замена найденной строки, поэтому данный режим недоступен для операции "Замена".
  10. Ограничить пространство поиска процедурой, в которой найдена строка поиска (первая - для ТЧ Строки поиска). При установке данного флага поиск всех строк в табличных частях "Строки поиска" и "Исключать найденные строки..." осуществляется в той же процедуре/функции, в которой найдена 1 строка поиска.
  11. Параметры предварительного просмотра. Они не имеют отношения к поиску и управляются настройками просмотра текста модуля рядом с найденными строками.
  12. Использовать переменную - при установке данного флага предоставляется возможность использования переменной для поиска и замены. А именно: найденное рядом с 1 строкой поиска слово записывается в переменную. Затем эту переменную можно подставить в строку замены.
    • Переменная - имя переменной, в которую будет записано слово. Придуманное имя должно быть уникальным и иметь нулевую вероятность встретиться в тексте модуля. Впоследствии сохраненное в переменной значение можно будет посмотреть в таблице найденных строк в колонке "Значение переменной".
    • Расположение справа или слева от строки поиска
    Пример. Строка поиска: "Организация В (&Организации)", Переменная "&&&Перем", Расположение слева от строки поиска. При таких настройках будут найдены все условия из запросов с данной строкой поиска. В колонке "Значение переменной" для каждой найденной строки будет содержаться имя таблицы, например, "ОсновныеНачисления".
    На закладке "Замена" можно в поле "Заменить на:" использовать эту переменную, например, так: "Организация В (&Организации) или &&&Перем.Организация = ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)"

    Настройки и результаты поиска можно сохранять как стандартными средствами сохранения реквизитов формы 1С, так и в отдельные файлы - для загрузки их в других базах.z88;

    Закладка "Замена".

  13. Заменить на - строка, на которую будет выполнена замена искомой строки, расположенной в 1 строке табличной части "Строки поиска"
  14. Кнопка "Выполнить замену всех найденных строк - выполняет замену
  15. Кнопка "Удалить лишние файлы" - выполняет физическое удаление ранее выгруженных в каталог модулей конфигурации: тех из них, в которых не была найдена искомая строка.
     

    Закладка "Пространство поиска".

    На данной закладке расположены настройки отбора модулей конфигурации, участвующих в поиске, а именно:
  16. Отбор по расширению модулей. Возможные значения: .txt (модули), .xml (СКД), .mxl (макеты), .bin (произвольный тип: картинки, данные и др.).
  17. Отбор по подсистеме
  18. Кнопка "Отобрать" - выполняет поиск модулей конфигурации, удовлетворяющих отборам
  19. Кнопка "Разрешить редактирование" - позволяет вручную отредактировать список найденных модулей.
  20. Кнопка "Исключить старые объекты" - если кнопка нажата, то при отборе модулей исключаются те объекты, в имени, синониме или комментарии которых присутствует подстрока "старый", "не используется" и их вариации.
     

    Закладка "Найденные строки".

    На данной закладке расположены найденные в результате поиска строки. По двойному щелчку можно открыть модуль на найденной строке и внести изменения вручную. Найденные строки можно классифицировать: откладывать с указанием комментария, исключать из последующих поисков.
  21. Табличная часть "Найденные строки".
  22. Кнопка "Отложить" - позволяет отложить найденные строки. При этом она будет перенесена в табличную часть "Отложено" на одноименной закладке. При этом перемещена будет текущая строка, если текущая колонка - №, Текст строки, Значение переменной, № стр. в модуле. Если текущая колонка - Процедура, то будут перемещены все найденные строки с той же процедурой (в том же модуле). Если текущая колонка - имя или класс объекта метаданных, то будет перемещен весь объект метаданных (все найденные строки из него). Если текущая колонка - модуль объекта метаданных, то будут исключены все строки из этого модуля объекта метаданных.
  23. Кнопка "Исключить" - позволяет исключить текущую найденную строку. При этом она будет перенесена в табличную часть "Исключено" на одноименной закладке. При этом исключена будет текущая строка, если текущая колонка - №, Текст строки, Значение переменной, № стр. в модуле. Если текущая колонка - Процедура, то будут исключены все найденные строки с той же процедурой (в том же модуле). Если текущая колонка - имя или класс объекта метаданных, то будет исключен весь объект метаданных. Если текущая колонка - модуль объекта метаданных, то будут исключены все строки из этого модуля объекта метаданных.
     

    Закладка "Отложено".

    На данной закладке расположены найденные строки, которые пользователю временно не нужны, и которые он отложил по кнопке "Отложить".
  24. Кнопка "Открыть файл" - позволяет открыть файл.
  25. Переместить в исключено - перемещает текущую строку на закладку "Исключено".
     

    Закладка "Исключено".

    На данной закладке расположены найденные строки, которые пользователю не нужны, и которые он исключил по кнопке "Исключить".
  26. Кнопка "Открыть файл" - позволяет открыть файл. 
  27. Кнопка "Удалить файлы" - выполняет физическое удаление файлов, соответствующих модулям, представленным в табличной части "Исключено".

     

    Закладка "Файлы".

    На данной закладке расположены найденные модули конфигурации, в которых и осуществляется поиск.
  28. Кнопка "Отобрать" - выполняет поиск модулей конфигурации, удовлетворяющих отборам на закладке "Пространство поиска"

 

Тестирование производилось на платформе 8.3.9.1818.

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

См. также

SALE! 20%

Infostart Toolkit: Инструменты разработчика 1С 8.3 на управляемых формах

Инструментарий разработчика Роли и права Запросы СКД Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

13000 10400 руб.

02.09.2020    122268    673    389    

715

SALE! 25%

Infostart PrintWizard

Пакетная печать Печатные формы Инструментарий разработчика Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:Конвертация данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

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

18000 15300 руб.

06.10.2023    7323    22    6    

39

SALE! 20%

Infostart УДиФ: Управление данными и формами

Инструменты администратора БД Инструментарий разработчика Роли и права Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

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

10000 8000 руб.

10.11.2023    3567    11    1    

34

SALE! 30%

PowerTools

Инструментарий разработчика Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

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

3600 2520 руб.

14.01.2013    177771    1074    0    

849

Многопоточность. Универсальный «Менеджер потоков» 2.1

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    99364    239    97    

296

[ЕХТ] Фреймворк для Расширений 1С

Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Платные (руб)

"Фреймворк для Расширений 1С" это универсальное и многофункциональное решение, упрощающее разработку и поддержку создаваемых Расширений. Поставляется в виде комплекта из нескольких Расширений с открытым исходным кодом. Работает в любых Конфигурациях в режиме Управляемого приложения с режимом совместимости 8.3.12 и выше без необходимости внесения изменений в Конфигурацию.

3000 руб.

27.08.2019    18128    6    8    

40

1С HTML Шаблоны / HTML Templates

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Быстрая и удобная обработка для работы с шаблонами HTML. Позволяет легко и быстро формировать код HTML.

2040 руб.

27.12.2017    28115    3    10    

15

Выполнение произвольного кода или запроса с параметрами через Web-сервис (замена COM-подключений)

Инструментарий разработчика Обмен между базами 1C Платформа 1С v8.3 Платные (руб)

В процессе работы в 1С часто возникает потребность получить данные из другой базы.  Обычно это делается через COM-соединение, и время выполнения запроса при этом оставляет желать лучшего. В данной публикации представлено универсальное решение, позволяющее практически моментально выполнить произвольный код или запрос с параметрами в другой информационной базе через Web-сервис.

2400 руб.

24.09.2019    23605    15    15    

32
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. 300_po_vstrechke 1498 24.05.21 12:18 Сейчас в теме
Спасибо за хорошую обработку!
user1518039; +1 Ответить
2. chum1roma 14 11.12.21 10:58 Сейчас в теме
Либо не очевидно, либо как идея для доработки, возможность исключения поиска строки в тексте запроса.
Иногда требуется найти что-то, но не в запросах, так как там повторяется много раз одно и то же, и сложнее для понимания и поиска непосредственно кода на встроенном языке
3. keifaya 193 17.12.21 19:57 Сейчас в теме
(2) Надо добавить в разделе "Исключать найденные строки, если рядом встретилось (операция НЕ):" строку, в которой в поле "Строка исключения" указать "|"
Прикрепленные файлы:
Оставьте свое сообщение