Разработка и Конфигурация · 13 мин
Расширение 1С: что это такое и как с ним работать
Что такое расширение конфигурации 1С, чем оно отличается от доработки, как создать, подключить и обновить расширение без снятия конфигурации с поддержки.
Расширение конфигурации — это механизм платформы 1С:Предприятие 8.3, который позволяет добавлять и изменять функциональность типовой конфигурации, не изменяя её саму. Доработки выносятся в отдельный объект — расширение, которое подключается к информационной базе поверх основной конфигурации и хранится отдельно от неё.
Главная практическая ценность расширений в том, что типовая конфигурация остаётся на полной поддержке поставщика. Это значит, что обновления на новые релизы устанавливаются автоматически или с минимальными усилиями, без ручного сопоставления изменённых объектов. Для большинства прикладных доработок — дополнительной печатной формы, новой роли, изменения поведения формы документа — расширение является предпочтительным способом.
Механизм доступен начиная с платформы 8.3.6, однако реально удобным для работы он стал в более поздних версиях, где появились изменяемые роли, собственные объекты метаданных и расширение модулей. Чем новее версия платформы, тем шире список того, что можно сделать через расширение, не трогая основную конфигурацию.
Ниже разобраны устройство расширения, способы его создания и подключения, ограничения механизма, правила безопасной работы и типичные ошибки.
Что такое расширение конфигурации и как оно устроено
Расширение представляет собой отдельную структуру метаданных, похожую на уменьшенную копию конфигурации. В нём хранятся только те объекты, которые вы добавили или изменили: формы, модули, макеты, роли, подсистемы, а также собственные объекты — например, новые справочники или документы в современных версиях платформы.
При запуске информационной базы платформа объединяет основную конфигурацию и подключённые расширения в единую логическую структуру. Пользователь работает с системой как обычно, но видит результат с учётом доработок: изменённую форму, дополнительную кнопку, новый отчёт. Сама конфигурация поставщика при этом физически не меняется.
Расширение можно сохранить в файл с расширением .cfe и перенести в другую базу с аналогичной конфигурацией. Это удобно для тиражирования доработки между рабочей и тестовой базами или между несколькими организациями, использующими одинаковый релиз.
Когда использовать расширение, а когда — доработку конфигурации
Расширение подходит для большинства типовых задач: добавить печатную форму, внешний отчёт, обработку, изменить форму документа, переопределить логику в модуле через аннотации «Вместо», «Перед», «После», добавить роль или подсистему. Это стандартный выбор, когда объём изменений умеренный и не затрагивает ядро учётных механизмов.
Прямое изменение конфигурации оправдано, когда нужно глубоко перестроить учёт: изменить структуру регистров типовых документов, добавить измерения в регистры, переработать проведение целой группы документов. Часть таких задач в расширениях либо недоступна, либо реализуется с ограничениями, зависящими от версии платформы.
Сравнение вариантов
Подходит для печатных форм, отчётов, доработки форм и модулей. Обновление типовой конфигурации сохраняется, доработку легко перенести. Ограничение — не все объекты и механизмы доступны для изменения.
Подходит для глубокой переработки учётных механизмов и структуры данных. Минус — конфигурация частично снимается с поддержки, обновления требуют ручного сопоставления и занимают заметно больше времени.
Подходят, если нужна только дополнительная печатная форма или отчёт без изменения форм и логики. Самый лёгкий вариант, но не позволяет менять поведение типовых объектов.
Как выбрать действие
Как создать расширение в конфигураторе
Создание расширения выполняется в конфигураторе. Перед началом работы убедитесь, что у вас есть актуальная копия базы, а пользователь обладает правами администратора. Порядок действий следующий.
- 1Сделайте резервную копию информационной базы через конфигуратор или средствами СУБД
- 2Откройте конфигуратор и перейдите в меню «Конфигурация — Расширения конфигурации»
- 3Нажмите «Создать», задайте имя и синоним расширения, укажите префикс для новых объектов
- 4В дереве конфигурации найдите нужный объект, вызовите контекстное меню и выберите «Добавить в расширение»
- 5Внесите изменения: отредактируйте форму, добавьте процедуру с аннотацией «&Вместо», «&Перед» или «&После»
- 6Сохраните конфигурацию и обновите конфигурацию базы данных (F7)
- 7Запустите базу в режиме предприятия и проверьте результат на тестовых данных
Ключевой приём при доработке модулей — заимствование процедур и функций. В расширении процедура объявляется с аннотацией: &Вместо("ИмяПроцедуры") полностью заменяет типовой код, &Перед и &После добавляют логику до или после типовой. Внутри заменяющей процедуры можно вызвать типовую реализацию, чтобы не копировать её код целиком.
Для форм расширение позволяет добавлять элементы, менять свойства существующих и перехватывать обработчики событий. Заимствованная форма сохраняет связь с типовой: если в новом релизе поставщик изменит форму, платформа попытается объединить изменения, но конфликты возможны — их нужно проверять после каждого обновления.
Как подключить, отключить и перенести расширение
Готовое расширение из файла .cfe подключается в режиме «1С:Предприятие» через раздел «Администрирование — Печатные формы, отчеты и обработки — Расширения» (в типовых конфигурациях на БСП) либо через конфигуратор в окне «Расширения конфигурации» командой загрузки из файла. После добавления расширение активируется автоматически или после перезапуска сеанса.
В списке расширений доступны действия: снять флажок использования (временное отключение без удаления), удалить, сохранить в файл, обновить из файла. Временное отключение удобно для диагностики: если после подключения расширения появилась ошибка, его можно быстро отключить и проверить, исчезнет ли проблема.
Перенос между базами выполняется через сохранение в файл .cfe и загрузку в целевую базу. Важно, чтобы конфигурация целевой базы совпадала по версии или была совместима: расширение ссылается на объекты типовой конфигурации по именам, и если в другом релизе объект переименован или удалён, расширение не подключится или выдаст ошибку.
Безопасность и контроль при работе с расширениями
Расширение выполняет полноценный код на встроенном языке, поэтому файл из непроверенного источника — это фактически исполняемый код в вашей базе. В платформе предусмотрен механизм профилей безопасности: расширению можно запретить небезопасные действия, доступ к файловой системе и внешним компонентам. В типовых конфигурациях при подключении расширения предлагается выбрать профиль безопасности — не отключайте защиту без необходимости.
Признак безопасного расширения — понятное происхождение (собственная разработка, проверенный подрядчик, официальный маркетплейс) и возможность открыть его в конфигураторе и просмотреть код. Если расширение поставляется без исходников или требует отключить профиль безопасности без объяснения причин — это повод отказаться от установки.
Обновление типовой конфигурации при наличии расширений
Основной сценарий, ради которого используют расширения, — обновление типового релиза. Конфигурация обновляется штатно, расширения при этом не затрагиваются. Однако после обновления обязательна проверка совместимости: типовая процедура, которую вы заимствовали, могла изменить состав параметров или быть удалена.
Платформа при запуске проверяет применимость расширений. Если объект, на который ссылается расширение, исчез из конфигурации, расширение будет отключено с записью в журнале регистрации. Поэтому после каждого обновления откройте список расширений, убедитесь, что все они активны, и пройдите ключевые сценарии: проведите документ с изменённой формой, сформируйте доработанную печатную форму.
Как проверить результат
Расширение активно, ошибок применимости нет
Расширение отключено, в журнале регистрации ошибки проверки применимости
Форма открывается, все добавленные элементы и команды работают
Ошибка при открытии формы или пропали элементы после обновления релиза
Документ проводится, доработанная логика выполняется
Ошибка «Процедура или функция не обнаружена» или неверный результат расчёта
Типичные ошибки и ограничения механизма
Частая ошибка — использование аннотации «&Вместо» там, где достаточно «&После». Полная замена типовой процедуры означает, что при обновлении релиза вы не получите исправления поставщика внутри этой процедуры. Правило: заменяйте целиком только когда это действительно необходимо, в остальных случаях дополняйте типовую логику.
Вторая группа ошибок связана с заимствованием форм: чем сильнее переработана заимствованная форма, тем выше вероятность конфликта при обновлении. Если типовая форма в новом релизе существенно изменилась, платформа может не суметь объединить её с вашей версией, и доработку придётся переносить вручную.
Ограничения механизма зависят от версии платформы. В ранних версиях нельзя было создавать собственные объекты метаданных и менять роли; в современных версиях список возможностей существенно шире, но изменение состава движений типовых документов и ряда системных механизмов по-прежнему доступно не всегда. Перед началом разработки проверьте в документации к вашей версии платформы, поддерживается ли нужный сценарий.
Заведите простой реестр расширений: имя файла, назначение, автор, дата установки, какие типовые объекты заимствованы. При обновлении релиза этот список экономит часы — сразу видно, что именно нужно проверить, а через полгода никто не вспомнит, зачем подключено то или иное расширение.
Что важно запомнить
Расширение — основной способ доработки типовой 1С без потери поддержки. Создавайте его в конфигураторе, тестируйте на копии базы, используйте «&Перед» и «&После» вместо «&Вместо», не отключайте профиль безопасности и после каждого обновления релиза проверяйте применимость расширений и работу ключевых сценариев.
Частые вопросы о расширениях 1С
Можно ли подключить несколько расширений к одной базе?
Да, к одной информационной базе можно подключить несколько расширений, они применяются совместно. Ограничение: два расширения не должны изменять одни и те же объекты конфликтующим образом — например, заимствовать одну и ту же процедуру с аннотацией «&Вместо». При конфликте одно из расширений не будет применено.
Что произойдёт с расширением при обновлении типовой конфигурации?
Само расширение не изменится — обновление затрагивает только конфигурацию поставщика. Однако если в новом релизе изменились или удалились объекты, на которые ссылается расширение, оно может быть автоматически отключено. После обновления проверьте список расширений и журнал регистрации.
Чем расширение отличается от внешней обработки?
Внешняя обработка (.epf) — это самостоятельный файл, который запускается пользователем вручную или через подсистему дополнительных отчётов и обработок. Расширение встраивается в конфигурацию: меняет формы, модули, роли и работает постоянно. Для разовой операции достаточно обработки, для изменения поведения системы нужно расширение.
Можно ли создать расширение без программирования?
Частично. Добавить в расширение макет печатной формы, роль или простую доработку формы можно без написания кода. Но изменение логики — проведение документов, расчёты, проверки — требует кода на встроенном языке 1С, поэтому для таких задач нужны навыки разработки или помощь специалиста.
Как удалить расширение, если база перестала запускаться?
Откройте базу в конфигураторе — он обычно запускается даже при проблемах с расширением. Перейдите в «Конфигурация — Расширения конфигурации», снимите флажок использования у проблемного расширения или удалите его, затем обновите конфигурацию базы данных. Если конфигуратор тоже не открывается, восстановите базу из резервной копии.
Работают ли расширения в базовых версиях 1С?
Базовые версии типовых конфигураций не поддерживают изменение конфигурации, и возможности расширений в них ограничены лицензионной политикой конкретного продукта. Перед покупкой базовой версии с планами на доработки уточните в документации к продукту, поддерживаются ли расширения конфигурации.