Подключаем файл .cfe к базе 1С 8.3 в режиме Конфигуратора и проверяем, что он заработал

· 9 мин

Содержание

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

Частая ошибка — грузить .cfe через Конфигурация → Загрузить конфигурацию из файла в главном окне. Эта команда работает с файлами .cf и заменяет основную конфигурацию. С расширениями она не связана. Расширение подключается только через собственное окно списка расширений.

Механизм расширений появился в платформе 8.3.6. Всё, что описано ниже, относится к 8.3 с интерфейсом «Такси» и подходит для любой конфигурации: Бухгалтерии 3.0, ЗУП 3.1, УТ 11 и других.

Что проверить в базе и у пользователя до подключения

Подключение расширения — операция администратора. Пять минут подготовки снимают большую часть проблем.

📌 Права. Пользователь, под которым вы входите в Конфигуратор, должен иметь право Администрирование. В типовых конфигурациях его дают роли «Полные права» или «Администратор системы». Без этого права окно расширений откроется, но изменить список не получится.

📌 Версия платформы. Номер платформы на компьютере должен быть не ниже того, под который собран .cfe. Это видно в свойствах расширения после загрузки: параметр «Режим совместимости».

📌 Совместимость с конфигурацией. Узнайте у автора расширения, под какой релиз типовой его делали. Если он писал под релиз 3.0.150, а у вас 3.0.120, часть объектов может не найтись.

📌 Резервная копия. Подключение расширения само по себе основную конфигурацию не трогает. Но обновление структуры данных, если расширение добавляет реквизиты, меняет таблицы базы. Перед первым подключением в рабочей базе сделайте выгрузку .dt или копию каталога файловой базы.

📌 Тестовая копия. Хорошая практика — сначала подключить расширение к копии базы, проверить и только потом повторить в рабочей.

Основная конфигурация может быть на поддержке без возможности изменения. Расширения для этого и придуманы: снимать типовую с поддержки не нужно.

Перед подключением расширения
Выполнено: 0 / 5

Как добавить расширение конфигурации в Конфигураторе: два сценария

В Конфигураторе встречаются два случая. Либо у вас готовый файл .cfe от программиста или поставщика. Либо вы сами создаёте пустое расширение, чтобы туда что-то дописать.

Сценарий 1. Подключение готового файла .cfe

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

Если поставщик передал не один .cfe, а несколько, повторите шаги 3–6 для каждого файла. Порядок важен только тогда, когда одно расширение опирается на другое: тогда первым ставьте базовое.

Сценарий 2. Создание нового расширения

  1. В том же окне нажмите Добавить.
  2. Заполните поля диалога:
    • Имя — латиница или кириллица без пробелов, например ДоработкиПечати;
    • Синоним — понятное название для людей;
    • Префикс — добавляется к именам новых объектов, например дп_;
    • Назначение — «Исправление», «Адаптация» или «Дополнение».
  3. Нажмите ОК и откройте расширение двойным щелчком. Появится отдельное дерево объектов.
  4. Чтобы доработать типовой объект, найдите его в дереве основной конфигурации и в контекстном меню выберите Добавить в расширение. Объект появится в дереве расширения как заимствованный.
  5. Внесите изменения и выполните Обновить конфигурацию базы данных (F7), когда активно окно расширения.

Префикс — не формальность. Если два расширения создают реквизит с одинаковым именем без префикса, второе может не примениться из-за конфликта имён.

Назначение, безопасный режим и порядок применения расширений

Подключить файл мало. От пары флагов и одного свойства зависит, заработает ли доработка вообще.

Назначение

Свойство «Назначение» задаётся в корне дерева расширения. От него зависит, в каком порядке платформа накладывает расширения на основную конфигурацию.

НазначениеДля чегоПорядок применения
ИсправлениеСрочные исправления ошибок типовойПрименяется первым
АдаптацияПодгонка под нужды конкретной компанииПосле исправлений
ДополнениеНовые отчёты, обработки, интеграцииПоследним

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

Флаги в списке расширений

