Где в конфигураторе найти расширение и начать его править
Содержание
Чтобы открыть расширение в конфигураторе 1С, запустите базу в режиме «Конфигуратор», выберите в меню Конфигурация → Расширения конфигурации и дважды щёлкните нужное расширение в списке. Откроется отдельное окно с деревом объектов расширения: там правят модули, формы и макеты, а затем применяют изменения к базе.
Чаще всего сложности начинаются не с самого открытия, а вокруг него. Список пустой, хотя в пользовательском режиме расширение видно. Расширение есть, но не применяется. Правки сделаны, а пользователи их не видят. Ниже — порядок действий от подготовки до выгрузки в файл .cfe, плюс разбор ошибок.
1. Что проверить до запуска конфигуратора
Расширения конфигурации появились в платформе 8.3.6. На более ранних номерах платформы пункта в меню просто не будет. Современные типовые конфигурации (Бухгалтерия 3.0, ЗУП 3.1, УТ 11) всё равно требуют платформу с номером намного выше, так что на рабочих базах это ограничение почти не встречается.
Перед работой проверьте три вещи:
- 🔢 Номер платформы. В конфигураторе он виден в
Справка → О программе. Для механизма&ИзменениеИКонтрольв модулях расширения нужна платформа с номером не ниже 8.3.16. - 👤 Учётная запись. Входить нужно под пользователем с административными правами. В типовых конфигурациях это роль «Полные права» или «Администратор системы».
- 💾 Резервная копия. Если расширение работает в рабочей базе и вы собираетесь его менять, сначала сохраните текущую версию расширения в файл
.cfe(как это сделать — в разделе 7). Это быстрее, чем выгружать всю базу в.dt, и позволяет откатиться за минуту.
Править расширение «вживую» в рабочей базе — плохая привычка. Удобнее сделать копию базы, отладить изменения на ней, а в рабочую загрузить готовый .cfe.
2. Как запустить конфигуратор и выбрать нужную базу
Обычный путь через стартовое окно:
- Запустите ярлык «1С:Предприятие».
- Выделите базу в списке информационных баз.
- Нажмите кнопку Конфигуратор справа.
- Введите имя пользователя и пароль.
Если базы нет в списке, добавьте её кнопкой Добавить → «Добавление в список существующей информационной базы» и укажите каталог файловой базы или сервер и имя базы для клиент-серверного варианта.
Конфигуратор можно открыть и из командной строки. Это удобно, когда базу нужно открывать часто или из скрипта:
"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" DESIGNER /F"D:\Bases\Buh" /N"Администратор" /P"пароль"
Для серверной базы вместо /F указывают /S"имя_сервера\имя_базы". Номер версии в пути подставьте свой: у вас он почти наверняка другой.
Пароль в bat-файле хранится открытым текстом. Не оставляйте такие файлы на общих дисках.
3. Открываем расширение в конфигураторе: пошагово
Сам порядок короткий:
- В конфигураторе откройте основную конфигурацию:
Конфигурация → Открыть конфигурацию. Дерево основной конфигурации понадобится, чтобы заимствовать объекты. - Выберите
Конфигурация → Расширения конфигурации. Откроется список всех расширений базы. - Найдите нужное по имени или синониму.
- Дважды щёлкните строку. Либо выделите её и в командной панели списка выберите
Конфигурация → Открыть конфигурацию.
Расширение откроется в отдельном окне. В заголовке будет его имя, а внутри — такое же дерево объектов, как у основной конфигурации, только короче: в нём лишь собственные и заимствованные объекты.
Что видно в списке расширений
В таблице списка есть колонки, которые сразу подсказывают, почему расширение ведёт себя странно:
| Колонка | Что означает | На что смотреть |
|---|---|---|
| Активно | Применяется ли расширение при запуске сеансов | Снят флажок — правки не работают, хотя открыть расширение можно |
| Безопасный режим | Ограничение опасных операций в коде | Включён — не сработают обращения к файлам, COM, внешним компонентам |
| Защита от опасных действий | Предупреждения при запуске потенциально опасного кода | Влияет на сообщения пользователю, а не на открытие |
| Версия | Свойство «Версия» из корня расширения | Помогает понять, та ли редакция загружена |
Если расширения в списке нет
Расширение могли загрузить через пользовательский режим: Администрирование → Печатные формы, отчёты и обработки → Расширения в типовых конфигурациях. Такие расширения тоже хранятся в базе и отображаются в списке конфигуратора.
Если в пользовательском режиме расширение есть, а в конфигураторе нет, проверьте:
- 🔄 не открыт ли конфигуратор раньше, чем расширение загрузили: закройте список и откройте снова;
- 🗂 ту ли базу вы открыли — у копии и рабочей базы часто одинаковые имена в списке;
- ☁️ работает ли база с разделением данных (сервис, облако): расширения с областью действия «Область данных» живут в области конкретного абонента, а не в общем списке.
Как создать расширение, если его ещё нет
В том же списке нажмите Добавить. Платформа создаст пустое расширение с именем вида «Расширение1». Переименуйте его сразу: имя потом фигурирует в префиксах объектов и в командах выгрузки.
Чтобы перенести объект основной конфигурации в расширение, щёлкните его правой кнопкой в дереве основной конфигурации и выберите Добавить в расширение. Это и есть заимствование.
Префикс имён
В свойствах корня расширения есть поле «Префикс имён». Конфигуратор подставляет его в имена новых процедур-перехватчиков, например Расш1_ПриСозданииНаСервере. Задайте короткий и понятный префикс до начала работы: когда в базе три-четыре расширения, по префиксу сразу видно, чей это код. Переименовывать сотню методов потом долго.
4. Права доступа, назначение и режим совместимости расширения
Свойства расширения открываются двойным щелчком по корню дерева в окне расширения. Три настройки влияют на то, заработает ли ваш код.
Назначение
Свойство «Назначение» определяет, в каком порядке применяются расширения, если их несколько:
| Назначение | Для чего | Применяется |
|---|---|---|
| Исправление | Срочная правка ошибки типовой | Первым |
| Адаптация | Доработка под конкретного клиента | Вторым |
| Дополнение | Новая функциональность | Последним |
Если два расширения перехватывают одну процедуру, порядок применения решает, чей код выполнится. Это частая причина «моя правка не работает ».
Режим совместимости
У расширения свой режим совместимости. При создании он берётся от основной конфигурации. После обновления типовой режим основной конфигурации может вырасти, а у расширения останется старым. Тогда при применении платформа выдаст ошибку несоответствия. Лечится выравниванием свойства «Режим совместимости» в корне расширения.
Права
Расширение может добавлять свои роли и дополнять заимствованные. Новые объекты расширения недоступны пользователям, пока им не выданы права через роль. Типичная ситуация: добавили отчёт, а пользователь его не видит. Создайте в расширении роль с правами на новый объект и включите её в нужный профиль групп доступа.
Для самих администраторов в 8.3 есть отдельное право на администрирование расширений конфигурации. В типовых оно входит в роль полных прав. Если вы вошли под урезанным пользователем, загрузка и удаление расширений в пользовательском режиме будут недоступны.
5. Правка и отладка кода в расширении
Модули открываются так же, как в основной конфигурации: двойной щелчок по объекту → вкладка «Прочее» или нужный модуль из контекстного меню.
Перехват процедур
Чтобы изменить поведение типовой процедуры, откройте модуль заимствованного объекта в основной конфигурации, щёлкните правой кнопкой по процедуре и выберите Добавить в расширение. Конфигуратор предложит тип аннотации:
- ⬆️
&Перед— ваш код выполнится до типового; - ⬇️
&После— после типового; - 🔁
&Вместо— вместо типового (типовой можно вызвать черезПродолжитьВызов()); - ✏️
&ИзменениеИКонтроль— копия процедуры с пометками#Вставкаи#Удаление, платформа контролирует, что исходный текст не изменился.
Простой пример перехвата модуля формы:
&НаСервере
&После("ПриСозданииНаСервере")
Процедура Расш1_ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Элементы.Комментарий.АвтоОтметкаНезаполненного = Истина;
КонецПроцедуры
Отладка
- Поставьте точку останова в модуле расширения (F9).
- Запустите
Отладка → Начать отладку(F5) и выберите клиент. - Выполните действие в открывшемся сеансе.
Для клиент-серверной базы на сервере должна быть включена отладка: служба агента сервера запускается с ключом -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 и применение к базе — два отдельных шага. Без второго база продолжит работать со старой версией.
Хранилище для командной работы
Если расширение правят несколько разработчиков, подключите его к собственному хранилищу. Делается это в окне расширения через Конфигурация → Хранилище конфигурации. У основной конфигурации и у каждого расширения хранилища отдельные.