Расширение перестало подключаться после обновления 1С 8.3: разбор причин и ремонт

· 10 мин

Содержание

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

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

Почему расширение не применяется: основные причины

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

Самые частые источники расхождения:

  • 🔄 Обновление типовой конфигурации. Разработчик переименовал или удалил реквизит, форму, общий модуль, процедуру. Расширение ссылается на то, чего больше нет.
  • 🧩 Изменились контролируемые свойства. У заимствованного объекта в расширении можно включить контроль свойств (тип реквизита, длина строки, состав формы). После обновления значения разошлись.
  • 🏷️ Пропала процедура под аннотацией. Метод с аннотацией &Перед("ИмяПроцедуры"), &После(...) или &Вместо(...) ссылается на процедуру, которую в новом релизе переименовали или перенесли в другой модуль.
  • 🖥️ Версия платформы. Файл .cfe выгружен из более новой платформы или режим совместимости расширения выше, чем умеет текущая платформа.
  • 🔒 Безопасный режим и защита от опасных действий. Расширение загружено с флагом «Безопасный режим», а его код работает с файлами, COM-объектами или внешними компонентами.
  • 👤 Права. Пользователь не видит объекты расширения, потому что в ролях нет нужных прав.
  • ⚔️ Конфликт двух расширений. Два расширения меняют один и тот же метод или одну форму, и порядок их применения даёт несовместимый результат.
Когда появилась ошибкаЧто проверять первым
Сразу после обновления релиза конфигурацииЗаимствованные объекты, аннотации методов
После обновления платформы на сервере или клиентеРежим совместимости, версия .cfe
После загрузки нового .cfe пользователемБезопасный режим, защита от опасных действий
Только у части пользователейРоли и права, кэш клиента
После добавления второго расширенияКонфликт расширений

Где искать точный текст ошибки: журнал регистрации и технологический журнал

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

Сообщение в Конфигураторе

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

Журнал регистрации

В пользовательском режиме журнал открывается через Администрирование → Обслуживание → Журнал регистрации (БП 3.0, ЗУП 3.1, УТ 11). В Конфигураторе — Администрирование → Журнал регистрации.

Что настроить в отборе:

  1. Период — последние 15–30 минут до момента ошибки.
  2. Уровень — «Ошибка».
  3. Пользователь — тот, у кого не подключилось расширение.

В колонке «Комментарий» обычно лежит полный текст исключения. Его удобно скопировать целиком и искать в нём имя объекта.

Технологический журнал

Если журнал регистрации пуст (так бывает, когда ошибка возникает до того, как сеанс полностью открылся), включите технологический журнал. Файл logcfg.xml кладут в каталог conf платформы, например C:\Program Files\1cv8\conf\. Для клиент-серверной базы — на сервере 1С.

<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
  <log location="C:\1c_techlog" history="24">
    <event>
      <eq property="name" value="EXCP"/>
    </event>
    <property name="all"/>
  </log>
</config>

Платформа подхватывает файл без перезапуска, примерно в течение минуты. Повторите запуск базы, а потом откройте свежие файлы .log в папке C:\1c_techlog и найдите события EXCP с текстом про расширение.

После диагностики удалите или переименуйте logcfg.xml. Журнал с property name="all" быстро растёт и занимает место на диске.

Платформа, режим совместимости и целостность расширения

Этот блок проверяют, когда ошибка появилась после смены платформы или после загрузки чужого .cfe.

Версия платформы

Посмотрите версию в окне Справка → О программе на клиенте и на сервере 1С. В клиент-серверном варианте номера должны совпадать до последней цифры, иначе база не откроется вовсе.

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

Режим совместимости расширения

В Конфигураторе откройте расширение, выделите корень дерева и вызовите свойства (Alt+Enter). Сравните свойство «Режим совместимости» со значением того же свойства у основной конфигурации.

  • Режим совместимости расширения не должен быть выше того, что поддерживает платформа.
  • Надёжный вариант — выставить расширению тот же режим, что у основной конфигурации.

После смены режима сохраните расширение и обновите его конфигурацию базы данных.

Целостность самого расширения

Если .cfe пришёл по почте или из облака и при загрузке ругается на формат файла, сначала попросите у автора свежую выгрузку. Перекачка файла решает больше проблем, чем кажется. Проверить, не повреждена ли сама основная конфигурация, помогает Конфигурация → Проверка конфигурации в Конфигураторе с флагом логической целостности.

Как исправить ошибку применения расширения 1С 8.3 пошагово

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

Шаг 1. Отключите расширение, чтобы пользователи могли работать

Если из-за ошибки не стартует вся база, снимите флаг «Активно» у проблемного расширения в списке Конфигурация → Расширения конфигурации. Расширение останется в базе со всеми данными, но перестанет подключаться при запуске.

В пользовательском режиме БП 3.0, ЗУП 3.1 и УТ 11 то же самое делается в списке расширений: Администрирование → Печатные формы, отчеты и обработки → Расширения.

Шаг 2. Обновите заимствованные объекты

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

Эта команда снимает большую часть ошибок после обновления релиза: исчезают расхождения в типах реквизитов, синонимах, составе стандартных форм.

Шаг 3. Разберите оставшиеся несоответствия

Снова запустите обновление конфигурации базы данных расширения. Конфигуратор покажет, что осталось. Типовые случаи:

