Расширения конфигурации 1С 8.3: установка, порядок применения, отладка и удаление

· 9 мин

Содержание

Чтобы пользоваться расширением 1С, его достаточно загрузить в базу из файла .cfe и перезапустить программу. В типовых конфигурациях на БСП это делается без Конфигуратора: Администрирование → Печатные формы, отчеты и обработки → Расширения → Добавить из файла.

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

Расширение конфигурации: что это и когда оно нужно

Расширение — это отдельная «надстройка» над основной конфигурацией. Оно хранится в базе рядом с ней и подключается при запуске. Механизм появился в платформе 8.3.6 и с тех пор сильно вырос.

Что умеет расширение:

  • 🧩 менять формы типовых объектов: добавлять поля, кнопки, команды;
  • 🖨 подменять и добавлять печатные формы, макеты, отчёты;
  • ⚙️ вмешиваться в код типовых модулей: выполнять свой код до, после или вместо типового метода;
  • 📦 добавлять собственные справочники, документы, регистры (с данными);
  • 🔐 добавлять роли и права к существующим объектам.

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

Когда расширение уместно:

ЗадачаРасширение подходит?
Своя печатная форма, правка макетаДа
Новое поле в документе или справочникеДа
Изменение логики проведенияДа, через перехват методов
Разовая выгрузка или загрузка данныхЛучше внешняя обработка
Глубокая переработка подсистемыВозможно, но поддерживать будет тяжело

Чем расширение .cfe отличается от внешних обработок .epf и .erf

Эти файлы часто путают, потому что и то, и другое «доработка, которую прислали файлом». На деле это разные механизмы.

Расширение .cfeВнешняя обработка .epf / отчёт .erf
Где хранитсяВнутри базы, подключается при каждом запускеВ справочнике дополнительных обработок или открывается из файла
Что может менятьФормы, модули, макеты, роли типовых объектовНичего в типовых объектах, только работает с данными
Свои объекты с даннымиДаНет
Как загружаетсяСписок расширений или КонфигураторАдминистрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки
Нужен перезапускДаНет

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

Как установить расширение 1С: три способа

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

Права нужны административные: роль «Полные права» или право на администрирование расширений конфигурации.

Способ 1. Из пользовательского режима (типовые конфигурации)

Подходит для Бухгалтерии 3.0, ЗУП 3.1, УТ 11 и других решений на БСП.

  1. Откройте Администрирование → Печатные формы, отчеты и обработки.
  2. Включите флажок «Расширения», если он выключен, и перейдите по ссылке «Расширения».
  3. Нажмите «Добавить из файла» и выберите .cfe.
  4. Подтвердите предупреждение о безопасности. Программа покажет, требует ли расширение небезопасных действий.
  5. Перезапустите 1С — без перезапуска расширение не применится.

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

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

