Разработка и Конфигурация · 11 мин
Как найти функцию в 1С: все способы поиска кода и возможностей
Как найти функцию в 1С: поиск по конфигуратору, глобальный поиск по модулям, контекстная подсказка, поиск по синтакс-помощнику и в пользовательском режиме. Пошаговые инструкции.
Под «поиском функции в 1С» обычно понимают три разные задачи: найти уже написанную функцию в коде конфигурации, узнать, есть ли встроенная функция для нужной операции, или отыскать нужную возможность в пользовательском интерфейсе. Для каждой задачи есть свой инструмент: глобальный поиск по модулям, синтакс-помощник, контекстная подсказка редактора кода и поиск по меню в режиме 1С:Предприятие.
Точные названия пунктов меню и горячие клавиши зависят от версии платформы и от того, работаете вы в Конфигураторе или в EDT. Ниже описаны универсальные приёмы, которые работают в типовых конфигурациях на платформе 8.3, а также отмечены различия, о которых стоит помнить.
Определите, что именно вы ищете
Прежде чем открывать поиск, важно понять тип задачи. Если вы ищете функцию, которую кто-то уже написал в вашей конфигурации (например, «РассчитатьСкидку»), — это поиск по модулям кода. Если хотите узнать, есть ли в языке 1С готовая функция для работы со строками, датами или файлами, — это поиск по синтакс-помощнику. Если нужно найти, откуда вызывается конкретная функция, — это анализ ссылок и мест вызова.
Отдельный случай — поиск возможности в пользовательском режиме: например, бухгалтер ищет, где в программе формируется отчёт или создаётся документ. Здесь код искать не нужно, достаточно строки поиска в интерфейсе или полнотекстового поиска по данным.
Как выбрать способ поиска
Глобальный поиск по модулям конфигурации
Основной инструмент разработчика — глобальный поиск. В Конфигураторе он вызывается сочетанием Ctrl+Shift+F или через меню «Правка — Глобальный поиск». В открывшемся окне укажите строку поиска (имя функции или его часть), область поиска (вся конфигурация или выбранные объекты) и типы модулей, в которых искать: общие модули, модули объектов, формы, команды.
Результат поиска показывает список найденных строк с указанием объекта конфигурации и модуля. Двойной щелчок по строке открывает модуль на нужном месте. Это удобно, когда вы помните только часть имени функции — например, ищете по слову «Скидка» и находите все функции, где оно встречается.
- 1Откройте конфигурацию в Конфигураторе
- 2Нажмите Ctrl+Shift+F (Правка — Глобальный поиск)
- 3Введите имя функции или его часть, например «Рассчитать»
- 4Укажите область: вся конфигурация, включите модули объектов и общие модули
- 5Нажмите «Искать» и изучите список результатов
- 6Дважды щёлкните по нужной строке — откроется модуль на месте объявления или вызова
- 7Проверьте, что найденная функция — именно та: посмотрите параметры и комментарий над ней
В 1C:EDT аналогичный поиск вызывается через Ctrl+H с выбором вкладки поиска по коду, а также есть быстрый поиск объявления по Ctrl+клик на имени функции — редактор сразу переходит к её определению. В Конфигураторе переход к определению доступен через контекстное меню «Перейти к определению» (в новых версиях платформы) или через поиск по имени.
Синтакс-помощник: как узнать, есть ли встроенная функция
Если вы не знаете, существует ли в языке 1С готовая функция для вашей задачи, откройте синтакс-помощник: Ctrl+Shift+F1 в Конфигураторе или через меню «Справка». Это встроенный справочник по всем объектам, методам, функциям и операторам языка.
Поиск в синтакс-помощнике работает по дереву разделов и по строке поиска. Например, чтобы найти функции работы со строками, раскройте раздел «Общие объекты — Строковые функции» или просто введите в поиске «СтрНайти» или «длина строки». Для каждой функции приводится синтаксис, описание параметров, тип возвращаемого значения и примеры.
Практический приём: если вы помните примерное английское или русское название действия («найти», «разделить», «округлить»), введите его в поиск синтакс-помощника — часто функция находится с первой попытки. Также полезна вкладка «Индекс», где все элементы отсортированы по алфавиту.
Контекстная подсказка и шаблоны в редакторе кода
Когда вы пишете код и хотите вспомнить точное имя или параметры функции, используйте контекстную подсказку. Начните вводить имя и нажмите Ctrl+Пробел — редактор покажет список подходящих функций, процедур и методов, включая как встроенные, так и экспортные функции общих модулей конфигурации.
После выбора функции редактор подставляет шаблон вызова с параметрами. Подсказка по параметрам текущего вызова вызывается сочетанием Ctrl+Shift+Пробел — удобно, когда у функции много необязательных параметров и нужно вспомнить их порядок.
Если подсказка не показывает экспортные функции ваших общих модулей, проверьте, что у функции в общем модуле стоит ключевое слово «Экспорт», а сам модуль не отключён в конфигурации. Также помогает обновление конфигурации базы данных и перезапуск Конфигуратора — кэш подсказки иногда устаревает.
Как найти все места вызова функции
Задача «где используется эта функция» возникает при рефакторинге и перед удалением старого кода. Самый надёжный способ — глобальный поиск по точному имени функции во всей конфигурации. Чтобы отсечь совпадения внутри других слов, включите в окне поиска опцию «Слово целиком».
В 1C:EDT есть более точный механизм: выделите имя функции и вызовите поиск ссылок (Ctrl+Shift+G или через контекстное меню) — редактор построит список всех обращений именно к этой процедуре, а не просто текстовых совпадений. Это исключает ложные находки, когда одноимённая строка встречается в комментариях или в другом контексте.
Перед удалением функции убедитесь, что она не вызывается динамически — через «Выполнить» или обращение по строковому имени. Текстовый поиск такие вызовы не всегда находит однозначно, поэтому ищите также по фрагментам строк, где имя функции может быть собрано из частей.
Поиск функциональности в пользовательском режиме
Пользователям без доступа к Конфигуратору чаще нужно найти не функцию языка, а возможность программы: отчёт, обработку, документ. В интерфейсе «Такси» для этого есть строка поиска в панели функций (значок лупы или меню «Функции для технического специалиста» / «Все функции»): начните вводить название, например «прайс» или «инвентаризация», и программа покажет подходящие команды.
Если нужно найти конкретные данные — документ по номеру, контрагента по названию — используйте полнотекстовый поиск по данным (значок лупы в панели инструментов или соответствующая команда). Учтите: полнотекстовый поиск работает только если он включён администратором и индекс обновлён, иначе результаты будут неполными или пустыми.
Команда «Все функции» открывает полный список объектов конфигурации, доступных вашей роли. Если нужного пункта там нет, возможны две причины: недостаточно прав (тогда обратитесь к администратору) или объект выведен из интерфейса настройками конфигурации.
Как проверить, что вы нашли нужную функцию
Функция находится в ожидаемом общем модуле или объекте
Найдена одноимённая функция в другом контексте — проверьте параметры
Число и типы параметров совпадают с местом вызова
Параметры не совпадают — это другая функция или устаревшая версия
На тестовой копии вызов даёт ожидаемый результат
Результат отличается — проверьте, не переопределена ли логика в расширении
Найдены все вызовы, включая динамические
Есть вызовы через Выполнить() со строковым именем — их легко пропустить
Частые ошибки при поиске функций
Самая распространённая ошибка — поиск только в открытом модуле через Ctrl+F вместо глобального поиска. Функция может быть объявлена в общем модуле, и локальный поиск её не найдёт. Вторая ошибка — поиск по полному имени, когда вы помните его неточно: используйте часть имени или ключевое слово из логики функции.
Ещё одна проблема — игнорирование расширений конфигурации. Если функция добавлена или изменена расширением, в основной конфигурации вы её не найдёте. Проверьте список подключённых расширений и выполните поиск по их модулям отдельно.
Если функцию найти не удалось
Если глобальный поиск не дал результатов, проверьте три вещи. Первое: правильно ли написано имя — попробуйте варианты написания и сокращения. Второе: не находится ли функция в поставляемой конфигурации поставщика, закрытой от изменения, — тогда ищите её описание в документации к конфигурации. Третье: не ищете ли вы функцию платформы, которой не существует — сверьтесь с синтакс-помощником.
Когда нужной встроенной функции нет, типовые альтернативы таковы: поиск готовой функции в общих модулях конфигурации (в типовых решениях есть богатые библиотеки общего назначения), поиск аналога в Библиотеке стандартных подсистем или написание собственной функции. Перед написанием своей реализации стоит потратить несколько минут на поиск готовой — в типовых конфигурациях многие типовые операции уже реализованы.
Что важно запомнить
Глобальный поиск (Ctrl+Shift+F) находит функции в коде конфигурации, синтакс-помощник (Ctrl+Shift+F1) — встроенные функции платформы, Ctrl+Пробел — подсказывает имена при написании кода. Перед изменением функции найдите все места её вызова и сделайте резервную копию. Пользователям без Конфигуратора помогут «Все функции» и полнотекстовый поиск по данным.
Частые вопросы
Как быстро перейти к определению функции из места её вызова?
В 1C:EDT достаточно кликнуть по имени функции с зажатой клавишей Ctrl — редактор перейдёт к её объявлению. В Конфигураторе используйте контекстное меню «Перейти к определению» (в новых версиях платформы) или скопируйте имя и выполните глобальный поиск с опцией «Слово целиком» — объявление функции будет среди первых результатов.
Почему контекстная подсказка не показывает функцию из общего модуля?
Чаще всего у функции отсутствует ключевое слово «Экспорт» в объявлении, либо общий модуль имеет ограничения видимости (например, флаг «Вызов сервера» при вызове с клиента). Также помогает обновление конфигурации базы данных и перезапуск Конфигуратора — кэш подсказки мог устареть.
Как найти функцию, если известно только, что она делает, но не её имя?
Ищите по ключевому слову действия через глобальный поиск: «скидка», «округл», «печать», «курс». Дополнительно просмотрите список общих модулей конфигурации — их имена обычно отражают назначение (например, «РаботаСоСтроками», «Ценообразование»), и нужная функция, скорее всего, находится в тематическом модуле.
Можно ли искать функции в закрытых модулях поставщика?
Нет, модули, закрытые поставщиком паролем или поставкой без исходного текста, недоступны для просмотра и поиска. В таком случае ориентируйтесь на документацию к конфигурации, описание программного интерфейса в синтакс-помощнике (для типовых библиотек) или на места вызова этих функций в открытом коде.
Чем поиск в 1C:EDT отличается от поиска в Конфигураторе?
EDT построен на платформе Eclipse и предлагает семантический поиск: переход к определению по Ctrl+клик, поиск всех ссылок на функцию (без ложных текстовых совпадений), поиск по иерархии вызовов. Конфигуратор в основном выполняет текстовый поиск по модулям, что быстрее для простых задач, но менее точен при анализе связей.
Как пользователю найти нужный отчёт или документ без Конфигуратора?
Откройте меню «Все функции» (или строку поиска в панели функций интерфейса «Такси») и введите название объекта. Для поиска конкретных данных — документа по номеру, контрагента по имени — используйте полнотекстовый поиск, если он включён администратором. Если нужной команды нет в списке, вероятно, у вашей роли недостаточно прав — это вопрос к администратору системы.