Удаление модулей, расширений и обработок в 1С без ошибок

· 9 мин

Содержание

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

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

Перед любым удалением сделайте резервную копию базы. Это единственная страховка, если вместе с модулем уйдут данные, которые он хранил в своих реквизитах.

С чем вы имеете дело: расширение, обработка или объект конфигурации

Разные типы «модулей» живут в базе по-разному. Расширение — это отдельный файл .cfe, который накладывается поверх типовой конфигурации и может добавлять свои реквизиты, формы и даже регистры. Внешняя обработка (.epf) или внешний отчёт (.erf) либо подключены к базе через справочник, либо открываются вручную из файла. Объект метаданных — часть самой конфигурации, он виден в дереве Конфигуратора.

От типа зависит и то, где удалять, и то, потеряете ли вы данные.

Что именно нужно убрать из базы?

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

Как снять и удалить расширение конфигурации в режиме Предприятия

Расширения появились в платформе начиная с версии 8.3.6, и управлять ими можно прямо из режима Предприятия, без Конфигуратора.

Откройте список: Главное меню → Функции для технического специалиста → Управление расширениями конфигурации. Если такого пункта в меню нет, включите команду «Все функции» через Главное меню → Сервис → Параметры (флажок «Отображать команду „Все функции“»), затем зайдите в Все функции → Стандартные → Управление расширениями конфигурации.

Дальше порядок такой:

  1. Снимите флажок активности напротив нужного расширения — так вы сначала отключаете его, не удаляя. Если после отключения ничего не сломалось и данные на месте, можно удалять.
  2. Выделите строку расширения и нажмите кнопку удаления в командной панели списка.
  3. Если расширение меняло структуру базы (добавляло реквизиты, регистры), платформа предложит обновить конфигурацию базы данных — согласитесь.

Отключение через флажок — безопасный способ проверить, что именно даёт расширение. Снимите флажок, перезапустите клиент и посмотрите, какие функции исчезли.

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

Расширение можно удалить и в Конфигураторе: Конфигурация → Расширения конфигурации, выделить строку, нажать Del. Результат тот же, но из Конфигуратора вы увидите ещё и состав расширения — какие объекты оно добавляло или заимствовало.

Что делать с внешними обработками и отчётами

Здесь всё зависит от того, как обработка попала в базу.

Подключённые обработки и отчёты. В типовых конфигурациях на базе Библиотеки стандартных подсистем (БП 3.0, ЗУП 3.1, УТ 11) они хранятся в справочнике. В «1С:Бухгалтерии» список открывается так: Администрирование → Печатные формы, отчёты и обработки → Дополнительные отчёты и обработки. Пункт появляется, только если включён соответствующий функциональный режим в настройках этого же раздела.

Чтобы убрать такую обработку:

  1. Откройте список дополнительных отчётов и обработок.
  2. Выделите строку и пометьте её на удаление (пометка на удаление, а не прямое удаление элемента справочника).
  3. Запустите удаление помеченных объектов: Администрирование → Обслуживание → Удаление помеченных объектов. Программа проверит ссылки и удалит элемент, если на него никто не ссылается.

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

Обработки «из файла». Если файл .epf или .erf открывали через Файл → Открыть, в базе он не сохранён. Удалять в 1С нечего — уберите сам файл из сетевой папки или с рабочего стола, чтобы его перестали запускать.

Если обработка была назначена на регламентное задание (автозапуск по расписанию), сначала отключите это задание, иначе после удаления в журнале посыплются ошибки о ненайденном объекте.

Удаление объекта метаданных в Конфигураторе

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

Порядок действий:

  1. Откройте Конфигуратор под пользователем с правами администратора.
  2. Откройте конфигурацию: Конфигурация → Открыть конфигурацию.
  3. Найдите объект в дереве, щёлкните по нему правой кнопкой и выберите Поиск ссылок на объект в конфигурации. В нижней панели появится список мест, где объект используется.
  4. Разберитесь со всеми ссылками: пока на объект ссылаются другие модули, формы или реквизиты, платформа не даст обновить конфигурацию.
  5. Удалите объект клавишей Del или через правую кнопку.
  6. Обновите структуру: Конфигурация → Обновить конфигурацию базы данных (F7).

Шаг 6 — тот самый момент, когда нужен монопольный доступ: платформа перестраивает таблицы базы. Обновление структуры с пользователями в базе невозможно — все активные сеансы придётся завершить. Делайте это в нерабочее время или установите блокировку соединений заранее.

