Как правильно называть и проектировать расширения в 1С: стандарты и лучшие практики

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

Разработка с использованием расширений конфигурации в платформе 1С:Предприятие 8.3 стала стандартом де-факто для кастомизации типовых решений. Она позволяет сохранить конфигурацию поставщика на поддержке и упростить процесс последующих обновлений. Однако при активном внедрении расширений разработчики неизбежно сталкиваются с хаосом: как называть новые расширения, как именовать объекты внутри них и какую архитектуру выбрать — создать одно монолитное расширение или разделить доработки на десятки мелких?

В этой статье мы подробно разберем правила именования расширений, проанализируем стандарты фирмы «1С» и рассмотрим классическую дилемму архитектуры: «одно большое расширение против множества мелких».

Стандарты именования расширений и внутренних объектов

Давать расширениям имена вроде Расш1, НовоеРасширение или Исправления_Новое — это путь к путанице и ошибкам администрирования. При разработке профессиональных расширений важно придерживаться системного подхода. Для соблюдения правил оформления и именования можно использовать готовые шаблоны для применения стандартов и методик разработки 1С.

Рекомендуемый шаблон для имени расширения выглядит следующим образом:

[ПрефиксОрганизации]_[ФункциональноеНаправление]

Рассмотрим примеры удачных названий:

Помимо имени самого расширения, крайне важно соблюдать правила именования объектов внутри него. Согласно требованиям «1С:Совместимо» и стандартам разработки фирмы «1С», необходимо соблюдать следующие правила:

  1. Префиксирование метаданных: Все добавляемые в расширение собственные объекты (справочники, документы, регистры) должны содержать уникальный префикс расширения. Это исключает коллизии, если в будущем разработчики платформы или типовой конфигурации добавят объект с таким же именем. Например, вместо справочника УпаковкиТМЦ в расширении Логистика следует создать Лог_УпаковкиТМЦ.
  2. Префиксы для процедур и функций: При перехвате методов основной конфигурации или создании собственных процедур в модулях расширения обязательно добавляйте префикс в имя метода. Это особенно актуально при работе с аннотациями &Перед, &После и &Вместо.

Рассмотрим пример правильного перехвата процедуры с использованием префикса:


&Вместо("РассчитатьСкидкиКарты")
Процедура Лог_РассчитатьСкидкиКарты(ДокументСсылка, ПараметрыСкидок)
    // Выполняем предварительную подготовку данных
    Лог_ПодготовитьДанныеДляСкидок(ДокументСсылка);
    
    // Вызываем оригинальный метод конфигурации
    ПродолжитьВызов(ДокументСсылка, ПараметрыСкидок);
    
    // Выполняем пост-обработку результатов
    Лог_ЗаписатьЛогСкидок(ДокументСсылка);
КонецПроцедуры

Системное свойство платформы «Назначение»

Многие разработчики делят расширения по именам (например, добавляя в конце слова _Адаптация или _Исправление). Однако платформа 1С, начиная с версии 8.3.10, имеет встроенный механизм разделения расширений по типам через свойство «Назначение расширения». Всего существует три варианта назначения:

  1. Исправление (патч): Применяется платформой в самую первую очередь. Предназначено для оперативного исправления критических багов и ошибок релиза. Предполагается, что такие расширения носят временный характер и будут удалены при выходе следующего официального обновления.
  2. Адаптация: Применяется во вторую очередь. Предназначено для изменения логики существующих механизмов под бизнес-требования конкретного заказчика.
  3. Дополнение: Применяется последним. Используется для разработки нового, полностью независимого и автономного функционала (например, добавление новых подсистем, сервисов или отчетов).

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

Архитектурная дилемма: Одно большое расширение против множества мелких

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

Проанализируем обе концепции, их преимущества и недостатки.

Вариант 1. Монолитное расширение (Одно большое)

При таком подходе абсолютно все доработки конфигурации ведутся в рамках одного единственного расширения.

Преимущества монолита:

Недостатки монолита:

Вариант 2. Множество мелких расширений (Микромодули)

Каждая отдельная задача или исправление ошибки оформляется в виде обособленного расширения.

Преимущества модульного подхода:

Недостатки модульного подхода:

Оптимальный гибридный подход

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

  1. Расширение исправлений (Патчи): Отдельное расширение с назначением Исправление, куда помещаются только оперативные фиксы багов релизов от вендора. Оно регулярно очищается по мере выхода официальных обновлений конфигурации.
  2. Функциональные блоки (Адаптация): Создание расширений под крупные независимые бизнес-процессы. Например:
    • Организация_Логистика (доработки склада, доставки, транспортных накладных).
    • Организация_Маркетинг (интеграция с CRM, рассылки, скидочные системы).
    • Организация_ИнтеграцияСайт (обмен данными с интернет-магазином).
  3. Автономные сервисы (Дополнение): Полностью обособленные модули, не затрагивающие логику типовых документов и справочников. Это могут быть новые АРМ (автоматизированные рабочие места), специализированные отчеты или обработки.

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

← На главную