К статье
Практический материал

Разработка и Конфигурация · 9 мин

Где находится общий модуль в 1С и как его найти

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

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

Многие начинающие разработчики ищут общие модули среди файлов базы или в каталоге шаблонов — это неверный путь. Код общих модулей физически находится в файле информационной базы (1Cv8.1CD для файлового варианта) или в таблицах сервера СУБД, если база работает в клиент-серверном режиме. Редактировать и просматривать их следует исключительно штатными средствами платформы.

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

Где в конфигураторе находится раздел общих модулей

Откройте информационную базу в режиме «Конфигуратор» и вызовите окно конфигурации через меню «Конфигурация → Открыть конфигурацию» или сочетанием клавиш Ctrl+Shift+С. Слева появится дерево метаданных — иерархический список всех объектов прикладного решения.

В дереве найдите ветку «Общие» — она расположена в верхней части списка, сразу после узлов «Константы» и «Справочники» в типовом порядке сортировки. Раскройте её щелчком по значку «плюс». Внутри находятся подсистемы, параметры сеанса, роли, планы обмена и среди них — узел «Общие модули». Раскройте его, и вы увидите полный перечень модулей конфигурации в алфавитном порядке.

Двойной щелчок по имени модуля открывает его текст в редакторе. Если конфигурация большая, а узел «Общие» не виден из-за прокрутки, воспользуйтесь строкой поиска в верхней части окна конфигурации: введите часть имени модуля, и дерево отфильтруется автоматически.

Как быстро найти нужный общий модуль

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

Поиск по имени в дереве конфигурации

Установите курсор в поле поиска над деревом метаданных и начните вводить имя модуля, например «РаботаСФайлами». Список сузится до совпадений. Это самый быстрый способ, если имя модуля известно хотя бы частично.

Глобальный поиск по тексту модулей

Если известно имя процедуры или фрагмент кода, используйте «Правка → Глобальный поиск» (Ctrl+Shift+F). В настройках поиска отметьте область «Общие модули» или оставьте поиск по всей конфигурации. Результат покажет не только модуль, но и конкретные строки, где встречается искомый текст.

Переход к модулю из места вызова

Если вы видите в коде вызов вида ОбщегоНазначения.ЗначениеРеквизитаОбъекта(...), установите курсор на имя процедуры и нажмите F12 — конфигуратор перейдёт к определению процедуры и автоматически откроет нужный общий модуль. Это самый надёжный способ понять, в каком модуле реализована конкретная функция.

Как открыть общий модуль
  1. 1
    Запустите базу в режиме «Конфигуратор»
  2. 2
    Откройте дерево конфигурации (Ctrl+Shift+С)
  3. 3
    Раскройте ветку «Общие» → «Общие модули»
  4. 4
    Найдите модуль по имени или через глобальный поиск (Ctrl+Shift+F)
  5. 5
    Откройте модуль двойным щелчком и проверьте, что текст отображается без ошибок

Виды общих модулей и где они выполняются

Поведение общего модуля определяется его свойствами, которые видны в палитре свойств (правый клик по модулю → «Свойства»). От флажков зависит, на какой стороне — клиенте или сервере — доступен код модуля.

СвойствоГде выполняется кодТипичное применение
СерверНа сервере 1С или в файловой базеЗапросы к БД, обращение к данным, проведение
Клиент (обычное приложение)На клиенте в толстом клиентеУстаревшие интерфейсные решения
Клиент (управляемое приложение)На клиенте в тонком/веб-клиентеИнтерфейсная логика, оповещения, диалоги
Вызов сервераСервер, доступен с клиентаСерверные функции, вызываемые из клиентского кода
Привилегированный режимБез проверки прав доступаСистемные операции от имени любого пользователя

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

Где физически хранится код общего модуля

Код общих модулей — часть конфигурации, поэтому физически он хранится там же, где и вся конфигурация. В файловом варианте это файл 1Cv8.1CD в каталоге информационной базы. В клиент-серверном варианте конфигурация размещается в таблицах базы данных на сервере СУБД (MS SQL, PostgreSQL и других). Отдельного файла «общий модуль» на диске не существует.

Извлечь код наружу можно штатными средствами: через «Конфигурация → Выгрузить конфигурацию в файлы» — тогда каждый модуль будет сохранён как отдельный текстовый файл в структуре каталогов. Этот же механизм используется для работы с системами контроля версий, например Git, через EDT или выгрузку в XML-формате.

