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

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

Расширения 1С: когда появились и что умеют

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

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

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

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

Когда появились расширения: платформа 8.3.6

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

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

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

Как развивался механизм в версиях 8.3.7–8.3.10

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

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

Платформа 8.3.6 (2014)Появление расширений

Изменение форм, ролей, ограниченный набор объектов

Платформы 8.3.7–8.3.10Постепенное развитие

Поддержка веб-клиента, расширение модулей форм

Платформа 8.3.11 (2018)Качественный скачок

Собственные объекты метаданных, аннотации &Перед, &После, &Вместо

Платформа 8.3.11: расширения становятся полноценным инструментом

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

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

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

bsl
&Вместо("РассчитатьСкидку")
Функция Расш1_РассчитатьСкидку(Параметры)
    Результат = ПродолжитьВызов(Параметры);
    // дополнительная логика
    Возврат Результат;
КонецФункции

Что умеют расширения в актуальных версиях платформы

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

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

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

Ограничения, которые сохраняются до сих пор

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

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

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

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

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

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

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

Нужно изменить форму, печатную форму или добавить проверку в типовой объектИспользуйте расширение — конфигурация останется на поддержке
Требуется собственный справочник, документ или регистр сведенийРасширение на платформе 8.3.11 и выше справится с задачей
Меняется логика проведения или регистры бухгалтерииРассмотрите доработку конфигурации с оценкой стоимости обновлений
Платформа ниже 8.3.6Расширения недоступны — обновите платформу или используйте внешние обработки

Как проверить версию платформы и применимость расширения

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

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

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

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

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

Подключено, ошибок применимости нет

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

Предупреждения о несовместимости с конфигурацией

Работа пользователей после подключения
Норма

Типовые функции и доработки работают штатно

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

Ошибки при открытии форм или проведении документов

Обновление конфигурации
Норма

Обновление проходит в штатном режиме, расширение контролируется

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

Обновление требует ручного слияния из-за снятых с поддержки объектов

Типичные ошибки при работе с расширениями

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

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

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

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

В какой версии 1С появились расширения конфигурации?

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

Можно ли использовать расширения, если конфигурация полностью на поддержке?

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

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

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

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

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

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

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

Работают ли расширения в старых конфигурациях на платформе 8.2?

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

Итог

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

Расширения появились в платформе 1С 8.3.6 (2014 год), а полноценным инструментом стали с версии 8.3.11 (2018 год). Они позволяют дорабатывать типовые конфигурации без снятия с поддержки, но требуют контроля применимости после каждого обновления и аккуратного использования замещающих методов.