Таким образом, мы заменили текст предупреждения на свой. При этом весь остальной код процедуры будет контролироваться платформой при обновлении конфигурации. И еще хотели бы отметить еще один момент. Если Вы получаете ошибку вида:
{Дополнение ОбщийМодуль.НоменклатураКлиент.Модуль(5,3)}: Ожидается оператор препроцессора
#<<?>>Удалить (Проверка: Тонкий клиент)
Это значит Вы используете неверные операторы препроцессора. В своих пресс-релизах 1С объявило об одних наименованиях, а сделали по другому). Ну ничего — мы быстро адаптируемся!
Спасибо!
Есть какое нибудь объяснение почему данная возможность применяется только в процедурах? Мне как раз необходимо доработать функцию, но механизм не работает, хотя на сайте ИТС пример демонстрируется как раз на функции
Добрый день, Евгений. Спасибо что обратили на это внимание. Пересмотрели возможность использования аннотации ИзменениеИКонтроль в платформе 8.3.16 — ограничений на использование аннотации в функциях нет. Из справки:
«Для процедур можно указать один из четырех вариантов аннотаций, а для функций — только &Вместо или &ИзменениеИКонтроль».
Спасибо. В расширении с назначением «Дополнение» будет работать?
Добрый день! Привязки функционала к назначению расширения нет. Подробно про назначение можно прочитать тут https://tnsoft.ru/blog/naznachenie-rasshireniya-konfiguratsii-pravilnyj-vybor-varianta/
Добрый день. Добавил следующий код в расширение
#Вставка
Запрос.УстановитьПараметр(«ОтражатьФактурнуюСтоимость», Ложь);
#КонецВставки
При проверке применимости возникает ошибка:
Ошибка применения модуля «Расширение1 Документ.ГТДИмпорт.МодульМенеджера». Текст модуля для метода «ПодготовитьПараметрыПроведения» изменился
Я только позаимствовал эту функцию и добавил пару строк. Что еще я делаю не так?
Добрый день, Николай. Проверьте внимательно текст доработанной процедуры (функции) — возможно, случайным образом Вы внесли другие изменения. Также возможен вариант некорректного переноса метода в расширение.
Ошибка в том, что препроцессоры должны быть без пробелов вначале, а у вас там видимо пробелы стоят
Добрый день
Что произойдёт, если при &ИзменениеИКонтроль изменить имя одного из входных параметров процедуры?
Его будет изменять при обновлении и надо будет обратно каждый раз править?
Можно ли в строке Процедура … () обрамить #Вставкой этот параметр? Или же это будет некорректно с точки зрения использования команд предпроцессора?
Добрый день!
Сомневаюсь что с помощью данной аннотации можно изменять имена параметров процедуры. Если у Вас есть другая информация — опишите в комментариях. Это будет полезно и другим программистам.
Юзаю пока старое доброе «&Вместо», с этим потому что возникают непонятные ошибки на ровном месте. Пока что разбираться нет времени, но при каждом обновлении релиза базы — расширения слетали в вот этих самых контролируемых процедурах
Хотя вроде как бы эти процедуры 1С — никами даже и не трогались. Приходилось заново переписывать код в расширение который в #Вставка и #Удаление, и теряется весь смысл этого механизма, с «Вместо» проблем никаких при этом
Поддерживаю. У меня тоже при каждом обновлении слетает этот функционал, хотя проверка применимости не ругается. Может есть какой то секрет, что бы все работало при обновлении?)
Приведенный пример не будет работать! Любой добавленный символ (в том числе пробелы и переводы строк) вне «тегов» приведет к тому, что расширение будет молча игнорироваться, а выполняться будет оригинальный код. Слово «Контроль» является большим преувеличением. Фактически о проблеме можно узнать только в конфигураторе, запустив проверку возможности применения. Иначе можно думать, что расширение работает (потому что ошибок нет), а оно не работает.
Добрый день!
Хочу предостеречь. На новой работе были проблемы с использованием расширения, где функции правили с аннотацией «ВМЕСТО». Сам понимаете, что последующие обновления текстовку функции(процедуры) могут изменить. В моём случает так и произошло. Но оценил масштаб и стал потихоньку изменять: вместо «ВМЕСТО» стал вставлять «ИзменениеИКонтроль». В течении 5 месяцев потихоньку почти всё вылизал и… в один прекрасный день ВСЁ ЭТО сломалось. Если бы за этот период в расширение не добавлялись новые объекты, то восстановить было бы просто. Сейчас восстановлению не подлежит именно расширение. При входе в форму просто вываливается из конфигуратора. Одно время можно было удалить форму, а вот добавить уже не получалось. Теперь не даёт и удалить.
Чуть позже нашёл в инете ссылки, где программеры столкнулись с подобным именно используя «ИзменениеИКонтроль». На данный момент перепробовал всё стандартное и не стандартное. Остаётся просить 1С с отсылкой CF.
Так что не рискуйте пока. У нас проблема остаётся на 18.11.2022
Ещё допишу с чем столкнулся на новой работе. Увидел, что формы в расширении старые, так что надо стандартно нажать кнопку «Обновить», но и тут засада. Форма-то обновляется, но вот стили нет и шрифты нет. И при проверке конфигурации расширения выводятся сообщения на:
— неразрешимые ссылки на цвета
— неразрешимые ссылки на шрифты
— неразрешимые ссылки на картинки
— неразрешимые ссылки на объекты метаданных
Хотя ведь формы-то обновились на вид корректно
Юрий, добрый день!
Спасибо что делитесь опытом! Он будет полезен другим программистам.
Сегодня добрался до этой статьи. А добрался поскольку тоже налетел на ошибку:
Ошибка применения модуля «Расширение1 Документ………». Текст модуля для метода «ПодготовитьПараметрыПроведения» изменился. Угрохал немало времени на поиск причины. Она оказалась тривиальной: в одном из комментариев (который был заимствован из оригинального кода) я просто добавил пару восклицательных знаков!
Таким образом даже комментарии, которые за пределами тегов #Вставка и #КонецВставки нельзя добавить/убавить ни одного символа (даже пробел).
К стати только в этой статье я наконец в явном виде увидел, что между документацией и реальностью есть расхождение — я про «#Вставка и #КонецВставки» и «#Вставить и #КонецВставить».
&ИзменениеИКонтроль — это г… полное, не тратье время, пользуйте &Вместо