Почему в типовых конфигурациях 1С встречаются названия процедур с префиксом «Новое»?

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия IT и автоматизация бизнеса
← На главную

При изучении кода типовых конфигураций, таких как БП 3.0, разработчики часто задаются вопросом: почему вместо чистого рефакторинга и замены старого метода на новый мы видим появление имен вроде НовоеОписаниеОбъектаУчета рядом с уже существующим ОписаниеОбъектаУчета? Давайте разберемся, почему так происходит и как к этому относиться.

Причины использования префиксов «Новое»

Рассмотрим подробнее логику разработчиков фирмы «1С». Основная причина кроется в обеспечении обратной совместимости. Крупные конфигурации содержат тысячи внешних обработок, доработок и интеграционных решений, написанных партнерами и пользователями. Если разработчик просто переименует или изменит сигнатуру существующей процедуры, это неизбежно приведет к ошибкам в стороннем коде.

Использование параллельного метода — это попытка решить задачу «малой кровью»:

  1. Вводится новая процедура с исправленной логикой или новыми параметрами.
  2. В течение некоторого периода (релизного цикла) в конфигурации сосуществуют оба метода.
  3. Старый метод помечается как deprecated (устаревший), чтобы в будущем его можно было безопасно удалить из состава метаданных.

Альтернативные подходы к версионированию

Проанализируем ситуацию: всегда ли префикс «Новое» — это «плохой код»? Конечно, в идеальном мире чистого программирования предпочтительнее использовать другие подходы:

Тем не менее, в условиях жестких сроков разработки и необходимости поддержки гигантской кодовой базы, префикс «Новое» становится временным «техническим долгом», который позволяет обновлять функционал подсистемы ЭДО без поломки существующих клиентских решений.

Актуальные проблемы подсистемы ЭДО в релизе 3.0.93.20

Помимо вопросов именования, важно учитывать функциональные изменения, которые привносят подобные обновления. При работе с обновленным модулем ИнтеграцияЭДО мы столкнулись с рядом ограничений, которые важно учитывать при доработках:

  1. Работа с закрытым периодом: Существуют ограничения на отправку документов, если период закрыт, что ранее не вызывало таких сложностей.
  2. Управление отправкой: Отсутствует возможность массовой отмены отправки документов определенных типов (например, актов сверки) по всем контрагентам сразу.
  3. Права доступа: Изменилась модель доступа — теперь для выполнения операций с документами, которые задействованы в ЭДО, требуются специфические роли. Если у пользователя недостаточно прав, документ просто не даст себя записать.
  4. Отображение в архиве: Наблюдаются проблемы с визуализацией статусов (даты отправки и получения остаются пустыми), что затрудняет контроль за документооборотом в интерфейсе.

Как нам работать с этим кодом?

Посмотрим на пример того, как обычно происходит переход:


// Старый метод (подлежит удалению в будущих релизах)
Процедура ОписаниеОбъектаУчета(Параметры)
    // ... устаревшая логика
КонецПроцедуры

// Новый метод, используемый в текущем релизе
Процедура НовоеОписаниеОбъектаУчета(Параметры, НовыеОпции)
    // ... исправленная и расширенная логика
КонецПроцедуры

Наш совет: если вы встретили процедуру с префиксом «Новое», всегда проверяйте комментарии в коде. Часто разработчики оставляют подсказки о том, какой метод использовать для новых разработок, а какой — только для поддержки старого функционала. Не спешите использовать «Новый» метод в своих старых модулях, пока не будете уверены, что сигнатура метода окончательно утверждена и не будет изменена в следующем релизе.

Работая с типовыми решениями 1С, помните: чистота кода — это прекрасно, но стабильность работы тысяч пользователей для фирмы-разработчика всегда стоит на первом месте. Мы рекомендуем следить за обновлениями документации БП и всегда тестировать работу подсистемы ЭДО после каждого обновления конфигурации.

← На главную