Подключаем файл .cfe к базе 1С 8.3 в режиме Конфигуратора и проверяем, что он заработал
Содержание
Чтобы добавить расширение
в 1С через Конфигуратор, откройте Конфигурация → Расширения конфигурации, нажмите Добавить, а затем загрузите в созданное расширение файл .cfe через меню Конфигурация этого окна. Последний шаг — Обновить конфигурацию базы данных для расширения. Без него доработка лежит в базе мёртвым грузом и пользователи её не видят.
Частая ошибка — грузить .cfe через Конфигурация → Загрузить конфигурацию из файла в главном окне. Эта команда работает с файлами .cf и заменяет основную конфигурацию. С расширениями она не связана. Расширение подключается только через собственное окно списка расширений.
Механизм расширений появился в платформе 8.3.6. Всё, что описано ниже, относится к 8.3 с интерфейсом «Такси» и подходит для любой конфигурации: Бухгалтерии 3.0, ЗУП 3.1, УТ 11 и других.
Что проверить в базе и у пользователя до подключения
Подключение расширения — операция администратора. Пять минут подготовки снимают большую часть проблем.
📌 Права. Пользователь, под которым вы входите в Конфигуратор, должен иметь право Администрирование. В типовых конфигурациях его дают роли «Полные права» или «Администратор системы». Без этого права окно расширений откроется, но изменить список не получится.
📌 Версия платформы. Номер платформы на компьютере должен быть не ниже того, под который собран .cfe. Это видно в свойствах расширения после загрузки: параметр «Режим совместимости».
📌 Совместимость с конфигурацией. Узнайте у автора расширения, под какой релиз типовой его делали. Если он писал под релиз 3.0.150, а у вас 3.0.120, часть объектов может не найтись.
📌 Резервная копия. Подключение расширения само по себе основную конфигурацию не трогает. Но обновление структуры данных, если расширение добавляет реквизиты, меняет таблицы базы. Перед первым подключением в рабочей базе сделайте выгрузку .dt или копию каталога файловой базы.
📌 Тестовая копия. Хорошая практика — сначала подключить расширение к копии базы, проверить и только потом повторить в рабочей.
Основная конфигурация может быть на поддержке без возможности изменения. Расширения для этого и придуманы: снимать типовую с поддержки не нужно.
Как добавить расширение конфигурации в Конфигураторе: два сценария
В Конфигураторе встречаются два случая. Либо у вас готовый файл .cfe от программиста или поставщика. Либо вы сами создаёте пустое расширение, чтобы туда что-то дописать.
Сценарий 1. Подключение готового файла .cfe
- Запустите базу в режиме
Конфигуратор. - Откройте
Конфигурация → Расширения конфигурации. Появится окно со списком расширений, обычно пустое. - Нажмите
Добавить. Платформа предложит создать новое расширение с именем вродеРасширение1. Имя пока неважно, соглашайтесь. - Выделите созданную строку и в меню
Конфигурацияэтого окна выберитеЗагрузить конфигурацию из файла…. - Укажите файл
.cfe. Содержимое загрузится, имя и префикс подставятся из файла. - Платформа спросит, обновить ли конфигурацию базы данных. Ответьте «Да» и подтвердите принятие изменений.
Если поставщик передал не один .cfe, а несколько, повторите шаги 3–6 для каждого файла. Порядок важен только тогда, когда одно расширение опирается на другое: тогда первым ставьте базовое.
Сценарий 2. Создание нового расширения
- В том же окне нажмите
Добавить. - Заполните поля диалога:
- Имя — латиница или кириллица без пробелов, например
ДоработкиПечати; - Синоним — понятное название для людей;
- Префикс — добавляется к именам новых объектов, например
дп_; - Назначение — «Исправление», «Адаптация» или «Дополнение».
- Имя — латиница или кириллица без пробелов, например
- Нажмите
ОКи откройте расширение двойным щелчком. Появится отдельное дерево объектов. - Чтобы доработать типовой объект, найдите его в дереве основной конфигурации и в контекстном меню выберите
Добавить в расширение. Объект появится в дереве расширения как заимствованный. - Внесите изменения и выполните
Обновить конфигурацию базы данных(F7), когда активно окно расширения.
Префикс — не формальность. Если два расширения создают реквизит с одинаковым именем без префикса, второе может не примениться из-за конфликта имён.
Назначение, безопасный режим и порядок применения расширений
Подключить файл мало. От пары флагов и одного свойства зависит, заработает ли доработка вообще.
Назначение
Свойство «Назначение» задаётся в корне дерева расширения. От него зависит, в каком порядке платформа накладывает расширения на основную конфигурацию.
| Назначение | Для чего | Порядок применения |
|---|---|---|
| Исправление | Срочные исправления ошибок типовой | Применяется первым |
| Адаптация | Подгонка под нужды конкретной компании | После исправлений |
| Дополнение | Новые отчёты, обработки, интеграции | Последним |
Внутри одной группы назначения расширения применяются в порядке подключения. Если два расширения меняют одну и ту же процедуру, итог зависит от этого порядка. Поэтому лучше держать перехват одного метода в одном расширении.
Флаги в списке расширений
В окне Расширения конфигурации у каждой строки есть флаги. Самые важные:
- ✅ Активно — расширение применяется к базе. Снимите флаг, чтобы временно отключить доработку, не удаляя её.
- 🔒 Безопасный режим — код расширения не может выполнять привилегированные операции: работать с файлами на сервере, внешними компонентами, COM-объектами. Для печатной формы или отчёта флаг обычно не мешает. Для обмена с внешними системами его приходится снимать.
- 🛡️ Защита от опасных действий — при запуске кода, который может навредить, платформа показывает предупреждение.
- 🔁 Использовать в распределённой ИБ — расширение передаётся в подчинённые узлы РИБ вместе с обменом.
Снимайте «Безопасный режим» только у расширения из проверенного источника. Без него код расширения получает те же возможности, что и сама типовая.
Режим совместимости
В свойствах корня расширения есть «Режим совместимости». Он не должен быть новее, чем у основной конфигурации. Если программист собрал .cfe с режимом новее вашей типовой, платформа откажется применять расширение.
Обновление конфигурации базы данных и применение расширения
Загрузка .cfe и обновление базы данных — разные шаги. Первый кладёт расширение в хранилище конфигурации базы. Второй делает его рабочим.
Обычное обновление
- Откройте дерево расширения.
- Выполните
Конфигурация → Обновить конфигурацию базы данныхили нажмите F7, пока активно окно расширения. - Если расширение добавляет реквизиты или новые таблицы, платформа покажет список изменений структуры. Примите их.
Уже открытые сеансы пользователей новое расширение не увидят. Подключение подхватится при следующем входе в программу. Попросите пользователей перезапустить 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. Номер виден в списке расширений и сразу подсказывает, какой файл стоит в базе.
Как заменить расширение новой версией
- Выгрузите текущую версию: в окне расширений выделите строку и выберите
Конфигурация → Сохранить конфигурацию в файл…. Это ваш откат. - Загрузите новый
.cfeв то же расширение командойЗагрузить конфигурацию из файла…. - Обновите конфигурацию базы данных.
Удалять старое расширение перед загрузкой новой версии не нужно. Удаление расширения, которое хранит свои данные, стирает эти данные вместе с ним. Загрузка поверх сохраняет их, если структура совместима.
Работа в команде
Расширение можно подключить к хранилищу конфигурации отдельно от основной конфигурации. Это даёт историю изменений и захват объектов на редактирование, как для типовой. Для расширения на одного разработчика хватит папки с выгруженными .cfe и номером версии в имени файла.
После обновления типовой
Обновление основной конфигурации — главный риск для расширений. Если в новом релизе переименовали реквизит или изменили контролируемый метод, расширение перестанет применяться. Порядок такой:
- Обновите типовую на тестовой копии.
- Запустите программу и посмотрите, не появилось ли сообщение о неприменимом расширении.
- Откройте расширение и исправьте заимствованные объекты по замечаниям проверки.
- Только после этого обновляйте рабочую базу.
Ошибки при подключении расширения и что с ними делать
Ниже симптомы, которые встречаются чаще всего. Выберите свой.
Частые вопросы
Нужен ли монопольный режим, чтобы подключить расширение?
Можно ли подключить расширение без Конфигуратора?
Администрирование → Печатные формы, отчеты и обработки → Расширения. Нужны права администратора.