Способ 2. Через Конфигуратор

  1. Откройте базу в режиме Конфигуратора.
  2. Выберите Конфигурация → Расширения конфигурации.
  3. Нажмите «Добавить», чтобы создать пустое расширение, или выделите существующее.
  4. В меню «Конфигурация» дерева этого расширения выполните загрузку из файла .cfe.
  5. Отдельной командой обновите конфигурацию базы данных для расширения (в окне расширения, клавиша 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. Исправление — срочные правки ошибок;
  2. Адаптация — доработки под конкретное внедрение;
  3. Дополнение — новая функциональность, отраслевые модули.

Внутри одной группы порядок определяется порядком подключения. Назначение задаётся в свойствах расширения в Конфигураторе.

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

АннотацияЧто делаетРиск конфликта
&ПередСвой код до типовогоНизкий
&ПослеСвой код после типовогоНизкий
&ВместоЗаменяет метод целикомВысокий
&ИзменениеИКонтрольПравит текст метода точечноЛомается при изменении типового метода

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

&Вместо("ПередЗаписью")
Процедура Расш1_ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
	Если Не ЗначениеЗаполнено(Комментарий) Тогда
		Комментарий = "Создан автоматически";
	КонецЕсли;
	// Без этой строки типовой обработчик не выполнится
	ПродолжитьВызов(Отказ, РежимЗаписи, РежимПроведения);
КонецПроцедуры

Чтобы снизить риск конфликтов:

  • 🔹 предпочитайте &Перед и &После, если задачу можно решить ими;
  • 🔹 держите у каждого расширения свой префикс имён (свойство «Префикс имён», например Расш1_);
  • 🔹 не перехватывайте один метод в двух расширениях — объедините правки в одно.

Отладка кода в расширении

Отлаживают расширение так же, как основную конфигурацию, через Конфигуратор или EDT.

  1. В Конфигураторе откройте Конфигурация → Расширения конфигурации и откройте нужное расширение двойным щелчком.
  2. В дереве расширения найдите модуль и поставьте точку останова (F9) на нужной строке.
  3. Запустите отладку: Отладка → Начать отладку → 1С:Предприятие (или F5).
  4. Выполните в пользовательском режиме действие, которое вызывает код: откройте форму, проведите документ.

Если точка не срабатывает, проверьте три вещи:

  • ✅ расширение обновлено в базе (после правок снова F7 для расширения);
  • ✅ в свойствах расширения отмечено «Активно»;
  • ✅ для серверного кода в клиент-серверном варианте отладка на сервере 1С включена. Её включает администратор сервера; без этого серверные точки останова игнорируются.

Чтобы быстро понять, срабатывает ли перехват вообще, добавьте в начало метода временную строку Сообщить("Расш1: метод вызван");. Убедились — удалите её перед передачей расширения пользователям.

Отдельный случай — &ИзменениеИКонтроль. Если после обновления типовой конфигурации текст оригинального метода изменился, расширение не применится, и платформа укажет на несовпадение. Это не ошибка отладки, а защита: метод нужно сравнить с новым текстом и перенести правку заново.

Обновление, отключение и удаление расширения

Обновить расширение

Новая версия от разработчика приходит тем же файлом .cfe.

  • В пользовательском режиме: в списке расширений выделите строку и выберите команду обновления из файла на командной панели. Затем перезапустите программу.
  • В Конфигураторе: загрузите новый .cfe поверх существующего расширения и снова обновите конфигурацию БД для него.

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

Временно отключить

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

Удалить

В списке расширений выделите строку и нажмите «Удалить». В Конфигураторе — кнопка удаления в окне Конфигурация → Расширения конфигурации.

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

Полезные приёмы при работе с расширениями

Несколько вещей, которые знает практик, но редко пишут в инструкциях:

  1. База не запускается после установки расширения. Откройте её в Конфигураторе, Конфигурация → Расширения конфигурации, снимите «Активно» у последнего добавленного и обновите конфигурацию БД. Пользовательский режим снова откроется.
  2. Безопасный режим. По умолчанию расширение работает в безопасном режиме: ему запрещены операции с файлами на сервере, COM-объекты, внешние компоненты. Если расширение должно, например, писать файлы обмена — снимите флажок «Безопасный режим» в его свойствах. Делайте это только для расширений, автору которых доверяете.
  3. Печатная форма через расширение. Чтобы поправить макет счёта или акта, не нужно снимать типовую с поддержки. Заимствуйте макет в расширение и правьте копию — при обновлении релиза ваша правка не слетит.
  4. Храните .cfe в одном месте с номером версии. Например, PechatSchet_1.3.cfe. Через год никто не вспомнит, какая версия стоит в какой базе.
  5. Выгрузите расширение в файл перед обновлением типовой. В Конфигураторе это команда сохранения расширения в файл. Если после обновления что-то сломается, будет с чем сравнить.
  6. Распределённая база. Чтобы расширение передавалось в узлы РИБ, у него должно быть включено свойство использования в распределённой информационной базе. Иначе в каждый узел его ставят вручную.

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

Чаще всего проблема видна сразу после запуска: доработка не появилась или программа выдала предупреждение о расширении.

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

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

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

Сколько расширений можно подключить к одной базе?
Жёсткого лимита для практики нет. Но каждое расширение увеличивает время запуска и риск конфликтов, поэтому мелкие правки одного автора лучше держать в одном расширении.
Слетит ли расширение при обновлении типовой конфигурации?
Нет, расширение хранится отдельно и остаётся в базе. Перестать применяться оно может, только если в новом релизе изменились объекты или методы, которые оно заимствует.
Работают ли расширения в облачной 1С?
В облачных сервисах расширения обычно подключаются через тот же список расширений, но с ограничениями провайдера, например только в безопасном режиме. Про конкретный тариф уточняйте у поставщика.
Можно ли перенести расширение в другую базу?
Да. Сохраните его в файл .cfe из Конфигуратора и загрузите в другую базу любым способом из этой инструкции. Данные собственных объектов расширения при этом не переносятся.
Видят ли расширение все пользователи?
Расширение с областью действия «Информационная база» применяется для всех. Права на его новые объекты раздаются через роли, которые расширение добавляет или дополняет.