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

· 9 мин

Содержание

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

Обычно файл присылает программист или франчайзи: доработанная печатная форма, новый отчёт, исправление ошибки типового релиза. Сам по себе файл ничего не меняет, пока его не загрузили в базу и не перезапустили сеансы. Чаще всего проблема не в загрузке, а в том, что расширение молча не применилось — это тоже разберём.

Что нужно до подключения расширения

Механизм расширений появился в платформе 8.3.6, и с тех пор сильно развился. Для современной конфигурации на платформе 8.3.2x ограничений по версии практически нет. Перед загрузкой проверьте четыре вещи.

  • 🔑 Права. Пользователь должен иметь полные права (роль «Администратор» или «Полные права» в типовых) либо право «Администрирование расширений конфигурации». Без него команда добавления недоступна или выдаёт ошибку.
  • 🧩 Режим совместимости. У расширения есть свойство «Режим совместимости». Он должен быть не выше режима совместимости основной конфигурации. Если расширение собрано под более новую платформу, база его не примет.
  • 📦 Источник файла. Расширение исполняет код на сервере с правами пользователя. Подключайте только файлы от известного разработчика.
  • 💾 Резервная копия. Расширение может добавлять реквизиты и таблицы. Перед первым подключением сделайте выгрузку .dt или копию файловой базы — это единственный способ откатиться, если что-то пойдёт не так.

Расширение или внешняя обработка

Разработчики иногда передают одну и ту же доработку в двух видах. Разница существенная.

ЧтоВнешняя обработка (.epf, .erf)Расширение (.cfe)
Меняет типовые формы и модулиНетДа
Добавляет реквизиты к документамНетДа
ПодключениеДополнительные отчёты и обработкиСписок расширений
Переживает обновление релизаДа, почти всегдаНужна проверка применимости
Риск для данныхНизкийВыше: меняет поведение программы

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

Подключение расширения в режиме «Предприятие»

Этот способ подходит, когда у вас нет доступа к Конфигуратору или база опубликована в облаке. Он работает в БП 3.0, ЗУП 3.1, УТ 11 и других конфигурациях на БСП.

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

Если раздела «Расширения» нет

В нетиповой или старой конфигурации может не быть этой формы. Тогда используйте платформенный механизм.

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

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

Роли расширения и группы доступа

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

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

В конфигурациях без БСП роли назначаются в Конфигураторе: Администрирование → Пользователи, вкладка «Прочие», где роли расширения выводятся вместе с основными.

Загрузка .cfe через Конфигуратор

Конфигуратор даёт больше контроля: видно состав расширения, можно сравнить версии и отладить код. Порядок такой.

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

Загрузка файла и обновление конфигурации базы данных — два разных шага. Пока не выполнен шаг 5, расширение лежит в базе, но пользователи его не получают.

Свойства, которые стоит проверить

Откройте свойства корня расширения (Alt+Enter на верхнем узле дерева).

  • 🏷️ Префикс — например, Расш1_. Им начинаются имена всех новых объектов и процедур. Два расширения с одинаковым префиксом сложно сопровождать.
  • 🎯 Назначение — «Исправление», «Адаптация» или «Дополнение». Определяет порядок применения: сначала исправления, затем адаптация, затем дополнения.
  • 🛡️ Безопасный режим и Защита от опасных действий — настраиваются здесь же или в форме списка в «Предприятии».
  • 👥 Использовать основные роли для всех пользователей — если флажок снят, новые объекты расширения увидят только те, кому назначены его роли.

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

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

@echo off
set V8="C:\Program Files\1cv8\<версия платформы>\bin\1cv8.exe"
set BASE="D:\Bases\Buh"
set EXT=Исправление_Печать

%V8% DESIGNER /F%BASE% /N"Администратор" /P"" ^
  /LoadCfg "D:\ext\Fix.cfe" -Extension %EXT% ^
  /UpdateDBCfg -Extension %EXT% ^
  /Out "D:\ext\log.txt"

Для серверной базы вместо /F используйте /S"сервер\имя_базы". Результат смотрите в файле журнала, указанном в /Out. Выгрузить расширение обратно в файл можно ключом /DumpCfg "файл.cfe" -Extension Имя.

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

Как проверить, что расширение работает, и отладить его код

Расширение в списке ещё не гарантия, что его код выполняется. Проверьте по шагам.

  1. Флажок активности. В списке расширений в «Предприятии» строка должна быть включена. Отключённое расширение лежит в базе, но не применяется.
  2. Применимость. В Конфигураторе в окне Конфигурация → Расширения конфигурации выполните проверку применимости из меню «Действия». Платформа перечислит объекты, которые не удалось сопоставить с основной конфигурацией.
  3. Видимый результат. Новая печатная форма появится в меню «Печать», новый реквизит — на форме документа. Если не появились — перезапустите сеанс.

Отладка подключённых модулей

Код расширения отлаживается так же, как код основной конфигурации.

  1. Откройте дерево расширения в Конфигураторе.
  2. Найдите модуль, например Документы → РеализацияТоваровУслуг → Модуль объекта.
  3. Поставьте точку останова (F9) в процедуре с аннотацией.
  4. Запустите отладку (F5) и выполните действие, которое вызывает этот код.

В модулях расширения вы встретите аннотации:

АннотацияЧто делает
&Перед("Имя")Код выполняется до типовой процедуры
&После("Имя")Код выполняется после типовой процедуры
&Вместо("Имя")Заменяет типовую процедуру; типовая вызывается через ПродолжитьВызов()
&ИзменениеИКонтроль("Имя")Копия типовой процедуры с правками; платформа сверяет её с оригиналом

Если точка останова не срабатывает в клиент-серверной базе, проверьте, что на сервере 1С включена отладка. Для этого служба агента запускается с ключом -debug. Включать его на рабочем сервере лучше на время отладки: перезапуск службы оборвёт сеансы всех пользователей, планируйте его на нерабочее время.

Быстрый способ убедиться, что расширение вообще отрабатывает, — временно добавить в обработчик Сообщить("Расширение сработало");. После проверки строку уберите.

Обновление версий: новое расширение и новый релиз конфигурации

С расширениями два вида обновлений: вы получаете новую версию .cfe или обновляете саму типовую конфигурацию .

Новая версия файла расширения

  1. Сохраните текущую версию: в Конфигураторе Действия → Сохранить в файл… в списке расширений. Это ваш откат.
  2. Загрузите новый файл в то же расширение — не создавайте второе с тем же префиксом.
  3. Выполните обновление конфигурации базы данных для расширения.
  4. Проверьте номер в свойстве «Версия» корня расширения. Его заполняет разработчик; если поле пустое, попросите его вести номера.

В режиме «Предприятие» обновление делается в той же форме списка расширений: выделите строку и замените файл через команды формы. Удалять и добавлять расширение заново не нужно и опасно — см. раздел ниже.

Обновление релиза конфигурации

После установки нового релиза БП или ЗУП типовые объекты могут измениться. Расширение, которое на них опирается, перестаёт применяться.

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

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

Удаление расширения и что происходит с данными

Удалить расширение можно в той же форме списка. Последствия зависят от его состава.

  • 🖨️ Расширение только с печатными формами и отчётами удаляется без потерь.
  • 🗃️ Если расширение добавляло реквизиты или справочники, при удалении эти данные будут потеряны безвозвратно. Платформа предупредит, но многие жмут «Да» не читая.
  • 🔄 Отключение флажком активности данные не удаляет. Это безопасный способ временно выключить доработку.

Поэтому для диагностики сначала отключайте, а не удаляйте.

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

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

Если не помогло

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

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

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