Где в конфигураторе найти расширение и начать его править

· 9 мин

Содержание

Чтобы открыть расширение в конфигураторе 1С, запустите базу в режиме «Конфигуратор», выберите в меню Конфигурация → Расширения конфигурации и дважды щёлкните нужное расширение в списке. Откроется отдельное окно с деревом объектов расширения: там правят модули, формы и макеты, а затем применяют изменения к базе.

Чаще всего сложности начинаются не с самого открытия, а вокруг него. Список пустой, хотя в пользовательском режиме расширение видно. Расширение есть, но не применяется. Правки сделаны, а пользователи их не видят. Ниже — порядок действий от подготовки до выгрузки в файл .cfe, плюс разбор ошибок.

1. Что проверить до запуска конфигуратора

Расширения конфигурации появились в платформе 8.3.6. На более ранних номерах платформы пункта в меню просто не будет. Современные типовые конфигурации (Бухгалтерия 3.0, ЗУП 3.1, УТ 11) всё равно требуют платформу с номером намного выше, так что на рабочих базах это ограничение почти не встречается.

Перед работой проверьте три вещи:

  • 🔢 Номер платформы. В конфигураторе он виден в Справка → О программе. Для механизма &ИзменениеИКонтроль в модулях расширения нужна платформа с номером не ниже 8.3.16.
  • 👤 Учётная запись. Входить нужно под пользователем с административными правами. В типовых конфигурациях это роль «Полные права» или «Администратор системы».
  • 💾 Резервная копия. Если расширение работает в рабочей базе и вы собираетесь его менять, сначала сохраните текущую версию расширения в файл .cfe (как это сделать — в разделе 7). Это быстрее, чем выгружать всю базу в .dt, и позволяет откатиться за минуту.

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

2. Как запустить конфигуратор и выбрать нужную базу

Обычный путь через стартовое окно:

  1. Запустите ярлык «1С:Предприятие».
  2. Выделите базу в списке информационных баз.
  3. Нажмите кнопку Конфигуратор справа.
  4. Введите имя пользователя и пароль.

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

Конфигуратор можно открыть и из командной строки. Это удобно, когда базу нужно открывать часто или из скрипта:

"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" DESIGNER /F"D:\Bases\Buh" /N"Администратор" /P"пароль"

Для серверной базы вместо /F указывают /S"имя_сервера\имя_базы". Номер версии в пути подставьте свой: у вас он почти наверняка другой.

Пароль в bat-файле хранится открытым текстом. Не оставляйте такие файлы на общих дисках.

3. Открываем расширение в конфигураторе: пошагово

Сам порядок короткий:

  1. В конфигураторе откройте основную конфигурацию: Конфигурация → Открыть конфигурацию. Дерево основной конфигурации понадобится, чтобы заимствовать объекты.
  2. Выберите Конфигурация → Расширения конфигурации. Откроется список всех расширений базы.
  3. Найдите нужное по имени или синониму.
  4. Дважды щёлкните строку. Либо выделите её и в командной панели списка выберите Конфигурация → Открыть конфигурацию.

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

Что видно в списке расширений

В таблице списка есть колонки, которые сразу подсказывают, почему расширение ведёт себя странно:

КолонкаЧто означаетНа что смотреть
АктивноПрименяется ли расширение при запуске сеансовСнят флажок — правки не работают, хотя открыть расширение можно
Безопасный режимОграничение опасных операций в кодеВключён — не сработают обращения к файлам, COM, внешним компонентам
Защита от опасных действийПредупреждения при запуске потенциально опасного кодаВлияет на сообщения пользователю, а не на открытие
ВерсияСвойство «Версия» из корня расширенияПомогает понять, та ли редакция загружена

Если расширения в списке нет

Расширение могли загрузить через пользовательский режим: Администрирование → Печатные формы, отчёты и обработки → Расширения в типовых конфигурациях. Такие расширения тоже хранятся в базе и отображаются в списке конфигуратора.

