Разработка и Конфигурация · 12 мин
Назначения расширений 1С: в чём разница и какое выбрать
Разбираем три назначения расширений 1С: Исправление, Адаптация и Дополнение. Чем они отличаются, когда какое выбрать и как избежать ошибок при обновлении.
При создании расширения конфигурации в 1С платформа предлагает выбрать одно из трёх назначений: Исправление, Адаптация или Дополнение. Многие разработчики оставляют значение по умолчанию, не задумываясь, а зря: назначение определяет, как платформа будет применять расширение, какие объекты в нём допустимы и как поведёт себя система при обновлении основной конфигурации.
Назначение — это не просто ярлык для сортировки. Оно влияет на порядок подключения расширений, на контроль заимствованных объектов и на диагностику конфликтов. Неправильно выбранное назначение может привести к тому, что исправление «молча» перестанет работать после обновления, а доработка окажется заблокированной контролем платформы.
Ниже разберём, что означает каждое назначение, как они отличаются технически, какое выбрать под конкретную задачу и как проверить, что расширение работает именно так, как задумано.
Что такое назначение расширения и где оно задаётся
Назначение расширения — это свойство, которое указывается при создании расширения в конфигураторе. Оно хранится в самом расширении и сообщает платформе, какова роль этого расширения относительно основной конфигурации. Изменить назначение можно позже в свойствах расширения, но делать это стоит осознанно: смысл доработки и ожидания платформы должны совпадать.
Найти свойство просто: откройте расширение в конфигураторе, перейдите к корневому узлу дерева расширения и посмотрите палитру свойств — там будет поле «Назначение» с тремя вариантами. По умолчанию платформа обычно предлагает «Дополнение», что и становится причиной типовой ошибки: исправления и адаптации оформляются как дополнения.
Важно понимать: назначение не запрещает технически добавлять те или иные объекты — оно задаёт семантику и влияет на то, как платформа и фирменные инструменты (например, механизмы поставки исправлений) трактуют расширение. Поэтому совпадение назначения с реальным содержимым — вопрос сопровождаемости, а не только формальности.
Исправление: точечное устранение ошибок типовой конфигурации
Назначение «Исправление» предназначено для ситуаций, когда в типовой конфигурации обнаружена ошибка, а ждать официального обновления нельзя. Расширение-исправление изменяет поведение конкретного проблемного метода или объекта, чтобы система работала корректно уже сейчас.
Типичный сценарий: в типовом модуле есть ошибка в расчёте, из-за которой документ проводится с неверными итогами. Вы заимствуете процедуру в расширение, исправляете логику через аннотацию «ИзменениеИКонтроль» или «Вместо» и оперативно закрываете проблему. Когда выходит официальное обновление с исправлением, расширение отключают или удаляют.
Ключевая особенность исправлений — их временный характер. Именно поэтому назначение «Исправление» помогает при обновлении: администратор видит, что расширение нужно проверить и, скорее всего, отключить после установки патча. Если исправление оформлено как «Дополнение», оно может годами оставаться в базе и конфликтовать с уже исправленным типовым кодом.
Адаптация: изменение поведения типовых объектов под компанию
Назначение «Адаптация» применяется, когда типовая конфигурация в целом работает правильно, но отдельные механизмы нужно подстроить под процессы конкретной организации. Это самое частое назначение в реальных внедрениях: добавить проверку при проведении документа, изменить заполнение полей, скорректировать печатную форму, доработать права.
Отличие адаптации от исправления в мотивации: исправление устраняет дефект типового кода, а адаптация меняет осознанно корректное поведение, потому что бизнес-процесс компании отличается от заложенного в типовом решении. Адаптации, как правило, постоянные — они живут в базе столько, сколько существует потребность в изменённом поведении.
Для адаптаций рекомендуется использовать аннотацию «ИзменениеИКонтроль»: она заставляет платформу контролировать соответствие заимствованного метода типовому. Если после обновления типовой метод изменился, расширение сразу покажет конфликт — и вы сможете перенести свои доработки в новую версию кода, а не узнаете о проблеме от пользователей.
Дополнение: новые объекты и функции, которых нет в типовой
Назначение «Дополнение» используется, когда расширение добавляет в систему то, чего в типовой конфигурации нет в принципе: новые справочники, документы, регистры, отчёты, обработки, подсистемы, роли. Это «чистое» наращивание функциональности без изменения типовой логики.
Примеры: собственный отчёт для руководства, дополнительный регистр сведений для хранения настроек интеграции, обработка загрузки данных из внешней системы, новая печатная форма как отдельный объект. Такие расширения минимально зависят от обновлений типовой конфигурации, потому что не заимствуют её объекты или заимствуют их только для связи (например, добавляют измерение, ссылающееся на типовой справочник).
Именно «Дополнение» выбирается по умолчанию, и это логично для автономных доработок. Ошибка возникает, когда под видом дополнения оформляют изменение типовых методов: формально расширение работает, но при обновлении никто не ждёт от «дополнения» конфликтов — и проверку заимствованных методов пропускают.
Сравнение назначений
Временное устранение ошибки типовой конфигурации до выхода официального патча. Отключается после обновления.
Постоянное изменение поведения типовых объектов под процессы компании. Требует контроля при каждом обновлении.
Добавление новых объектов и функций, отсутствующих в типовой. Минимально зависит от обновлений.
Как выбрать назначение под конкретную задачу
Простой критерий выбора — ответить на два вопроса: «Меняю ли я поведение типового объекта?» и «Эта доработка временная или постоянная?». Если типовое поведение меняется временно из-за ошибки — это Исправление. Если меняется постоянно из-за специфики бизнеса — Адаптация. Если типовые объекты не меняются, а добавляются новые — Дополнение.
На практике удобно заводить несколько расширений с разными назначениями вместо одного большого. Например: одно расширение-исправление под срочный баг, одно расширение-адаптацию с доработками документов и одно расширение-дополнение с собственными отчётами. Так проще отключать части функциональности, диагностировать конфликты и передавать систему на сопровождение.
Как выбрать действие
Как проверить, что назначение и содержимое расширения совпадают
После выбора назначения полезно пройтись по содержимому расширения и убедиться, что оно соответствует заявленной роли. Откройте дерево расширения и посмотрите список заимствованных объектов и изменённых методов — именно они определяют реальный характер доработки.
Признак несоответствия: расширение с назначением «Дополнение» содержит десятки заимствованных методов типовых модулей с аннотациями «Вместо». Это на самом деле адаптация, и при обновлении она потребует полной ревизии. Обратная ситуация — «Исправление», которое живёт в базе годами и содержит новые справочники: его давно пора переоформить.
Как проверить результат
Совпадает с характером доработок внутри
«Дополнение», хотя изменены типовые методы
«ИзменениеИКонтроль» для адаптаций
Массовое использование «Вместо» без документирования
Каждое расширение решает свой класс задач
Одно расширение «про всё» с непонятным назначением
Исправления отключены, адаптации проверены на конфликты
Старые исправления продолжают перекрывать исправленный типовой код
Типичные ошибки при работе с назначениями
Самая распространённая ошибка — оставлять назначение по умолчанию и никогда его не пересматривать. Со временем в базе накапливаются расширения, назначение которых не говорит ничего о реальном содержимом, и любое обновление превращается в лотерею.
Вторая ошибка — забывать отключать исправления после установки официальных патчей. Расширение-исправление, перекрывающее метод «Вместо», продолжает подменять уже исправленный типовой код, и старая ошибка фактически возвращается.
Ограничения и границы безопасной самостоятельной работы
Расширения не всесильны: ряд объектов и свойств нельзя изменить через расширение независимо от его назначения. Ограничения касаются, в частности, изменения состава типов, некоторых свойств планов обмена, отдельных системных механизмов. Если доработка упирается в ограничение платформы, смена назначения её не решит — потребуется либо пересмотр архитектуры решения, либо изменение основной конфигурации со снятием объектов с поддержки.
Перед любыми экспериментами с расширениями в рабочей базе сделайте резервную копию или проверьте доработку на копии. Особенно это критично для исправлений и адаптаций, меняющих проведение документов и расчёт итогов: ошибка в таком коде может исказить учётные данные, и восстановление потребует перепроведения документов за весь затронутый период.
Что важно запомнить
Исправление — временный обход ошибки типовой конфигурации, Адаптация — постоянное изменение типового поведения, Дополнение — добавление новой функциональности. Назначение должно совпадать с реальным содержимым расширения: это определяет порядок контроля при обновлениях и сопровождаемость системы.
Частые вопросы о назначениях расширений 1С
Можно ли изменить назначение уже созданного расширения?
Да, назначение — это обычное свойство в палитре свойств корневого узла расширения, его можно поменять в любой момент. Однако менять его стоит только вместе с пересмотром содержимого: если вы превращаете «Дополнение» в «Адаптацию», убедитесь, что заимствованные методы оформлены через контролируемые аннотации, а не через «Вместо».
Влияет ли назначение на работу пользователей в режиме Предприятия?
Напрямую — нет: пользователи не видят назначение, и функциональность работает одинаково при любом значении. Влияние косвенное и проявляется на этапе сопровождения: от назначения зависит, как администратор и разработчик трактуют расширение при обновлении и диагностике проблем.
Сколько расширений с разными назначениями можно подключить к одной базе?
Жёсткого практического лимита для типовых сценариев нет — можно подключать несколько расширений каждого назначения. Разумный подход: отдельное расширение под каждый класс задач (исправления, адаптация документов, собственные отчёты), чтобы их можно было независимо отключать и обновлять.
Что произойдёт, если исправление не отключить после установки официального патча?
Если метод перекрыт аннотациями «Перед» или «После», ваш код просто продолжит выполняться — возможно, безвредно, а возможно, с дублированием логики. Если метод перекрыт «Вместо», расширение полностью заменит уже исправленный типовой код, и старая ошибка фактически вернётся. Поэтому исправления после обновления проверяют и отключают в первую очередь.
Нужно ли менять назначение, если временное исправление стало постоянным?
Да. Если официального исправления так и не вышло или вендор отказался исправлять поведение, а ваше расширение продолжает работать, его роль фактически изменилась: это уже адаптация. Смените назначение, переведите методы на «ИзменениеИКонтроль», где возможно, и включите расширение в стандартную процедуру проверки при обновлениях.
Может ли одно расширение-дополнение ссылаться на типовые объекты?
Может. Дополнение не запрещает заимствовать типовые объекты для связи — например, добавить реквизит, ссылающийся на типовой справочник, или использовать типовые перечисления в своём регистре. Главное, что вы не меняете поведение самих типовых объектов, а используете их как основу для новой функциональности.