Нужно ли использовать префиксы при разработке новой конфигурации на базе БСП?

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

Вопрос использования префиксов в именах объектов метаданных и переменных является одним из самых обсуждаемых среди разработчиков на платформе 1С:Предприятие 8. Особенно остро этот вопрос встает при создании новой конфигурации «с нуля» с использованием Библиотеки стандартных подсистем (БСП). С одной стороны, существуют официальные стандарты 1С, с другой — суровая практика сопровождения и требования к тиражным решениям. В рамках данной статьи мы подробно разберем все «за» и «против», проанализируем различные сценарии разработки и выработаем рекомендации, которые помогут вам принять верное архитектурное решение.

Зачем вообще нужны префиксы в метаданных?

Рассмотрим ситуацию: вы создаете объект Справочник.Пользователи или Справочник.Склады. Если ваша конфигурация использует БСП, то в ней уже есть стандартный справочник пользователей. Чтобы отличить «свое» от «чужого», разработчики часто прибегают к добавлению уникальной последовательности символов в начало имени объекта, например, миста_Склады. Проанализируем основные причины, по которым это делается:

  1. Уникальность имен при обновлении. Если вы добавили объект в конфигурацию без префикса, существует риск, что в новой версии БСП или платформы появится объект с точно таким же именем. Это приведет к конфликту при обновлении метаданных.
  2. Тиражирование и интеграция. Отраслевые решения часто разрабатываются как модули. Например, если ваша конфигурация позже будет встроена в 1С:ERP или 1С:Комплексная автоматизация, префиксы станут единственным спасением от сотен конфликтов имен.
  3. Визуальное разделение. В дереве конфигурации объекты с префиксами группируются вместе (если они начинаются на одни и те же буквы), что упрощает поиск кастомного функционала среди сотен объектов БСП.

Официальная позиция 1С и стандарты разработки

Выясним, что говорят официальные рекомендации. Согласно стандартам 1С, при разработке новой конфигурации префиксы использовать не рекомендуется. Основным инструментом логического разделения должны выступать подсистемы. Мы можем создать свою корневую подсистему (например, ПроектРазработка) и включить в нее все созданные нами объекты. Это позволяет делать отборы в дереве конфигурации и визуально отделять стандартные подсистемы БСП от проектных.

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

Сценарии, когда префиксы жизненно необходимы

Разберем ситуации, в которых отказ от префиксов может стать фатальной ошибкой для проекта:

Префиксы в программном коде: переменные и функции

Посмотрим на примеры использования префиксов в именах переменных. Существует так называемая «венгерская нотация», когда в начало имени добавляется тип объекта (например, тзРезультат для ТаблицыЗначений или мсПараметры для Массива).

Проанализируем пример некорректного (согласно стандартам 1С) именования:


Процедура РассчитатьСумму(тзДанные)
    Перем сзСписок;
    сзСписок = Новый СписокЗначений;
    // ... логика
КонецПроцедуры

Рассмотрим, почему это считается плохим стилем:

  1. Сложность рефакторинга. Если вы решите заменить Массив на СписокЗначений, вам придется переименовывать переменную по всему коду, иначе префикс будет вводить в заблуждение.
  2. Снижение читаемости. Код становится замусоренным техническими деталями, которые современные IDE (например, 1С:EDT) и так умеют подсказывать при наведении курсора.

Как правильно называть переменные: Имена должны отражать суть хранимых данных, а не их технический тип. Вместо тзСотрудники лучше использовать ТаблицаСотрудников или просто Сотрудники.

Как обозначать изменения в типовом коде?

Если вам все же приходится вносить изменения в стандартные модули БСП, важно делать это аккуратно. Разберем общепринятую практику комментирования:


// -> ФИО_Разработчика 25.05.2024
// Здесь мы переопределяем стандартное поведение БСП
Если МоеУсловие Тогда
    Результат = МояФункцияВычисления();
Иначе
// <- ФИО_Разработчика 25.05.2024
    Результат = СтандартноеЗначение; // Типовой код
// -> ФИО_Разработчика 25.05.2024
КонецЕсли;
// <- ФИО_Разработчика 25.05.2024

Такой подход позволяет следующему разработчику (или вам через год) быстро найти все кастомные вставки и понять, почему типовой алгоритм ведет себя иначе.

Рекомендации по выбору баланса

Выясним, как найти золотую середину между строгим следованием стандартам и практическим удобством:

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

Заключение

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

← На главную