Расширение перестало подключаться после обновления 1С 8.3: разбор причин и ремонт
Содержание
Ошибка применения расширения конфигурации в 1С 8.3 почти всегда значит одно: основная конфигурация изменилась, а расширение осталось рассчитанным на старую. Исправить её можно так: открыть расширение в Конфигураторе, обновить заимствованные объекты, поправить ссылки на исчезнувшие процедуры и реквизиты, затем сохранить расширение и обновить его конфигурацию базы данных.
Реже причина в другом: расширение собрано в более новой платформе, у него завышен режим совместимости, его не пускает безопасный режим или у пользователя нет прав. Ниже по порядку: как прочитать сообщение, как найти причину и как её убрать, не трогая данные базы.
Почему расширение не применяется: основные причины
Расширение — это надстройка, которая «цепляется» за объекты основной конфигурации. Каждый заимствованный объект хранит слепок: имя, тип, контролируемые свойства. При запуске платформа сверяет этот слепок с текущей конфигурацией. Если что-то не совпало, расширение не подключается, и пользователь видит ошибку.
Самые частые источники расхождения:
- 🔄 Обновление типовой конфигурации. Разработчик переименовал или удалил реквизит, форму, общий модуль, процедуру. Расширение ссылается на то, чего больше нет.
- 🧩 Изменились контролируемые свойства. У заимствованного объекта в расширении можно включить контроль свойств (тип реквизита, длина строки, состав формы). После обновления значения разошлись.
- 🏷️ Пропала процедура под аннотацией. Метод с аннотацией
&Перед("ИмяПроцедуры"),&После(...)или&Вместо(...)ссылается на процедуру, которую в новом релизе переименовали или перенесли в другой модуль. - 🖥️ Версия платформы. Файл
.cfeвыгружен из более новой платформы или режим совместимости расширения выше, чем умеет текущая платформа. - 🔒 Безопасный режим и защита от опасных действий. Расширение загружено с флагом «Безопасный режим», а его код работает с файлами, COM-объектами или внешними компонентами.
- 👤 Права. Пользователь не видит объекты расширения, потому что в ролях нет нужных прав.
- ⚔️ Конфликт двух расширений. Два расширения меняют один и тот же метод или одну форму, и порядок их применения даёт несовместимый результат.
| Когда появилась ошибка | Что проверять первым |
|---|---|
| Сразу после обновления релиза конфигурации | Заимствованные объекты, аннотации методов |
| После обновления платформы на сервере или клиенте | Режим совместимости, версия .cfe |
После загрузки нового .cfe пользователем | Безопасный режим, защита от опасных действий |
| Только у части пользователей | Роли и права, кэш клиента |
| После добавления второго расширения | Конфликт расширений |
Где искать точный текст ошибки: журнал регистрации и технологический журнал
Окно с ошибкой часто показывает только первую строку. Полный текст обычно содержит имя расширения, имя объекта и свойство, на котором споткнулась проверка. Без него ремонт превращается в угадывание.
Сообщение в Конфигураторе
Самый информативный способ — открыть базу
в Конфигураторе и вызвать Конфигурация → Расширения конфигурации. Откройте нужное расширение двойным щелчком. При попытке обновить конфигурацию
базы данных расширения Конфигуратор выводит в окно сообщений все несоответствия списком. Каждую строку можно открыть двойным щелчком и попасть к объекту.
Журнал регистрации
В пользовательском режиме журнал открывается через Администрирование → Обслуживание → Журнал регистрации (БП 3.0, ЗУП 3.1, УТ 11). В Конфигураторе — Администрирование → Журнал регистрации.
Что настроить в отборе:
- Период — последние 15–30 минут до момента ошибки.
- Уровень — «Ошибка».
- Пользователь — тот, у кого не подключилось расширение.
В колонке «Комментарий» обычно лежит полный текст исключения. Его удобно скопировать целиком и искать в нём имя объекта.
Технологический журнал
Если журнал регистрации пуст (так бывает, когда ошибка возникает до того, как сеанс полностью открылся), включите технологический журнал. Файл 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 — это не сбой расширения, а нехватка прав.
Если расширение добавляет свои объекты (справочник, отчёт, обработку), права на них задаются ролью внутри расширения. Варианты:
- Создать в расширении собственную роль, выдать в ней права на новые объекты и назначить эту роль пользователям.
- Заимствовать в расширение типовую роль и добавить права в неё. Тогда права получат все, у кого эта роль уже есть.
В БП 3.0, ЗУП 3.1 и УТ 11 роли из расширения назначаются через профили групп доступа, а не напрямую пользователю. После правки расширения проверьте, что новая роль попала в нужный профиль.
Профилактика: как обновлять 1С, чтобы расширения не ломались
Ошибку проще предотвратить, чем чинить в день сдачи отчётности.
Порядок обновления
- Разверните копию рабочей базы.
- Обновите на копии релиз конфигурации.
- Проверьте на копии все расширения: обновите заимствованные объекты, поправьте аннотации.
- Выгрузите исправленные
.cfe. - Обновите рабочую базу и сразу загрузите в неё исправленные расширения.
Так пользователи не увидят ни одной ошибки, а простой займёт минуты.
Как писать расширения устойчивыми
- 🧱 Меньше
&Вместо. Аннотации&Переди&Послепереживают обновления лучше: типовой код продолжает выполняться. - 🎯 Заимствуйте только нужное. Каждый лишний заимствованный объект — ещё одна точка, где расширение сломается после релиза.
- 🔍 Контроль свойств — осознанно. Включайте его там, где код расширения действительно зависит от типа или длины реквизита.
- 📝 Ведите список правок. Короткий текстовый файл: какой типовой метод перехвачен и зачем. После обновления по нему за 10 минут проверяется всё расширение.
- 🗂️ Храните версии
.cfe. Папка с датированными выгрузками позволяет откатиться за минуту.
Частые вопросы
Можно ли просто удалить расширение, которое не применяется?
Почему доработка из расширения пропала, а ошибки нет?
Обязательно ли снимать базу с работы, чтобы исправить расширение?
Что делать, если автор расширения недоступен?
&Вместо придётся сравнить старый и новый код типовой процедуры и перенести доработку вручную.