Как в конфигураторе 1С 7.7 найти документ, в формуле кнопки которого используется конкретная переменная?

Программист 1С v7.7 IT и автоматизация бизнеса
← На главную

Разберем типичную задачу разработчика в платформе 1С:Предприятие 7.7: в конфигурации содержится большое количество документов, и в одном или нескольких из них на форме размещена кнопка, в свойствах которой (в поле «Формула») прописано выражение или присвоение переменной (например, ГлДействия = ""). Открывать каждый документ и вручную проверять свойства всех кнопок неэффективно. Рассмотрим доступные методы быстрого нахождения нужных элементов.

Способ 1: Использование штатного глобального поиска в конфигураторе

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

Разберем по шагам, как настроить глобальный поиск:

  1. Откроем конфигурацию в режиме Конфигуратор.
  2. В главном меню перейдем в пункт Правка и выберем команду Поиск во всех текстах (или воспользуемся стандартным сочетанием клавиш).
  3. В поле ввода строки поиска укажем искомую переменную (например, ГлДействия).
  4. В группе настроек области поиска обязательно установим флаг В формулах диалогов, а также оставим включенным флаг В модулях.
  5. Нажмем кнопку Искать.

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

Почему задачу нельзя решить через объект встроенного языка «Метаданные»?

Проанализируем программный подход и выясним, почему нельзя написать внешнюю обработку для прямого перебора кнопок через объект встроенного языка Метаданные:

В платформе 1С 7.7 объектная модель Метаданные предоставляет доступ только к общей структуре прикладного решения: составу документов, справочников, их реквизитов, табличных частей и регистров. Внутреннее устройство экранных форм, перечень визуальных контролов и свойства формул кнопок не входят в состав объектной модели метаданных и программно через встроенный язык недоступны.

Способ 2: Распаковка файла метаданных (MD) в текстовый формат

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

Файл конфигурации 1С 7.7 (1Cv7.MD) представляет собой составной файл-хранилище. С помощью специализированных инструментов разбора md-файлов его можно распаковать в дерево каталогов с текстовыми файлами. В распакованном виде описания всех диалогов, включая формулы кнопок, сохраняются в виде обычного текста. После этого можно воспользоваться любым сторонним текстовым редактором или консольными утилитами для мгновенного поиска любых конструкций.

Способ 3: Сравнение конфигураций и получение полного отчета

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

  1. В режиме Конфигуратор выберем пункт меню Конфигурация — Сравнение и объединение конфигураций.
  2. Сравним текущую конфигурацию с пустой конфигурацией (или с эталонным файлом).
  3. В появившемся дереве сравнения сформируем детальный отчет по структуре объектов и элементов диалогов.
  4. В полученном текстовом отчете выполним стандартный поиск по имени переменной ГлДействия.

Способ 4: Использование скриптов OpenConf

Для регулярных задач анализа структуры форм в среде 1С 7.7 применяется надстройка OpenConf. С ее помощью можно написать скрипт на языке VBScript или JScript, который автоматизирует перебор открытых окон конфигуратора, считывает свойства контролов на слоях диалога и выводит точные координаты элементов, содержащих искомую переменную в формуле.

Рекомендации по синтаксису поиска в формулах кнопок

Обратим внимание на синтаксические нюансы при поиске выражений в кнопках 1С 7.7:

В поле формулы кнопки могут находиться не только имена вызываемых процедур, но и прямые присваивания значений переменным, например:

ГлДействия = "Провести"

При формировании поискового запроса рекомендуется искать только имя самой переменной (в нашем примере — ГлДействия) без знаков равенства, пробелов или кавычек. Это исключит пропуск совпадений из-за случайных пробелов или переносов строк внутри формулы элемента диалога.

Важное ограничение: Штатный поиск во всех текстах сканирует только саму конфигурацию (файл 1Cv7.MD). Если документ или обработка вынесены во внешний файл с расширением .ert, штатный поиск найдет совпадение только в том случае, если этот файл предварительно открыт в конфигураторе.

← На главную