Подключение файла .cfe к базе 1С: порядок, проверка и отладка

· 10 мин

Содержание

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

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

СпособКогда выбираютЧто можно
Конфигуратор, Конфигурация → Расширения конфигурацииРазработка, отладка, сервер, пакетная загрузкаСоздать, загрузить, открыть, сравнить, отладить
1С:Предприятие, раздел Администрирование (БСП)Подключить готовый .cfe без программистаЗагрузить, включить, выключить, удалить
Стандартная функция «Управление расширениями конфигурации»Конфигурация без БСПЗагрузить, включить, выключить, удалить
Командная строка 1cv8 DESIGNERРегламентная выкладка на десятки базЗагрузить и применить без открытия окон

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

Расширения конфигурации появились в платформе 8.3.6. Номер платформы на компьютере и на сервере должен быть не ниже этого, а на практике — актуальный релиз ветки 8.3.2x. Посмотреть номер можно в Конфигураторе через Справка → О программе.

Перед загрузкой пройдитесь по короткому списку:

  • 🔑 Права. Пользователь, под которым открываете Конфигуратор, должен иметь административные права в базе. Без них пункт меню расширений будет недоступен.
  • 📦 Режим совместимости. Откройте свойства основной конфигурации и посмотрите поле «Режим совместимости». Расширение, собранное в конфигурации с более новым режимом, может не примениться. Сверьте это поле у обеих сторон — у разработчика и у себя.
  • 🧩 Версия основной конфигурации. Расширение заимствует объекты основной конфигурации. Если разработчик делал его под другой релиз БП или ЗУП, часть заимствованных объектов может не совпасть, и расширение откажется применяться.
  • 💾 Резервная копия. Расширение не трогает основную конфигурацию, но может хранить собственные данные и менять поведение проведения документов.

Перед загрузкой чужого расширения в рабочую базу сделайте выгрузку .dt или резервную копию СУБД и проверьте расширение на копии. Ошибка в обработчике проведения, подключённом через &Вместо, сломает проведение у всех пользователей сразу.

Если расширения ещё нет файлом, а нужно сделать его с нуля, отдельной подготовки не требуется: пустое расширение создаётся той же кнопкой «Добавить».

Как добавить расширение через меню Конфигуратора: пошагово

Ниже два сценария: загрузка готового файла .cfe и создание нового расширения для собственной доработки.

Загрузка готового файла .cfe

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

💡 Загрузка файла и обновление конфигурации базы данных — два отдельных шага. Пропуск F7 — самая частая причина жалобы «загрузил, а ничего не поменялось».

Создание нового расширения для доработки

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

Проверить, что расширение вообще срабатывает, удобно маленьким обработчиком в заимствованной форме:

&НаСервере
&После("ПриСозданииНаСервере")
Процедура дп_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
	Сообщить("Расширение ДоработкиПечати подключено");
КонецПроцедуры

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

Свойства подключённого расширения: какие флажки за что отвечают

В окне списка расширений у каждой строки есть колонки-флажки. Их меняют прямо в списке, без открытия дерева.

СвойствоЧто делаетКогда включать
АктивноРасширение применяется при входе пользователейВключено для рабочих расширений; выключают, чтобы временно отключить без удаления
Безопасный режимКод расширения выполняется с ограничениями: без доступа к файлам, COM-объектам, внешним компонентам и привилегированному режимуДля расширений из непроверенных источников
Защита от опасных действийПлатформа предупреждает пользователя перед потенциально опасными действиями расширенияДля расширений, которые запускают внешний код
Используется в распределённой ИБРасширение передаётся в узлы РИБ вместе с обменомЕсли у вас распределённая база и расширение должно работать в филиалах

Ещё одно поле — «Область действия»: «Информационная база» или «Область данных». Второе значение встречается в базах с разделением данных (сервисная модель). В обычной коробочной базе оставляют «Информационная база».

