1С 8.3 Аналог функций &Вместо &ИзменениеИКонтроль - Программист 1С Минск. Автоматизация бизнеса.

Перейти к контенту

1С 8.3 Аналог функций &Вместо &ИзменениеИКонтроль

Данные > Примеры кода 1С > 1С 8.3 Расширения
Перейти в раздел примеры кода 1С 8.3:
Никаких конструкций #Вставить, #КонецВставить, #Удалить и #КонецУдалить, упомянутых на 1c.ru, разумеется, не существует. Вместо них платформа понимает: #Вставка, #КонецВставки, #Удаление и #КонецУдаления. Это настолько очевидно, что даже щепетильная 1С считает избыточным грузить посетителей своего сайта такими детальными подробностями. Если вы начнете использовать &ИзменениеИКонтроль, то придется вручную проверять возможность применения расширений. Командой "Проверка возможности применения" в конфигураторе. Без этого вы можете не узнать, что код оригинальной процедуры изменился (например, после обновления), и программа невозмутимо игнорирует непонятный теперь аналог в расширении, не отвлекая пользователей от работы занудными предупреждениями. Вы будете думать, что расширение работает, а оно молча передаст свои обязанности типовым процедурам и функциям. Авторство: infostart.ru/1c/articles/1454444/
В общем модуле можно определить функцию, выполняющуюся &НаСервере:
Функция СравнениеСВерсиейКонфигурации(МестоВызова, ВерсияМодуля, ВызыватьИсключение=Истина) Экспорт
   ВерсияКонфигурации = Метаданные.Версия;
   Если ВерсияМодуля <> ВерсияКонфигурации Тогда
       Если ВызыватьИсключение Тогда
           ВызватьИсключение "Версия конфигурации (" + ВерсияКонфигурации + ") отличается от версии модуля (" + ВерсияМодуля + ").
          |" + МестоВызова;
       КонецЕсли;

       Возврат Ложь;
   КонецЕсли;

   Возврат Истина;
КонецФункции
А в расширениях первой строчкой в заменяющих процедурах и функциях использовать конструкцию типа:
ОбщийМодульСПроверкой.СравнениеСВерсиейКонфигурации("Текст, помогающий найти проблему", "циферки.версии.с.точками");
Пример:
&Вместо(ЗаменяемаяПроцедура)
Процедура Расш_ЗаменяемаяПроцедура()
   // Такие сигнализирующие ловушки можно расставить в критически важных местах расширения.
   // И вписывать в них актуальный номер релиза вторым параметром каждый раз после обновления.
   // Если где-то забыть это сделать, программа выдаст ошибку, когда попытается выполнить данные инструкции.
   // Задав по-человечески МестоВызова, легко найдете проблемное место. Короче, после обновления игнорировать
   // проверку замененных в расширении функций станет заметно труднее. В худшем случае о забытой процедуре вы узнаете от пользователя,
   // но сразу! А это лучше, чем узнать об ошибке из отчетов за полугодие.

   ОбщийМодульСПроверкой.СравнениеСВерсиейКонфигурации("Справоник.Номенклатура.МодульМенеджера.ЗаменяемаяПроцедура", "3.1.14.500");

КонецПроцедуры
0
комментарии
____________________
Copyright©, «Программист 1С в г.Минске», 07.06.2021
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник
Яндекс.Метрика
Защищенное соединение ssl
visa
mastercard
Maestro
Яндекс деньги
Назад к содержимому