Прямое редактирование файла базы или таблиц СУБД категорически недопустимо: это гарантированно приводит к повреждению конфигурации и невозможности запуска базы. Все изменения выполняются только через конфигуратор с последующим обновлением конфигурации базы данных.

Почему общий модуль может быть недоступен или не найден

Ситуация, когда ветка «Общие модули» пуста или нужный модуль не открывается, встречается по нескольким причинам. Разберём основные.

Первая причина — недостаточность прав. Если вы вошли под пользователем без права «Администрирование» и без полных прав на конфигурацию, часть объектов может быть скрыта или доступна только для чтения. Вторая причина — конфигурация закрыта паролем поставщика: модули, поставляемые без исходного текста, отображаются в дереве, но при открытии показывают пустое окно или сообщение о защите.

Третья причина касается расширений: если модуль добавлен расширением конфигурации, он находится не в дереве основной конфигурации, а в окне расширения («Конфигурация → Расширения конфигурации»). Наконец, в управляемом приложении поиск может не находить модуль, если вы ищете его в режиме «Предприятие» — общие модули видны только в конфигураторе.

Типичные ошибки
01
Искать общий модуль в режиме «Предприятие» — модули доступны только в конфигураторе
02
Искать файлы модулей на диске — код хранится внутри конфигурации, а не в отдельных файлах
03
Путать модули объекта и общие модули — модуль объекта находится внутри конкретного справочника или документа
04
Редактировать типовой модуль без расширения — при обновлении конфигурации изменения будут потеряны
05
Забыть флажок «Вызов сервера» — клиентский код не сможет обратиться к серверному модулю

Как изменить общий модуль и не сломать конфигурацию

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

После внесения правок выполните синтаксическую проверку модуля (кнопка с изображением галочки в редакторе или «Конфигурация → Проверка конфигурации»). Затем обновите конфигурацию базы данных клавишей F7 — без этого изменения не вступят в силу для пользователей. Проверку результата удобно выполнять в отладке, установив точку останова в изменённой процедуре.

Контрольные точки

Как проверить результат

Синтаксическая проверка модуля
Норма

Ошибок не выявлено

Тревожный признак

Сообщения об ошибках в окне служебных сообщений

Обновление конфигурации БД (F7)
Норма

Обновление завершилось без предупреждений

Тревожный признак

Конфликты или требование реструктуризации с ошибками

Вызов процедуры в режиме «Предприятие»
Норма

Процедура выполняется и возвращает ожидаемый результат

Тревожный признак

Ошибка «Процедура не определена» или неверный результат

Частые вопросы об общих модулях в 1С

Можно ли открыть общий модуль в режиме «Предприятие»?

Нет. Просмотр и редактирование кода общих модулей возможны только в конфигураторе. В режиме «Предприятие» код модуля лишь исполняется при вызове его процедур и функций из прикладных объектов.

Чем общий модуль отличается от модуля объекта?

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

Почему процедура из общего модуля «не определена» при вызове?

Чаще всего дело в контексте исполнения: серверный модуль нельзя вызвать из клиентского кода без флажка «Вызов сервера». Также проверьте, что процедура объявлена с ключевым словом «Экспорт» — иначе она видна только внутри самого модуля.

Как найти, где используется конкретный общий модуль?

Воспользуйтесь глобальным поиском (Ctrl+Shift+F) по имени модуля с точкой, например «ОбщегоНазначения.». Результат покажет все места конфигурации, откуда вызываются его процедуры и функции.

Что делать, если общий модуль защищён паролем поставщика?

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

Можно ли выгрузить общие модули в отдельные файлы?

Да, через «Конфигурация → Выгрузить конфигурацию в файлы». Каждый общий модуль будет сохранён как отдельный текстовый файл в иерархии каталогов. Это стандартный способ для работы с системами контроля версий.

Итог

Что важно запомнить

Общие модули находятся в конфигураторе: дерево конфигурации → «Общие» → «Общие модули». Это часть конфигурации, а не файлы на диске. Для поиска используйте строку поиска, глобальный поиск или переход по F12 из места вызова. Перед правкой типовых модулей делайте резервную копию и предпочитайте расширения прямому изменению кода.