В окне Расширения конфигурации у каждой строки есть флаги. Самые важные:

  • ✅ Активно — расширение применяется к базе. Снимите флаг, чтобы временно отключить доработку, не удаляя её.
  • 🔒 Безопасный режим — код расширения не может выполнять привилегированные операции: работать с файлами на сервере, внешними компонентами, COM-объектами. Для печатной формы или отчёта флаг обычно не мешает. Для обмена с внешними системами его приходится снимать.
  • 🛡️ Защита от опасных действий — при запуске кода, который может навредить, платформа показывает предупреждение.
  • 🔁 Использовать в распределённой ИБ — расширение передаётся в подчинённые узлы РИБ вместе с обменом.

Снимайте «Безопасный режим» только у расширения из проверенного источника. Без него код расширения получает те же возможности, что и сама типовая.

Режим совместимости

В свойствах корня расширения есть «Режим совместимости». Он не должен быть новее, чем у основной конфигурации. Если программист собрал .cfe с режимом новее вашей типовой, платформа откажется применять расширение.

Обновление конфигурации базы данных и применение расширения

Загрузка .cfe и обновление базы данных — разные шаги. Первый кладёт расширение в хранилище конфигурации базы. Второй делает его рабочим.

Обычное обновление

  1. Откройте дерево расширения.
  2. Выполните Конфигурация → Обновить конфигурацию базы данных или нажмите F7, пока активно окно расширения.
  3. Если расширение добавляет реквизиты или новые таблицы, платформа покажет список изменений структуры. Примите их.

Уже открытые сеансы пользователей новое расширение не увидят. Подключение подхватится при следующем входе в программу. Попросите пользователей перезапустить 1С или дождитесь начала нового дня.

Подключение расширения из командной строки

Когда расширение надо раскатать на десяток баз, удобнее пакетный режим Конфигуратора. Параметр -Extension указывает, что команда относится к расширению, а не к основной конфигурации:

set V8="C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe"

%V8% DESIGNER /F"D:\Bases\Buh" /N"Администратор" /P"" /LoadCfg "D:\ext\DorabotkiPechati.cfe" -Extension "ДоработкиПечати" /Out "D:\ext\load.log"

%V8% DESIGNER /F"D:\Bases\Buh" /N"Администратор" /P"" /UpdateDBCfg -Extension "ДоработкиПечати" /Out "D:\ext\update.log"

Номер в пути к 1cv8.exe замените на свою версию платформы. Для клиент-серверной базы вместо /F укажите /S"сервер\имя_базы". Результат каждой операции смотрите в файле, переданном в /Out.

Если расширения с таким именем в базе ещё нет, /LoadCfg … -Extension создаст его. Если есть — содержимое заменится новым из файла.

Отладка и проверка подключённого расширения

Подключили и обновили — ещё не значит, что работает. Проверьте три вещи.

1. Синтаксис и применимость

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

2. Поведение в пользовательском режиме

Запустите отладку клавишей F5 («Начать отладку»). Точки останова в модулях расширения работают так же, как в типовых модулях. Это удобно для перехватчиков:

  • &Перед("ИмяПроцедуры") — ваш код выполняется до типового;
  • &После("ИмяПроцедуры") — после типового;
  • &Вместо("ИмяПроцедуры") — вместо типового;
  • &ИзменениеИКонтроль("ИмяПроцедуры") — правка копии типового метода с контролем его текста.

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

3. Проверка глазами пользователя

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

Отлаживайте на копии базы. Остановка на точке останова в рабочей базе держит транзакцию открытой, а остальные пользователи ловят блокировки.

Как выпустить новую версию расширения и обновить его в базе

Расширение живёт дольше одного релиза типовой. Вести версии лучше с самого начала.

Где хранить версию

В свойствах корня расширения заполните поле «Версия», например 1.0.3. Номер виден в списке расширений и сразу подсказывает, какой файл стоит в базе.

Как заменить расширение новой версией

  1. Выгрузите текущую версию: в окне расширений выделите строку и выберите Конфигурация → Сохранить конфигурацию в файл…. Это ваш откат.
  2. Загрузите новый .cfe в то же расширение командой Загрузить конфигурацию из файла….
  3. Обновите конфигурацию базы данных.

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

Работа в команде

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

После обновления типовой

Обновление основной конфигурации — главный риск для расширений. Если в новом релизе переименовали реквизит или изменили контролируемый метод, расширение перестанет применяться. Порядок такой:

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

Ошибки при подключении расширения и что с ними делать

Ниже симптомы, которые встречаются чаще всего. Выберите свой.

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

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

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