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

26.05.20

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

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

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Глобальный поиск и замена в модулях конфигурации
.epf 107,75Kb ver:1
28 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

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

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

  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.

Вступайте в нашу телеграмм-группу Инфостарт

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

См. также

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку одновременно в несколько потоков. А так же автоматически, без непосредственного участия пользователя. Решение в Реестре отечественного ПО

24900 руб.

20.08.2024    59248    315    158    

286

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта 1С:Предприятие 8 Платные (руб)

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

16500 руб.

02.09.2020    243220    1328    419    

1118

Инструментарий разработчика Нейросети Платные (руб)

Первые попытки разработки на 1С с использованием больших языковых моделей (LLM) могут разочаровать. LLMки сильно галлюцинируют, потому что не знают устройства конфигураций 1С, не знают нюансов синтаксиса. Но если дать им подсказки с помощью MCP, то результат получается кардинально лучше. Далее в публикации: MCP для поиска по метаданым 1С, справке синтакс-помошника и проверки синтаксиса.

15250 руб.

25.08.2025    39173    77    19    

91

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

Расширение для создания и редактирования печатных форм в системе 1С:Предприятие 8.3. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и прозрачность разработки, а также навести порядок в многообразии корпоративных печатных форм.

22570 руб.

06.10.2023    34794    88    35    

112

Инструментарий разработчика Программист 1С:Предприятие 8 Платные (руб)

Инструмент для написания и отладки кода в режиме «1С:Предприятие». Представляет собой консоль кода с возможностью пошаговой отладки, просмотра значений переменных любых типов, использования процедур и функций, просмотра стека вызовов, вычисления произвольных выражений на встроенном языке в контексте точки останова, синтаксического контроля и остановки по ошибке. В консоли используется удобный редактор кода с подсветкой, контекстной подсказкой, возможностью вызова конструкторов запроса и форматной строки.

9500 руб.

17.05.2024    48744    168    63    

205

Инструменты администратора БД Инструментарий разработчика Роли и права Программист 1С:Предприятие 8 1C:Бухгалтерия Россия Платные (руб)

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

17000 руб.

10.11.2023    23399    84    42    

99

Разработка Инструментарий разработчика Работа с интерфейсом Адаптация типовых решений Нейросети 1C:Бухгалтерия 1C:ERP 1С:ЗУП 1С:КА 1С:УНФ 1С:УТ 1С:Розница 1С:ДО 1С:ERP Управление предприятием 2 Платные (руб)

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

36600 руб.

28.08.2025    5808    2    2    

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