Где найти и как отредактировать расширение в 1С 8.3
Содержание
Расширение конфигурации
в 1С 8.3 открывают в Конфигураторе: Конфигурация → Открыть конфигурацию, затем Конфигурация → Расширения конфигурации и двойной щелчок по нужной строке списка. Откроется отдельное дерево объектов расширения, с модулями, формами и макетами. Посмотреть список расширений без Конфигуратора можно и в пользовательском режиме, но редактировать код там нельзя.
Частое заблуждение — искать расширение в дереве основной конфигурации. Его там нет: расширение живёт отдельно и только «подключается» к типовой. Механизм одинаков для всех прикладных решений на платформе 8.3: БП 3.0, ЗУП 3.1, УТ 11 и других. Появился он в платформе 8.3.6.
Что проверить до того, как открывать расширение
Три вещи определяют, получится ли вообще добраться до кода.
🔑 Права пользователя. Для работы в Конфигураторе нужна роль с правом «Администрирование». В типовых конфигурациях это роль «Полные права» (профиль «Администратор»). Если вход в Конфигуратор не пускает или список расширений пуст при заведомо подключённых доработках — сначала смотрите права.
🖥️ Версия платформы. Номер платформы должен быть не ниже того, на котором расширение создавали. Свойство «Режим совместимости» у расширения не может быть выше, чем у основной конфигурации.
💾 Резервная копия. Само открытие ничего не меняет. Но как только вы правите расширение и обновляете базу, изменения сразу действуют для пользователей. Перед правками выгрузите базу через Администрирование → Выгрузить информационную базу или сохраните расширение в файл .cfe (как — ниже).
Монопольный режим для открытия расширения не нужен. Можно смотреть и даже обновлять его, пока в базе работают люди. Уже запущенные сеансы увидят изменения после перезапуска.
Как открыть расширение конфигурации в Конфигураторе
Шаг 1. Запустите базу в режиме Конфигуратора
В окне запуска 1С выделите базу и нажмите кнопку Конфигуратор. Войдите пользователем с полными правами.
Шаг 2. Откройте основную конфигурацию
Меню Конфигурация → Открыть конфигурацию. Без этого шага расширения можно увидеть в списке, но работать с заимствованными объектами неудобно: не с чем сравнивать.
Шаг 3. Вызовите список расширений
Меню Конфигурация → Расширения конфигурации. Появится окно со списком: имя, синоним, версия, назначение, флаг активности.
Шаг 4. Откройте нужное расширение
Дважды щёлкните по строке. Рядом с деревом основной конфигурации откроется второе дерево — это и есть расширение. Его корень подписан именем расширения, например Расширение1 или ДоработкиПечати.
Шаг 5. Работайте с деревом
Дальше всё как в обычной конфигурации:
- Раскройте ветку
Общие → Общие модулиили ветку нужного документа. - Дважды щёлкните по модулю или форме — откроется редактор.
- После правок нажмите
F7или выберитеОбновить конфигурацию базы данных, находясь в окне расширения. Обновится только расширение, основная конфигурация не затрагивается.
Если одновременно открыты основная конфигурация и расширение, следите, в каком окне вы нажимаете F7. Обновление основной конфигурации и расширения — разные действия.
Расширения в режиме 1С:Предприятие
Иногда нужно не код смотреть, а проверить, подключено ли расширение, отключить его или выгрузить. Для этого Конфигуратор не нужен.
| Где открыть | Путь | Что можно сделать |
|---|---|---|
| БП 3.0, ЗУП 3.1, УТ 11 | Администрирование → Печатные формы, отчеты и обработки → Расширения | Добавить из файла, включить или отключить, удалить, сохранить в файл |
| Любая конфигурация | Главное меню → Функции для технического специалиста → Стандартные → Управление расширениями конфигурации | То же, через стандартную форму платформы |
Если пункта для технического специалиста нет в главном меню, включите его в параметрах программы: Главное меню → Сервис и настройки → Параметры.
Здесь видно ключевые свойства расширения:
- ✅ Активно — подключено ли расширение к базе.
- 🛡️ Безопасный режим — ограничивает доступ кода к файлам, внешним компонентам и COM. Расширения, добавленные пользователем в режиме Предприятия, по умолчанию включаются в безопасном режиме.
- 🚧 Защита от опасных действий — показывать ли предупреждение, когда расширение пытается выполнить потенциально опасную операцию.
- 🔁 Используется в распределённой ИБ — передаётся ли расширение в узлы обмена.
Если доработка «пропала» после переноса базы, первым делом откройте этот список. Часто расширение есть, но снят флаг «Активно».
Файл .cfe: как открыть расширение из файла
Расширение хранят и передают в виде файла с расширением .cfe. Двойным щелчком в проводнике он не открывается: файл нужно загрузить в информационную базу.
Загрузить .cfe в Конфигураторе
- Откройте окно
Конфигурация → Расширения конфигурации. - Нажмите
Добавить— появится пустое расширение. Имя можно оставить любым: при загрузке оно заменится тем, что записано в файле. - Выделите новую строку и в командной панели окна откройте меню
Конфигурация. - Выберите команду загрузки из файла и укажите
.cfe. - Откройте расширение двойным щелчком и обновите его (
F7).
Загрузка файла и обновление базы — два разных шага. Пока не нажато F7, расширение лежит в Конфигураторе, но пользователи его не видят.
Сохранить расширение в файл
В том же меню Конфигурация окна расширений есть команда сохранения в файл. Делайте так перед каждой правкой: это быстрый откат, если что-то пойдёт не так.
Посмотреть .cfe, не трогая рабочую базу
Хотите изучить чужое расширение? Создайте пустую файловую базу
на той же конфигурации или на демо-базе, загрузите туда .cfe и открывайте. Рабочая база останется нетронутой.
Сравнить файл с тем, что уже в базе
Откройте расширение в Конфигураторе и выберите Конфигурация → Сравнить, объединить с конфигурацией из файла… — находясь в окне расширения. Укажите .cfe. Покажутся все различия по модулям и формам. Удобно, когда подрядчик прислал новую версию доработки.
Выгрузить и загрузить расширение из командной строки
Когда расширений много или их надо разнести по нескольким базам, удобнее пакетный режим Конфигуратора. Ключ -Extension указывает, что команда относится к расширению, а не к основной конфигурации:
rem Выгрузить расширение в файл
"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" DESIGNER /F "D:\Bases\Buh" /N "Администратор" /P "" /DumpCfg "D:\Backup\ДоработкиПечати.cfe" -Extension ДоработкиПечати
rem Загрузить расширение из файла и обновить его в базе
"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" DESIGNER /F "D:\Bases\Buh" /N "Администратор" /P "" /LoadCfg "D:\Backup\ДоработкиПечати.cfe" -Extension ДоработкиПечати /UpdateDBCfg -Extension ДоработкиПечати
Путь к 1cv8.exe и номер платформы подставьте свои. Для серверной базы вместо /F используется /S "сервер\имя_базы". Результат выполнения удобно писать в журнал ключом /Out "D:\log.txt" — если загрузка не прошла, причина будет там.
Открыть расширение в 1С:EDT
Разработчики, которые ведут доработки в Git, открывают расширение в 1С:EDT. Для этого создают проект расширения, связанный с проектом основной конфигурации, и импортируют его из информационной базы или из файла .cfe. Код и формы там те же, но поиск по проекту и сравнение версий удобнее, чем в Конфигураторе.
Как читать дерево расширения: свои и заимствованные объекты
В открытом расширении объекты бывают двух видов.
Собственные объекты созданы в самом расширении: новый общий модуль, отчёт, обработка, роль. У них обычная иконка, правьте их как угодно.
Заимствованные объекты взяты из основной конфигурации, чтобы что-то в них изменить. Их иконка помечена особым значком. Заимствовать можно документ, справочник, форму, общий модуль, макет.
Чтобы найти, что именно изменено в заимствованном объекте, откройте его модуль и ищите аннотации перед процедурами:
&После("ПриСозданииНаСервере")
Процедура Расш1_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
// код выполнится после типового обработчика
КонецПроцедуры
&Вместо("ЗаполнитьТабличнуюЧасть")
Процедура Расш1_ЗаполнитьТабличнуюЧасть()
// типовая процедура не выполнится, если не вызвать ПродолжитьВызов()
КонецПроцедуры
Что означают аннотации:
| Аннотация | Когда срабатывает | Риск при обновлении типовой |
|---|---|---|
&Перед | До типовой процедуры | Низкий |
&После | После типовой процедуры | Низкий |
&Вместо | Вместо типовой; её можно вызвать через ПродолжитьВызов() | Средний: новая логика типовой может потеряться |
&ИзменениеИКонтроль | Правка внутри текста типовой процедуры | Высокий: при изменении исходника расширение не применится |
Быстро найти все перехватчики можно глобальным поиском по расширению: Правка → Глобальный поиск, строка &Вместо, область поиска — только расширение.
Ещё одна вещь, которую смотрят первым делом, — свойство «Назначение» в свойствах корня расширения: исправление, адаптация или дополнение. От него зависит, в каком порядке применяются расширения, если их несколько.
Если расширений несколько
В одной базе их может быть пять и больше: печатные формы от одного подрядчика, исправление ошибки от другого, интеграция с сайтом от третьего. Платформа применяет их по очереди. Сначала расширения с назначением «Исправление», затем «Адаптация», затем «Дополнение».
Отсюда практическое правило: если два расширения перехватывают одну и ту же процедуру через &Вместо, сработает только одно. Такие конфликты ищут, открывая расширения по очереди и сравнивая списки заимствованных модулей. Если пересечение нашлось, логику лучше собрать в одном расширении, а второе упростить: так поведение программы станет предсказуемым, и при следующем обновлении типовой не придётся гадать, чей код выполнился.
Отладка кода расширения
Расширение отлаживают так же, как основную конфигурацию. Точки останова ставятся прямо в модулях расширения.
Файловая база
- Откройте расширение в Конфигураторе и обновите его (
F7) — отладчик работает с тем кодом, который применён к базе. - Поставьте точку останова:
F9на нужной строке. - Запустите
Отладка → Начать отладку → Тонкий клиент(илиF5). - Выполните в программе действие, которое вызывает код. Выполнение остановится на точке.
Клиент-серверная база
Серверный код ловится, только если на сервере 1С включена отладка: служба агента сервера запускается с ключом -debug. Если ключа нет, точки в серверных процедурах будут игнорироваться.
Чтобы добавить ключ, службу агента придётся перезапустить. Все сеансы пользователей оборвутся — делайте это вне рабочего времени и предупредите людей заранее.
Чтобы подключиться к
уже работающему сеансу пользователя, используйте Отладка → Подключение и выберите нужный предмет отладки.
Полезные приёмы при отладке
- 🔍 Табло (
Shift+F9на выражении) — посмотреть значения переменных и вычислить выражение. - 📞 Стек вызовов — видно, вызвалась ли сначала типовая процедура, потом процедура расширения.
- 🧪 Если точка не срабатывает, проверьте флаг «Активно» и не стоит ли перехват
&Вместов другом расширении на ту же процедуру.
Почему расширение не открывается или не применяется
Флаг «Безопасный режим» снимайте только для расширений из надёжного источника. Код без ограничений получает доступ к файловой системе сервера и может запускать внешние программы.