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