Для чего в расширениях нужен тип вызова "Вызывать вместо (с контролем)" и в чём его отличие от простого "Вызывать вместо"?
---
Возможность использования аннотации ИзменениеИКонтроль появилась начиная с версии платформы 8.3.15. В отличии от аннотаций &Перед, &После, &Вместо ​с помощью аннотации &ИзменениеИКонтроль ​Вы сможете делать точечные вставки в код типовой конфигурации. Основная проблема при изменении кода в больших процедурах и функциях с помощью расширений конфигурации — это постоянный контроль за постоянством этого кода. А в случае, если часть кода изменилась — необходимо сразу обновлять расширение. Использование аннотации &ИзменениеИКонтроль​ частично упрощает обновление расширений — теперь платформа будет контролировать неизменность кода в вынесенной в расширение процедуры.
---
Возможность использования аннотации ИзменениеИКонтроль появилась начиная с версии платформы 8.3.15. В отличии от аннотаций &Перед, &После, &Вместо ​с помощью аннотации &ИзменениеИКонтроль ​Вы сможете делать точечные вставки в код типовой конфигурации. Основная проблема при изменении кода в больших процедурах и функциях с помощью расширений конфигурации — это постоянный контроль за постоянством этого кода. А в случае, если часть кода изменилась — необходимо сразу обновлять расширение. Использование аннотации &ИзменениеИКонтроль​ частично упрощает обновление расширений — теперь платформа будет контролировать неизменность кода в вынесенной в расширение процедуры.
---
А можно поподробнее - что и как именно будет 1С контролировать?
---
в расширении в модуле если что-то меняете пишите #Вставка #КонецВставки. Идет сравнение текста из основной конфигурации и расширения, если они отличаются хотя-бы на один пробел, расширение работать не будет.
---
правильнее сказать не будет работать данная процедура (или весь модуль - здесь не уверен), вместо нее вызовется штатная, в целом расширение работать будет. Причем проверка выполняется только в момент вызова модуля.
---
Согласна
---
В сравнении участвует текст до #Вставка и после #КонецВставки?
---
Да
---
Я правильно понял, что в случае сравнения текста и его различие - расширение работать не будет? А сигнал какой-то есть, о том, что расширение игнорируется и используется основной код (в журнале регистрации там или еще где), или же все втихомолку происходит?
---
конфигурация - расширения конфигурации - на любом расширении ПКМ - проверка возможности применения всех расширений.

покажет что где не так если где что не так. надо не забывать нажимать после обновления.
---
Понял, спасибо
---
Всем доброго дня!

Сейчас решил изменить "Вместо" на "ИзменениеИКонтроль". При открытии формы, хотя к этой форме НИКАКОГО значения не имеет, вылетело сообщение об ошибке применения расширения. Пишет мол "Изменился текст". Блин, ну КОНЕЧНО изменился, я его сам поменял. Перегрузка никак не помогла. ХЗ как можно с этим работать ((((
P.S. Все делал строго по инструкции. Возврат на "Вместо" решил проблему
Спасибо подсказке ниже - ни одной пустой строки не должно быть вставлено вне блоков Вставка/КонецВставки и Удаление/КонецУдаления
Всё отработало!!!!!
---
Кстати не все знают что есть метод ПродолжитьВызов() из процедур и функций с аннотаций Вместо.
---
там надо писать вставка конецвставки и
#Удаление
#КонецУдаления

и если хотя бы строчечка пустая будет вставлена - тогда будет изменение и нельзя применять.
на этом и основано сравнение. что
ровновотэтоттекст
заменяется на
ровновоттоттекст
и ни шагу в сторону
---
Вот конкретно СПАСИБО! Точно, не должно быть НИ ЕДИНОЙ пустой строки вне Вставка/КонецВставки и Удаление/КонецУдаления
---
Точно, не должно быть НИ ЕДИНОЙ пустой строки вне Вставка/КонецВставки и Удаление/КонецУдаления Не совсем верно. Могут быть строки. Но это должны быть строки, присутствующие в основном модуле.
(В основном модуле тоже могут быть пустые строки или строки с пробелами/табуляторами).
---
Так-так... уточните плиз. "Пустые строки" - это я имел ввиду те, которые я сам мог бы добавить в расширении по сравнению с основным модулем. Так? Т.е. вне тегов (как бы для красоты свой код Вставка/КонецВставки я обрамил бы лишними строками.. именно по этому у меня и не отрабатывало
---
Да. Собственные пустые строки могут быть только в рамках #Вставка #КонецВставки.В остальной части модуля (включая секцию #Удаление #КонецУдаления) ничего изменяться не должно.
То есть типовые пустые строки должны остаться на месте.
---
уже понятно стало. Поэтому и написал, что ничего лишнего вне тегов добавлять нельзя
---
Я же уточнил - и внутри тега #Удаление. А не только вне.
И не только добавлять, но и удалять!
---
про Удаление так и есть. Проверил и это. Это и понятно, т.к. внутри тега Удаление стоит "типовой" код из основного модуля