Расширения конфигурации 1С 8.3: установка, порядок применения, отладка и удаление
Содержание
Чтобы пользоваться расширением 1С, его достаточно загрузить в базу из файла .cfe и перезапустить программу. В типовых конфигурациях на БСП это делается без Конфигуратора: Администрирование → Печатные формы, отчеты и обработки → Расширения → Добавить из файла.
Типичная ситуация: программист прислал бухгалтеру файл с доработанной печатной формой счёта и написал «поставь расширение». Конфигурация при этом остаётся на поддержке, обновления ставятся как обычно, а доработка живёт отдельно. Устанавливается такой файл за пару минут, а вот с несколькими расширениями в одной базе уже нужны порядок и аккуратность.
Расширение конфигурации: что это и когда оно нужно
Расширение — это отдельная «надстройка» над основной конфигурацией. Оно хранится в базе рядом с ней и подключается при запуске. Механизм появился в платформе 8.3.6 и с тех пор сильно вырос.
Что умеет расширение:
- 🧩 менять формы типовых объектов: добавлять поля, кнопки, команды;
- 🖨 подменять и добавлять печатные формы, макеты, отчёты;
- ⚙️ вмешиваться в код типовых модулей: выполнять свой код до, после или вместо типового метода;
- 📦 добавлять собственные справочники, документы, регистры (с данными);
- 🔐 добавлять роли и права к существующим объектам.
Главный плюс — типовую конфигурацию не нужно снимать с поддержки. Обновление релиза ставится стандартно, а расширение после обновления просто применяется заново. Если в новом релизе изменился объект, на который опирается расширение, платформа об этом сообщит.
Когда расширение уместно:
| Задача | Расширение подходит? |
|---|---|
| Своя печатная форма, правка макета | Да |
| Новое поле в документе или справочнике | Да |
| Изменение логики проведения | Да, через перехват методов |
| Разовая выгрузка или загрузка данных | Лучше внешняя обработка |
| Глубокая переработка подсистемы | Возможно, но поддерживать будет тяжело |
Чем расширение .cfe отличается от внешних обработок .epf и .erf
Эти файлы часто путают, потому что и то, и другое «доработка, которую прислали файлом». На деле это разные механизмы.
Расширение .cfe | Внешняя обработка .epf / отчёт .erf | |
|---|---|---|
| Где хранится | Внутри базы, подключается при каждом запуске | В справочнике дополнительных обработок или открывается из файла |
| Что может менять | Формы, модули, макеты, роли типовых объектов | Ничего в типовых объектах, только работает с данными |
| Свои объекты с данными | Да | Нет |
| Как загружается | Список расширений или Конфигуратор | Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки |
| Нужен перезапуск | Да | Нет |
Есть ещё файлы .cf (вся конфигурация целиком) и .cfu (файл обновления). Загружать .cf вместо .cfe нельзя: это заменит всю конфигурацию базы. Если прислали .cf со словами «это расширение» — не загружайте, уточните у автора.
Как установить расширение 1С: три способа
Перед установкой сделайте резервную копию базы . Расширение с собственными данными меняет структуру базы, и откатить это без копии будет сложно.
Права нужны административные: роль «Полные права» или право на администрирование расширений конфигурации.
Способ 1. Из пользовательского режима (типовые конфигурации)
Подходит для Бухгалтерии 3.0, ЗУП 3.1, УТ 11 и других решений на БСП.
- Откройте
Администрирование → Печатные формы, отчеты и обработки. - Включите флажок «Расширения», если он выключен, и перейдите по ссылке «Расширения».
- Нажмите «Добавить из файла» и выберите
.cfe. - Подтвердите предупреждение о безопасности. Программа покажет, требует ли расширение небезопасных действий.
- Перезапустите 1С — без перезапуска расширение не применится.
После перезапуска проверьте результат: новая кнопка, форма или печатная форма должны появиться там, где обещал разработчик.
Если в конфигурации нет такого раздела (самописная или старая база), откройте Все функции → Стандартные → Управление расширениями конфигурации. Пункт «Все функции» включается в параметрах программы: Главное меню → Сервис → Параметры → Отображать команду «Все функции».
Способ 2. Через Конфигуратор
- Откройте базу в режиме Конфигуратора.
- Выберите
Конфигурация → Расширения конфигурации. - Нажмите «Добавить», чтобы создать пустое расширение, или выделите существующее.
- В меню «Конфигурация» дерева этого расширения выполните загрузку из файла
.cfe. - Отдельной командой обновите конфигурацию базы данных для расширения (в окне расширения, клавиша
F7).
Загрузка файла и обновление конфигурации БД — два разных шага. Если пропустить второй, в пользовательском режиме расширение не заработает.
Способ 3. Из командной строки
Полезно, когда нужно разложить одно расширение по десятку баз скриптом.
"C:\Program Files\1cv8\8.3.24.1586\bin\1cv8.exe" DESIGNER /F "D:\Bases\Buh" /N "Администратор" /P "пароль" ^
/LoadCfg "D:\Ext\PechatSchet.cfe" -Extension PechatSchet ^
/UpdateDBCfg -Extension PechatSchet ^
/Out "D:\Ext\log.txt"
Путь к 1cv8.exe подставьте свой: номер платформы в нём у каждого разный. Для серверной базы вместо /F указывают /S "сервер\имя_базы". Результат смотрите в файле, указанном в /Out.
Какие свойства проверить сразу после установки
Свойства открываются в Конфигураторе (правый щелчок по расширению в дереве → «Свойства») или частично видны в списке расширений в пользовательском режиме.
| Свойство | Что означает | Что обычно ставят |
|---|---|---|
| Активно | Применяется ли расширение при запуске | Включено |
| Безопасный режим | Запрет на файлы, COM, внешние компоненты | Включено, если автор не просит иного |
| Защита от опасных действий | Предупреждения при опасных операциях | Включено |
| Назначение | Исправление, адаптация или дополнение | По смыслу доработки |
| Префикс имён | Приставка к именам новых объектов и методов | Уникальная для каждого расширения |
Если расширение поставили, а свойства не открывали ни разу, потратьте на эту таблицу минуту. Многие сюрпризы при работе с расширениями объясняются именно этими флажками.
Порядок применения и конфликты расширений
Когда расширений несколько, платформа применяет их по очереди. Сначала группируются по свойству «Назначение»:
- Исправление — срочные правки ошибок;
- Адаптация — доработки под конкретное внедрение;
- Дополнение — новая функциональность, отраслевые модули.
Внутри одной группы порядок определяется порядком подключения. Назначение задаётся в свойствах расширения в Конфигураторе.
Конфликт возникает, когда два расширения перехватывают один и тот же метод. Для перехвата используются аннотации:
| Аннотация | Что делает | Риск конфликта |
|---|---|---|
&Перед | Свой код до типового | Низкий |
&После | Свой код после типового | Низкий |
&Вместо | Заменяет метод целиком | Высокий |
&ИзменениеИКонтроль | Правит текст метода точечно | Ломается при изменении типового метода |
Самая опасная — &Вместо. Если в методе нет вызова ПродолжитьВызов(), типовой код и обработчики других расширений после него не выполнятся.
&Вместо("ПередЗаписью")
Процедура Расш1_ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
Если Не ЗначениеЗаполнено(Комментарий) Тогда
Комментарий = "Создан автоматически";
КонецЕсли;
// Без этой строки типовой обработчик не выполнится
ПродолжитьВызов(Отказ, РежимЗаписи, РежимПроведения);
КонецПроцедуры
Чтобы снизить риск конфликтов:
- 🔹 предпочитайте
&Переди&После, если задачу можно решить ими; - 🔹 держите у каждого расширения свой префикс имён (свойство «Префикс имён», например
Расш1_); - 🔹 не перехватывайте один метод в двух расширениях — объедините правки в одно.
Отладка кода в расширении
Отлаживают расширение так же, как основную конфигурацию, через Конфигуратор или EDT.
- В Конфигураторе откройте
Конфигурация → Расширения конфигурациии откройте нужное расширение двойным щелчком. - В дереве расширения найдите модуль и поставьте точку останова (
F9) на нужной строке. - Запустите отладку:
Отладка → Начать отладку → 1С:Предприятие(илиF5). - Выполните в пользовательском режиме действие, которое вызывает код: откройте форму, проведите документ.
Если точка не срабатывает, проверьте три вещи:
- ✅ расширение обновлено в базе (после правок снова
F7для расширения); - ✅ в свойствах расширения отмечено «Активно»;
- ✅ для серверного кода в клиент-серверном варианте отладка на сервере 1С включена. Её включает администратор сервера; без этого серверные точки останова игнорируются.
Чтобы быстро понять, срабатывает ли перехват вообще, добавьте в начало метода временную строку Сообщить("Расш1: метод вызван");. Убедились — удалите её перед передачей расширения пользователям.
Отдельный случай — &ИзменениеИКонтроль. Если после обновления типовой конфигурации текст оригинального метода изменился, расширение не применится, и платформа укажет на несовпадение. Это не ошибка отладки, а защита: метод нужно сравнить с новым текстом и перенести правку заново.
Обновление, отключение и удаление расширения
Обновить расширение
Новая версия от разработчика приходит тем же файлом .cfe.
- В пользовательском режиме: в списке расширений выделите строку и выберите команду обновления из файла на командной панели. Затем перезапустите программу.
- В Конфигураторе: загрузите новый
.cfeповерх существующего расширения и снова обновите конфигурацию БД для него.
Имя расширения при обновлении должно совпадать. Если загрузить новую версию как отдельное расширение, в базе окажутся два с одинаковыми перехватами — получите конфликт из предыдущего раздела.
Временно отключить
Снимите флажок «Активно» в свойствах или в списке расширений. Расширение останется в базе, но перестанет применяться после перезапуска. Так удобно проверять, виновато ли расширение в странном поведении программы.
Удалить
В списке расширений выделите строку и нажмите «Удалить». В Конфигураторе — кнопка удаления в окне Конфигурация → Расширения конфигурации.
Если расширение добавляло свои справочники, документы или реквизиты с данными, при удалении эти данные будут потеряны. Перед удалением такого расширения сделайте резервную копию и выгрузите нужные данные.
Полезные приёмы при работе с расширениями
Несколько вещей, которые знает практик, но редко пишут в инструкциях:
- База не запускается после установки расширения. Откройте её в Конфигураторе,
Конфигурация → Расширения конфигурации, снимите «Активно» у последнего добавленного и обновите конфигурацию БД. Пользовательский режим снова откроется. - Безопасный режим. По умолчанию расширение работает в безопасном режиме: ему запрещены операции с файлами на сервере, COM-объекты, внешние компоненты. Если расширение должно, например, писать файлы обмена — снимите флажок «Безопасный режим» в его свойствах. Делайте это только для расширений, автору которых доверяете.
- Печатная форма через расширение. Чтобы поправить макет счёта или акта, не нужно снимать типовую с поддержки. Заимствуйте макет в расширение и правьте копию — при обновлении релиза ваша правка не слетит.
- Храните
.cfeв одном месте с номером версии. Например,PechatSchet_1.3.cfe. Через год никто не вспомнит, какая версия стоит в какой базе. - Выгрузите расширение в файл перед обновлением типовой. В Конфигураторе это команда сохранения расширения в файл. Если после обновления что-то сломается, будет с чем сравнить.
- Распределённая база. Чтобы расширение передавалось в узлы РИБ, у него должно быть включено свойство использования в распределённой информационной базе. Иначе в каждый узел его ставят вручную.
Почему расширение не применяется: ошибки и решения
Чаще всего проблема видна сразу после запуска: доработка не появилась или программа выдала предупреждение о расширении.
Если ни один вариант не подошёл, отключите все расширения по очереди. Включайте обратно по одному с перезапуском — так за несколько минут находится виновник.
Частые вопросы
Сколько расширений можно подключить к одной базе?
Слетит ли расширение при обновлении типовой конфигурации?
Работают ли расширения в облачной 1С?
Можно ли перенести расширение в другую базу?
.cfe из Конфигуратора и загрузите в другую базу любым способом из этой инструкции. Данные собственных объектов расширения при этом не переносятся.