К статье
Практический материал

Разработка и Конфигурация · 13 мин

Расширение 1С: что это такое и как с ним работать

Что такое расширение конфигурации 1С, чем оно отличается от доработки, как создать, подключить и обновить расширение без снятия конфигурации с поддержки.

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

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

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

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

Что такое расширение конфигурации и как оно устроено

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

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

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

Когда использовать расширение, а когда — доработку конфигурации

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

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

Сравнение вариантов

Расширение конфигурации

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

Изменение основной конфигурации

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

Внешние отчёты и обработки (.epf, .erf)

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

Маршрут решения

Как выбрать действие

Нужна только новая печатная форма или отчёт без изменения типовых объектовИспользуйте внешнюю обработку или отчёт — это проще и безопаснее расширения
Нужно изменить форму документа, добавить команду или переопределить процедуру модуляСоздайте расширение конфигурации
Нужно изменить состав движений типовых документов или структуру регистровОцените возможности вашей версии платформы; при недоступности механизма в расширении планируйте доработку основной конфигурации

Как создать расширение в конфигураторе

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

Порядок создания расширения
  1. 1
    Сделайте резервную копию информационной базы через конфигуратор или средствами СУБД
  2. 2
    Откройте конфигуратор и перейдите в меню «Конфигурация — Расширения конфигурации»
  3. 3
    Нажмите «Создать», задайте имя и синоним расширения, укажите префикс для новых объектов
  4. 4
    В дереве конфигурации найдите нужный объект, вызовите контекстное меню и выберите «Добавить в расширение»
  5. 5
    Внесите изменения: отредактируйте форму, добавьте процедуру с аннотацией «&Вместо», «&Перед» или «&После»
  6. 6
    Сохраните конфигурацию и обновите конфигурацию базы данных (F7)
  7. 7
    Запустите базу в режиме предприятия и проверьте результат на тестовых данных

Ключевой приём при доработке модулей — заимствование процедур и функций. В расширении процедура объявляется с аннотацией: &Вместо("ИмяПроцедуры") полностью заменяет типовой код, &Перед и &После добавляют логику до или после типовой. Внутри заменяющей процедуры можно вызвать типовую реализацию, чтобы не копировать её код целиком.

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

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

Готовое расширение из файла .cfe подключается в режиме «1С:Предприятие» через раздел «Администрирование — Печатные формы, отчеты и обработки — Расширения» (в типовых конфигурациях на БСП) либо через конфигуратор в окне «Расширения конфигурации» командой загрузки из файла. После добавления расширение активируется автоматически или после перезапуска сеанса.

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

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

Безопасность и контроль при работе с расширениями

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

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

Обновление типовой конфигурации при наличии расширений

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

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

Контрольные точки

Как проверить результат

Статус расширения в списке после обновления
Норма

Расширение активно, ошибок применимости нет

Тревожный признак

Расширение отключено, в журнале регистрации ошибки проверки применимости

Работа изменённой формы документа
Норма

Форма открывается, все добавленные элементы и команды работают

Тревожный признак

Ошибка при открытии формы или пропали элементы после обновления релиза

Поведение заимствованных процедур
Норма

Документ проводится, доработанная логика выполняется

Тревожный признак

Ошибка «Процедура или функция не обнаружена» или неверный результат расчёта

Типичные ошибки и ограничения механизма

Частая ошибка — использование аннотации «&Вместо» там, где достаточно «&После». Полная замена типовой процедуры означает, что при обновлении релиза вы не получите исправления поставщика внутри этой процедуры. Правило: заменяйте целиком только когда это действительно необходимо, в остальных случаях дополняйте типовую логику.

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

Типичные ошибки
01
Замена процедур через «&Вместо» без необходимости — после обновления релиза теряются исправления поставщика и растёт трудоёмкость сопровождения
02
Подключение расширения сразу в рабочую базу без теста на копии — ошибка в коде может остановить работу пользователей
03
Отключение профиля безопасности для непроверенного расширения — код получает доступ к файловой системе и внешним ресурсам
04
Отсутствие префикса у новых объектов расширения — при совпадении имён с будущими объектами поставщика возникнут конфликты
05
Забытое тестовое расширение в рабочей базе — пользователи видят лишние элементы, а обновления усложняются

Ограничения механизма зависят от версии платформы. В ранних версиях нельзя было создавать собственные объекты метаданных и менять роли; в современных версиях список возможностей существенно шире, но изменение состава движений типовых документов и ряда системных механизмов по-прежнему доступно не всегда. Перед началом разработки проверьте в документации к вашей версии платформы, поддерживается ли нужный сценарий.

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

Что важно запомнить

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

Частые вопросы о расширениях 1С

Можно ли подключить несколько расширений к одной базе?

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

Что произойдёт с расширением при обновлении типовой конфигурации?

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

Чем расширение отличается от внешней обработки?

Внешняя обработка (.epf) — это самостоятельный файл, который запускается пользователем вручную или через подсистему дополнительных отчётов и обработок. Расширение встраивается в конфигурацию: меняет формы, модули, роли и работает постоянно. Для разовой операции достаточно обработки, для изменения поведения системы нужно расширение.

Можно ли создать расширение без программирования?

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

Как удалить расширение, если база перестала запускаться?

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

Работают ли расширения в базовых версиях 1С?

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