Если в базе несколько расширений, порядок применения определяется назначением: сначала «Исправление», затем «Адаптация», затем «Дополнение». Два расширения, перехватывающие один и тот же метод, выполнятся в этом порядке — учитывайте это, когда разбираете странное поведение.

Новые объекты расширения (справочники, отчёты, обработки) по умолчанию никому не доступны. Создайте в расширении роль с правами на них и выдайте её пользователям. В конфигурациях на БСП роль расширения включают в профиль группы доступа.

Отладка расширения и безопасный режим

Отлаживают расширение так же, как основную конфигурацию. Главное условие — расширение активно и для него выполнено обновление F7.

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

Для методов с аннотациями &Перед, &После и &Вместо точку ставят в методе расширения, а не в исходном методе основной конфигурации. Чтобы посмотреть, что делает типовой код после вашего &Перед, пройдите отладку по шагам (F11) — отладчик перейдёт в модуль основной конфигурации.

Отладка серверного кода в клиент-серверной базе

В файловой базе серверный код отлаживается сразу. В клиент-серверной нужно, чтобы служба агента сервера 1С была запущена с ключом -debug. Ключ прописывают в параметрах запуска службы ragent.

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

К уже открытым сеансам отладчик подключают через Отладка → Подключение.

Что ломает безопасный режим

Если у расширения стоит флажок «Безопасный режим», код не сможет:

  • 📁 читать и писать файлы на диске сервера и клиента;
  • 🔌 создавать COM-объекты и подключать внешние компоненты;
  • 🛡 включать привилегированный режим;
  • 🌐 выполнять часть операций с внешними ресурсами.

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

Подключение расширения на сервере 1С:Предприятие и для всех пользователей

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

Что нужно помнить в клиент-серверном варианте:

  • 🔄 Применение при входе. Расширение подключается в момент начала сеанса. Пользователи, которые уже работали в базе, увидят изменения после перезапуска 1С.
  • 🌍 Веб-публикация. Если база опубликована на веб-сервере IIS или Apache, перепубликация не нужна: веб-клиент получает расширения из базы.
  • 🔁 РИБ. Чтобы расширение ушло в узлы, включите у него флажок «Используется в распределённой ИБ» и выполните обмен.

Пакетная загрузка из командной строки

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

"C:\Program Files\1cv8\<версия>\bin\1cv8.exe" DESIGNER /S "srv01\buh" /N "Администратор" /P "пароль" ^
  /LoadCfg "D:\ext\ДоработкиПечати.cfe" -Extension "ДоработкиПечати" ^
  /UpdateDBCfg -Extension "ДоработкиПечати" ^
  /Out "D:\ext\log.txt"

Для файловой базы вместо /S "сервер\база" укажите /F "D:\Bases\Buh". Имя в -Extension должно совпадать с именем расширения в базе. Результат пишется в файл из параметра /Out — проверяйте его после каждого запуска, бат-файл сам ошибку не покажет.

Выгрузить расширение из базы в файл можно аналогично командой /DumpCfg "D:\ext\копия.cfe" -Extension "ДоработкиПечати".

Пароль администратора в бат-файле — уязвимость. Храните такой скрипт в папке с ограниченным доступом или подставляйте пароль из переменной окружения.

Как обновить или удалить расширение без потери данных

Обновление. Новую версию .cfe загружают в ту же строку списка: выделите расширение, меню «Конфигурация» → «Загрузить конфигурацию из файла…», затем F7. Создавать новую строку не нужно — получите два одинаковых расширения и конфликт имён.

Отключение. Чтобы временно убрать доработку, снимите флажок «Активно». Код перестанет применяться, данные расширения сохранятся.

Удаление. Кнопка «Удалить» в окне списка убирает расширение целиком.

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

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

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

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

Отдельно про ситуацию «у меня работает, у пользователя нет». Почти всегда это права: администратор видит всё, а роль расширения рядовому пользователю не назначена. Реже — пользователь работает под старым сеансом в другом окне, который был открыт до загрузки.

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

Частые вопросы о расширениях конфигурации

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