Если в пользовательском режиме расширение есть, а в конфигураторе нет, проверьте:

  • 🔄 не открыт ли конфигуратор раньше, чем расширение загрузили: закройте список и откройте снова;
  • 🗂 ту ли базу вы открыли — у копии и рабочей базы часто одинаковые имена в списке;
  • ☁️ работает ли база с разделением данных (сервис, облако): расширения с областью действия «Область данных» живут в области конкретного абонента, а не в общем списке.

Как создать расширение, если его ещё нет

В том же списке нажмите Добавить. Платформа создаст пустое расширение с именем вида «Расширение1». Переименуйте его сразу: имя потом фигурирует в префиксах объектов и в командах выгрузки.

Чтобы перенести объект основной конфигурации в расширение, щёлкните его правой кнопкой в дереве основной конфигурации и выберите Добавить в расширение. Это и есть заимствование.

Префикс имён

В свойствах корня расширения есть поле «Префикс имён». Конфигуратор подставляет его в имена новых процедур-перехватчиков, например Расш1_ПриСозданииНаСервере. Задайте короткий и понятный префикс до начала работы: когда в базе три-четыре расширения, по префиксу сразу видно, чей это код. Переименовывать сотню методов потом долго.

4. Права доступа, назначение и режим совместимости расширения

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

Назначение

Свойство «Назначение» определяет, в каком порядке применяются расширения, если их несколько:

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

Если два расширения перехватывают одну процедуру, порядок применения решает, чей код выполнится. Это частая причина «моя правка не работает ».

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

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

Права

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

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

5. Правка и отладка кода в расширении

Модули открываются так же, как в основной конфигурации: двойной щелчок по объекту → вкладка «Прочее» или нужный модуль из контекстного меню.

Перехват процедур

Чтобы изменить поведение типовой процедуры, откройте модуль заимствованного объекта в основной конфигурации, щёлкните правой кнопкой по процедуре и выберите Добавить в расширение. Конфигуратор предложит тип аннотации:

  • ⬆️ &Перед — ваш код выполнится до типового;
  • ⬇️ &После — после типового;
  • 🔁 &Вместо — вместо типового (типовой можно вызвать через ПродолжитьВызов());
  • ✏️ &ИзменениеИКонтроль — копия процедуры с пометками #Вставка и #Удаление, платформа контролирует, что исходный текст не изменился.

Простой пример перехвата модуля формы:

&НаСервере
&После("ПриСозданииНаСервере")
Процедура Расш1_ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	Элементы.Комментарий.АвтоОтметкаНезаполненного = Истина;
КонецПроцедуры

Отладка

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

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

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

6. Ошибки при открытии и применении расширения

Ниже — ситуации, которые встречаются чаще других, и что с ними делать.

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

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

Вариант, который почти всегда снимает вопрос «расширение испорчено»: сохраните его в .cfe, удалите из списка, затем загрузите файл заново. Перед удалением убедитесь, что у расширения нет собственных данных (своих справочников и регистров): при удалении они пропадут.

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

7. Как сохранить изменения и выгрузить расширение в файл

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

Перед применением увеличьте свойство «Версия» в корне расширения, например с 1.0.3 на 1.0.4. Платформа этого не требует, но так в списке расширений сразу видно, какая редакция стоит в базе, а при разборе ошибок не придётся гадать.

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

Выгрузка и загрузка .cfe

ДействиеГде в конфигураторе
Сохранить расширение в файлВ окне расширения Конфигурация → Сохранить конфигурацию в файл…
Загрузить из файлаВ окне расширения Конфигурация → Загрузить конфигурацию из файла…
Сравнить с файломВ окне расширения Конфигурация → Сравнить, объединить с конфигурацией из файла…

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

"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" DESIGNER /F"D:\Bases\Buh" /N"Администратор" /P"пароль" /DumpCfg "D:\Backup\Расш1.cfe" -Extension Расш1

Загрузка в другую базу — та же строка с /LoadCfg вместо /DumpCfg, а затем обязательно /UpdateDBCfg -Extension Расш1. Загрузка .cfe и применение к базе — два отдельных шага. Без второго база продолжит работать со старой версией.

Хранилище для командной работы

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

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

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