Правка расширения конфигурации: от открытия в Конфигураторе до выкладки в базы

· 9 мин

Содержание

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

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

Подготовка: доступ, копия и разбор чужого расширения

Расширения появились в платформе 8.3.6, но всё, что описано дальше, рассчитано на актуальную 8.3.2x. Механизм общий для платформы: одинаково работает в Бухгалтерии 3.0, ЗУП 3.1, УТ 11 и других конфигурациях.

Что нужно до начала работы:

  • 🔑 Пользователь с правом администрирования. Без него Конфигуратор не откроется или не даст применить изменения.
  • 💾 Копия расширения. Сохраните текущую версию в файл .cfe, чтобы откатиться за минуту.
  • 🧪 Тестовая копия базы. Правки пишите и проверяйте в копии, а в рабочую базу переносите готовый файл.
  • 📋 Понимание, кто автор. Если расширение купили у партнёра, ваши правки затрёт его следующая версия.

Как сохранить текущую версию

В окне «Расширения конфигурации » выделите расширение и через меню Конфигурация (или контекстное меню) выполните сохранение в файл. Получится файл .cfe — это и есть ваша точка возврата.

Назовите файл с датой и номером версии, например Расш_Печать_1.0.3_2026-10-07.cfe. Через месяц будет понятно, какой файл последний.

Что посмотреть в свойствах расширения

Откройте палитру свойств корня расширения. Там три параметра, которые влияют на правку:

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

Также пробегитесь по дереву: какие объекты заимствованы (у них особый значок), какие созданы с нуля. Так видно, куда расширение реально встраивается.

Открытие расширения и доступ к исходному коду

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

Пошагово

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

Если код не открывается

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

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

Расширение подключено к хранилищу

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

Как редактировать расширение 1С: объекты, модули, формы

Любая правка в расширении строится вокруг двух действий: заимствовать объект типовой и дописать к нему своё.

Заимствование объекта

  1. В дереве основной конфигурации найдите нужный объект: справочник, документ, общий модуль, форму.
  2. Щёлкните правой кнопкой и выберите «Добавить в расширение».
  3. Объект появится в дереве расширения с пометкой заимствования.

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

Пример: новый реквизит в справочнике

Допустим, в карточку номенклатуры нужно поле «Код поставщика».

  1. Заимствуйте справочник Номенклатура в расширение.
  2. В заимствованном справочнике добавьте реквизит Расш1_КодПоставщика с типом «Строка» нужной длины.
  3. Заимствуйте форму элемента справочника.
  4. Перетащите новый реквизит из списка реквизитов формы в дерево элементов, в нужную группу.
  5. Добавьте реквизит в роль расширения, которая выдаётся пользователям, работающим с номенклатурой.
  6. Примените изменения (F7) и проверьте карточку.

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

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

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

АннотацияКогда срабатываетКогда применять
&ПередДо типовой процедурыДополнительная проверка, подготовка данных
&ПослеПосле типовой процедурыДозаполнение, логирование
&ВместоВместо типовойПолная замена логики, типовую можно вызвать через ПродолжитьВызов()
&ИзменениеИКонтрольСвоя копия процедуры с правкамиНужно вставить строку в середину типового кода

Пример: запрет записи контрагента с ИНН неправильной длины. Перехват в модуле объекта справочника Контрагенты:

&Перед("ПередЗаписью")
Процедура Расш1_ПередЗаписью(Отказ)

	Если ОбменДанными.Загрузка Тогда
		Возврат;
	КонецЕсли;

	Если ЗначениеЗаполнено(ИНН)
		И СтрДлина(ИНН) <> 10
		И СтрДлина(ИНН) <> 12 Тогда
		Сообщить("ИНН должен содержать 10 или 12 цифр");
		Отказ = Истина;
	КонецЕсли;

КонецПроцедуры

Параметры процедуры в расширении должны совпадать с параметрами типовой: и по количеству, и по порядку.

Изменение и контроль

Это самый «хрупкий» и самый мощный вариант. Платформа копирует текст типовой процедуры в расширение, а вы помечаете правки специальными инструкциями:

&ИзменениеИКонтроль("ЗаполнитьПоОснованию")
Процедура Расш1_ЗаполнитьПоОснованию(Основание)
	// ...типовой текст, скопированный платформой...
	#Вставка
	Комментарий = "Создан на основании";
	#КонецВставки
	#Удаление
	// строка типового кода, которую нужно отключить
	#КонецУдаления
КонецПроцедуры

Инструкции #Вставка и #Удаление можно ставить в любом месте процедуры. Если после обновления типовая процедура изменится, расширение не применится, пока вы не сверите текст. Это защита: она не даст тихо выполнить устаревшую копию кода.

Формы

Чтобы изменить форму, заимствуйте её. В редакторе формы расширения можно:

  • ➕ добавить свои реквизиты, элементы и команды;
  • 🔀 переставить типовые элементы и поменять их видимость;
  • ⚙️ назначить свои обработчики событий формы и элементов.

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

Новые элементы формы называйте с префиксом. Тогда после обновления типовой их не перепутаешь с элементами, которые появились у разработчиков.

Отладка и проверка правок

Расширение отлаживается так же, как основная конфигурация. Точки останова ставятся прямо в модулях расширения.

Порядок проверки

  1. Проверьте синтаксис открытого модуля: Ctrl+F7.
  2. Примените изменения в тестовой базе: F7.
  3. Запустите отладку: F5. Откроется 1С:Предприятие под отладчиком.
  4. Поставьте точку останова (F9) в процедуре расширения и выполните действие, которое её вызывает.
  5. Пройдите код по шагам и проверьте значения переменных в табло.

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

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

Что проверить вручную

Проверка расширения перед выкладкой
Выполнено: 0 / 5

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

Применение и публикация расширения в рабочих базах

После правки в Конфигураторе изменения сначала нужно применить в самой базе, а потом разнести по другим базам, если их несколько.

В той же базе

Нажмите F7 («Обновить конфигурацию базы данных») при активном дереве расширения. Изменения увидят сеансы, запущенные после применения. Тем, кто уже работает, нужно перезапустить 1С.

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

В другие базы

Есть три пути:

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

Для пакетной выкладки используют параметры /LoadCfg и /UpdateDBCfg с ключом -Extension:

"C:\Program Files\1cv8\8.3.25.1374\bin\1cv8.exe" DESIGNER ^
  /S "srv1c\buh" /N "Администратор" /P "пароль" ^
  /LoadCfg "D:\ext\Расш_Печать.cfe" -Extension "Расш_Печать" ^
  /UpdateDBCfg -Extension "Расш_Печать" ^
  /Out "D:\ext\log.txt"

Номер платформы в пути подставьте свой. Пароль в батнике лучше не хранить открытым текстом: такой файл доступен всем, у кого есть доступ к папке.

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

Почему расширение не применяется после правки

Большинство проблем всплывает в двух местах: при F7 и после обновления типовой конфигурации.

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

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

Временно отключите расширение флагом «Активно» в окне «Расширения конфигурации» и проверьте, повторяется ли ошибка. Если без расширения всё работает — проблема в нём. Откатитесь на сохранённый .cfe и вносите правки по одной, проверяя каждую.

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

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

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