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

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

Как удалить модуль в 1С: пошаговая инструкция

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

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

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

Ниже разобраны все сценарии: как подготовиться, как найти зависимости, как удалить общий модуль, как очистить модуль объекта или формы, как проверить конфигурацию после удаления и что делать, если что-то пошло не так.

Какие модули бывают в 1С и что именно можно удалить

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

Модули объектов, форм, команд, приложения и сеанса привязаны к родительским объектам и самостоятельно не существуют. Удалить их как объект нельзя — можно только очистить содержимое. Например, у документа всегда есть модуль объекта, даже если он пустой; платформа создаёт его автоматически.

Отдельный случай — удаление модуля внешней обработки или отчёта (файл .epf/.erf). Внешние обработки открываются в конфигураторе через «Файл» → «Открыть», и их модуль объекта очищается так же, как у встроенных объектов.

Подготовка: резервная копия и проверка зависимостей

Главное правило: перед любыми изменениями конфигурации сделайте резервную копию. Для файловой базы достаточно выгрузки через «Администрирование» → «Выгрузить информационную базу» в файл .dt. Для клиент-серверной базы используйте штатные средства СУБД или ту же выгрузку в .dt.

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

Второй шаг — найти все места, где используется модуль. В конфигураторе выделите общий модуль в дереве, нажмите правую кнопку и выберите «Поиск ссылок в объектах» (или используйте глобальный поиск Ctrl+Shift+F по имени модуля). Платформа покажет все процедуры и функции, которые обращаются к этому модулю.

Подготовка к удалению
  1. 1
    Сделайте выгрузку базы данных в файл .dt
  2. 2
    Найдите ссылки на модуль: правый клик → «Поиск ссылок в объектах»
  3. 3
    Проверьте вызовы через глобальный поиск по имени модуля (Ctrl+Shift+F)
  4. 4
    Перенесите или перепишите код, который использует процедуры модуля
  5. 5
    Убедитесь, что модуль не вызывается из внешних обработок и расширений

Особое внимание уделите вызовам через Вычислить() и Выполнить() — такие обращения строятся строкой и не находятся автоматическим поиском ссылок. Встречаются они нечасто, но именно они становятся причиной «неожиданных» ошибок после удаления.

Как удалить общий модуль в конфигураторе

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

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

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

Как удалить (очистить) модуль объекта, формы или команды

Модуль объекта справочника, документа или регистра очищается так: выделите объект в дереве конфигурации, нажмите правую кнопку и выберите «Открыть модуль объекта» (или кнопку с изображением лупы и листа на панели). В открывшемся редакторе выделите весь код сочетанием Ctrl+A и нажмите Delete, затем сохраните конфигурацию.

Модуль формы открывается из редактора формы: выделите форму объекта, откройте её и перейдите на вкладку «Модуль» внизу окна. Дальше действия те же — выделить всё и удалить. Учтите, что если на форме есть команды или элементы с обработчиками событий, после очистки модуля форма перестанет открываться: сначала удалите привязки обработчиков в свойствах элементов.

Модуль приложения и модуль сеанса

Эти модули находятся в корне дерева конфигурации (правый клик по самой верхней строке с именем конфигурации → «Открыть модуль управляемого приложения» или «Открыть модуль сеанса»). Очищать их полностью не рекомендуется: в модуле приложения часто размещены обработчики ПриНачалеРаботыСистемы, без которых ломается старт программы. Удаляйте только конкретные процедуры, которые точно не используются.

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

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

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

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

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

Проверка конфигурации
Норма

Нет ошибок о неопределённых процедурах и функциях

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

Ошибки «Процедура или функция не определена» с указанием имени удалённого модуля

Запуск базы в режиме предприятия
Норма

Программа стартует, типовые операции выполняются

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

Ошибки при входе или при открытии документов и отчётов

Открытие форм, где был очищен модуль
Норма

Формы открываются, кнопки работают или удалены

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

Ошибка «Процедура не найдена» при открытии формы

После обновления обязательно зайдите в базу в режиме «1С:Предприятие» и пройдите основные сценарии, которые могли затрагивать удалённый код: проведение документов, формирование отчётов, обмены данными. Синтаксическая проверка не ловит ошибки времени выполнения, например обращения через ОбщегоНазначения.ОбщийМодуль("ИмяМодуля").

Типичные ошибки и ограничения

Типичные ошибки
01
Удаление без выгрузки базы — код теряется без возможности восстановления
02
Пропуск поиска ссылок — после обновления у пользователей появляются ошибки вызова несуществующих процедур
03
Очистка модуля формы без удаления обработчиков в свойствах элементов — форма перестаёт открываться
04
Удаление модуля, который используется расширением конфигурации — проверка в основной конфигурации ошибок не покажет, а расширение сломается
05
Удаление типового модуля поставщика вместо переноса доработок в расширение — при следующем обновлении конфигурации изменения конфликтуют

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

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

Маршрут решения

Как выбрать действие

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

FAQ

Можно ли удалить модуль в режиме «1С:Предприятие», не заходя в конфигуратор?

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

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

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

Как восстановить случайно удалённый модуль?

Если обновление базы ещё не выполнялось, просто закройте конфигуратор без сохранения или отмените изменение. Если обновление выполнено — восстановите конфигурацию из файла выгрузки .cf или .dt либо возьмите версию объекта из хранилища конфигурации. Без копии код восстановить нельзя.

Можно ли удалить модуль из расширения конфигурации?

Да. Откройте расширение в конфигураторе («Конфигурация» → «Расширения конфигурации»), найдите заимствованный или собственный общий модуль и удалите его стандартным способом. Учтите, что удаление заимствованного объекта в расширении не удаляет его из основной конфигурации.

Почему кнопка «Удалить» неактивна для модуля?

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

Нужно ли останавливать работу пользователей для удаления модуля?

Да, если обновление конфигурации базы данных требует монопольного доступа — а для удаления объекта метаданных это обычно так. Завершите сеансы пользователей через консоль кластера или «Администрирование» → «Активные пользователи» и выполните обновление.

Итог

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

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