Аннотации, заимствование, безопасный режим. Как дорабатывать типовую, не снимая её с поддержки.
Ниже — 2 вопроса с разбором. Всего по этой теме
6 вопросов, и в тренажёре они задаются вперемешку
и без подсказок: там проверяется, что тема уложилась, а не что её
приятно читать.
Что означает аннотация &Вместо у процедуры в расширении?
Метод исходной конфигурации не выполняется, вместо него работает процедура расширения; оригинал вызывается через ПродолжитьВызов — верно
Процедура расширения выполняется первой, а затем управление всё равно передаётся исходному методу типовой конфигурации
Исходный метод выполняется, а процедура расширения запускается только если он завершился с ошибкой или вызвал исключение
Платформа сама выбирает, какую из двух процедур выполнить, исходя из режима запуска и прав текущего пользователя базы
&Вместо полностью подменяет метод — самая опасная из аннотаций. Обновилась типовая, а у вас лежит копия её старого кода, и об этом никто не сообщит. &Перед и &После безопаснее: они лишь добавляют своё, не отменяя чужого.
Чем аннотация &Перед отличается от &После?
Первая выполняется до исходного метода, вторая — после него; обе дополняют исходный код, а не отменяют его — верно
Первая работает на клиенте, а вторая на сервере: это указание места выполнения, а не порядка вызова
Первая применяется к процедурам, вторая — к функциям, потому что у функции есть возвращаемое значение
Первая срабатывает при записи объекта, вторая при его проведении — это привязка к разным событиям
&Перед удобна, чтобы подготовить или проверить данные до основного кода, &После — чтобы дописать своё по его итогам. Обе видят параметры исходного метода, поэтому через них можно влиять на результат, не подменяя метод целиком.
О чём ещё спрашивают по этой теме
Можно ли расширением добавить новый реквизит справочника типовой конфигурации?
Какие ограничения есть у расширений? (несколько ответов)