Поиск ссылок показывает только ссылки внутри конфигурации. Данные (документы, записи регистров), которые ссылались на удалённый объект, он не находит — их проверяйте отдельно.

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

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

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

Зависимости и блокировки: почему объект не удаляется

Чаще всего удаление срывается не на самой операции, а на связях. Платформа защищает целостность: если удаляемое используется где-то ещё, она остановит процесс.

Диагностика: выберите симптом

Как читать результат поиска ссылок. Конфигуратор делит зависимости по типу: ссылки из реквизитов и табличных частей (другой объект использует удаляемый как тип данных), ссылки из форм и команд, ссылки из кода модулей. Разбирать их нужно по-разному: тип реквизита меняют или сам реквизит удаляют, команду с формы убирают, а вызов в коде правят или комментируют. Двойной щелчок по строке в списке ссылок открывает то самое место, где используется объект, — так быстрее всего дойти до каждой зависимости.

Главное правило: сначала разорвать все связи, потом удалять. Для метаданных связи ищет Конфигуратор, для справочных элементов — механизм удаления помеченных объектов. Если платформа сопротивляется, она почти всегда права: где-то остаётся зависимость.

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

Проверка базы после удаления

После того как модуль убран и конфигурация обновлена, стоит убедиться, что база в порядке.

Что проверить:

  • 🔎 Запустите тестирование и исправление: Администрирование → Тестирование и исправление в Конфигураторе. Режим проверяет логическую и ссылочную целостность и находит «битые» ссылки на удалённые объекты.
  • 📋 Проверка целостности требует монопольного доступа — закладывайте её на то же технологическое окно, что и обновление структуры.
  • 🗂 Пройдите по ключевым документам и отчётам, которые были связаны с удалённым функционалом, и убедитесь, что они открываются и проводятся.
  • 🧾 Загляните в журнал регистрации за период после удаления — там видны ошибки, которые всплывают при фоновых заданиях.
Что проверить после удаления модуля
Выполнено: 0 / 6

Для файловой базы есть ещё утилита проверки физической целостности chdbfl.exe — она лежит в каталоге bin установленной платформы и запускается при закрытой базе. Её применяют, когда есть подозрение на повреждение файла 1Cv8.1CD, а не как обязательный шаг после каждого удаления. Для штатной проверки логики достаточно тестирования и исправления из Конфигуратора.

Отдельно про «оптимизацию»: само по себе удаление объекта или расширения место в базе сразу не освобождает — таблицы перестраиваются, но физический размер файла базы может не уменьшиться. Для файловой базы это нормально; заметное сжатие даёт тестирование и исправление с реструктуризацией, а для клиент-серверной базы вопросом размера занимается администратор СУБД. Гнаться за освобождением мегабайтов после удаления одного модуля смысла нет.

Частые вопросы

Можно ли вернуть удалённое расширение обратно?
Если у вас сохранился файл .cfe, расширение подключается заново через «Управление расширениями конфигурации». Но данные, которые оно хранило в своих реквизитах и регистрах, при удалении уже пропали — заново они не появятся, их придётся восстанавливать из резервной копии базы.
Нужна ли монопольная блокировка, чтобы удалить расширение?
Для отключения и удаления самого расширения в режиме Предприятия — нет. Монопольный доступ нужен только в момент обновления конфигурации базы данных, когда меняется её структура. Если расширение не трогало структуру, обновление может не понадобиться.
Удалится ли внешняя обработка сразу у всех пользователей?
Да. Подключённые обработки и отчёты хранятся в общем справочнике базы, поэтому после удаления они исчезнут у всех. Обработки, которые каждый открывал из файла через Файл → Открыть, в базе не хранятся и удаляются только удалением самого файла.
Что будет с документами, которые ссылались на удалённый реквизит?
Реквизит исчезает вместе со своими значениями. В уже проведённых документах эти поля опустеют, а отчёты и алгоритмы, которые их читали, могут выдавать ошибки. Поэтому ссылки нужно разбирать до удаления, а не после.
Как понять, что именно добавляло расширение, прежде чем его удалить?
Откройте расширение в Конфигураторе через Конфигурация → Расширения конфигурации — там виден состав: какие объекты оно добавляло и какие заимствовало из типовой конфигурации. Заимствованные объекты при удалении расширения вернутся к типовому виду, собственные — исчезнут вместе с данными.