Сообщение указывает наЧто делать
Заимствованный объект или реквизит, которого нет в конфигурацииНайдите, как он называется в новом релизе, и заимствуйте заново; старый удалите из расширения
Процедуру из аннотации &Перед, &После, &ВместоНайдите метод в новом модуле, поправьте имя в аннотации или перенесите код в нужный модуль
Элемент заимствованной формыОткройте форму в расширении, удалите элемент или привяжите его к новому реквизиту формы
Контролируемое свойствоСверьте значение со свойством в основной конфигурации; если контроль не нужен — снимите его

Аннотация &Вместо полностью заменяет типовую процедуру. После обновления типовой метод мог получить новые параметры или новую логику. Сравните тексты старой и новой процедуры: формально расширение применится, но будет работать по старому алгоритму.

Шаг 4. Проверьте код расширения синтаксически

Откройте изменённые модули расширения и выполните синтаксический контроль (Ctrl+F7 в открытом модуле). Ошибки в коде расширения при запуске тоже выглядят как ошибка применения.

Шаг 5. Сохраните и обновите конфигурацию базы данных расширения

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

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

Шаг 6. Включите расширение и проверьте под пользователем

Верните флаг «Активно», запустите базу под обычным пользователем и пройдите сценарий, ради которого делалось расширение: печать формы, проведение документа, открытие отчёта.

Если у одного пользователя ошибка осталась, а у других нет, закройте у него 1С и запустите с параметром очистки кэша:

"C:\Program Files\1cv8\common\1cestart.exe" /ClearCache

Запуск с /ClearCache касается только этого компьютера. Сеанс пользователя при этом нужно закрыть — иначе кэш занят и не очищается.

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

Безопасный режим, защита от опасных действий и права пользователей

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

Флаг «Безопасный режим»

При загрузке расширения в пользовательском режиме у него обычно стоит флаг «Безопасный режим». В безопасном режиме код не может обращаться к файловой системе, запускать внешние программы, создавать COM-объекты и подключать внешние компоненты. Если расширение ради этого и писалось, оно падает с ошибкой.

Флаг меняют в списке расширений — в Конфигураторе или в пользовательском режиме. Снимайте его только для расширений от проверенного разработчика: код без безопасного режима выполняется с полными правами.

Защита от опасных действий

Это отдельный механизм. Он предупреждает, когда пользователь загружает расширение, внешнюю обработку или выполняет действие, которое может навредить базе. Если у пользователя включена защита, при загрузке .cfe он увидит предупреждение и должен подтвердить действие.

Флаг «Защита от опасных действий» настраивается в карточке пользователя в Конфигураторе (Администрирование → Пользователи). Отключать его ради одного расширения не нужно: достаточно один раз подтвердить загрузку под администратором.

Права на объекты расширения

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

Если расширение добавляет свои объекты (справочник, отчёт, обработку), права на них задаются ролью внутри расширения. Варианты:

  1. Создать в расширении собственную роль, выдать в ней права на новые объекты и назначить эту роль пользователям.
  2. Заимствовать в расширение типовую роль и добавить права в неё. Тогда права получат все, у кого эта роль уже есть.

В БП 3.0, ЗУП 3.1 и УТ 11 роли из расширения назначаются через профили групп доступа, а не напрямую пользователю. После правки расширения проверьте, что новая роль попала в нужный профиль.

Профилактика: как обновлять 1С, чтобы расширения не ломались

Ошибку проще предотвратить, чем чинить в день сдачи отчётности.

Порядок обновления

  1. Разверните копию рабочей базы.
  2. Обновите на копии релиз конфигурации.
  3. Проверьте на копии все расширения: обновите заимствованные объекты, поправьте аннотации.
  4. Выгрузите исправленные .cfe.
  5. Обновите рабочую базу и сразу загрузите в неё исправленные расширения.

Так пользователи не увидят ни одной ошибки, а простой займёт минуты.

Как писать расширения устойчивыми

  • 🧱 Меньше &Вместо. Аннотации &Перед и &После переживают обновления лучше: типовой код продолжает выполняться.
  • 🎯 Заимствуйте только нужное. Каждый лишний заимствованный объект — ещё одна точка, где расширение сломается после релиза.
  • 🔍 Контроль свойств — осознанно. Включайте его там, где код расширения действительно зависит от типа или длины реквизита.
  • 📝 Ведите список правок. Короткий текстовый файл: какой типовой метод перехвачен и зачем. После обновления по нему за 10 минут проверяется всё расширение.
  • 🗂️ Храните версии .cfe. Папка с датированными выгрузками позволяет откатиться за минуту.
Перед обновлением рабочей базы
Выполнено: 0 / 5

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

Можно ли просто удалить расширение, которое не применяется?
Можно, если расширение ничего не хранит, например только меняет печатную форму. Если оно добавляет реквизиты или справочники, удаление сотрёт эти данные. Безопаснее снять флаг «Активно» и разобраться.
Почему доработка из расширения пропала, а ошибки нет?
Проверьте флаг «Активно» в списке расширений: его мог снять другой администратор при обновлении. Если флаг стоит, ищите в журнале регистрации ошибки за время входа пользователя.
Обязательно ли снимать базу с работы, чтобы исправить расширение?
Правку в Конфигураторе можно делать при работающих пользователях. Монопольный доступ нужен на обновление конфигурации базы данных, если расширение меняет структуру данных.
Что делать, если автор расширения недоступен?
Обновить заимствованные объекты и поправить имена в аннотациях может любой разработчик 1С. Для перехвата через &Вместо придётся сравнить старый и новый код типовой процедуры и перенести доработку вручную.
Почему в файловой базе ошибка исчезла после перезапуска, а в клиент-серверной нет?
В клиент-серверной базе сеансы и кэш живут на сервере 1С. После исправления расширения пользователи должны перезайти в программу, а у проблемных клиентов стоит очистить кэш.