Доработка типовой 1С без снятия с поддержки через расширения

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

Оглавление

Почему расширение сохраняет поддержку

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

Когда расширение подходит, а когда лучше иначе

Расширение — лучший вариант, если нужно:

  • добавить кнопку/команду на форму и обработать действие;
  • встроить печатную форму, отчет, обработку в интерфейс;
  • аккуратно дополнить проведение/заполнение/проверки через точки расширения;
  • добавить подписки на события и бизнес-правила без правки типовых модулей.

Когда лучше другой инструмент:

  • нужны «поля для пользователя» без сложной логики → часто удобнее доп. реквизиты/сведения (если они есть в вашей конфигурации);
  • нужен разовый отчет «запустил и выгрузил» → проще внешний отчет/обработка;
  • планируется глубокая переделка ядра (много замен типовых алгоритмов, изменение ключевых объектов) → расширение возможно, но риски и стоимость сопровождения резко растут.

Пошагово: создать и подключить расширение (.cfe)

  1. Проверьте платформу
    Расширения работают на 1С:Предприятие 8.3 (на практике лучше использовать актуальную 8.3.x).

  2. Создайте расширение в Конфигураторе
    Откройте базу в Конфигураторе → Конфигурация → Расширения конфигурацииДобавить.
    Сразу задайте понятное имя (например, Доработка_СогласованиеСкидок) и ведите версию/описание изменений.

  3. Добавляйте изменения минимально возможным способом
    Приоритет обычно такой:

  • сначала — подписки на события, дополнительные команды, &Перед / &После;
  • затем — точечное переопределение небольших методов;
  • в конце — полная замена логики (&Вместо) только когда иначе нельзя.
  1. Подключите расширение в рабочей базе
    В типовых решениях расширение часто подключается из режима 1С:Предприятие (раздел администрирования, пункт «Расширения»): Добавить из файла → выбрать .cfe → перезапустить сеанс(ы).

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

Как писать доработки, чтобы обновления не ломали их

  1. Не копируйте большие куски типового кода
    Копия типового метода в расширении быстро устаревает: поставщик исправит типовой алгоритм, а ваш «клон» останется старым.

  2. Используйте &Перед / &После как основной подход
    Обычно устойчивее: дополнили данные до типовой логики или обработали результат после, не ломая основной сценарий.
    &Вместо применяйте только для маленьких, стабильных методов и с понятной ответственностью.

  3. Сужайте область вмешательства
    Лучше одна новая команда и один небольшой обработчик, чем замена большой процедуры «на всё».

  4. Делайте “рубильник” для отключения
    Заведите константу/функциональную опцию вроде ВключитьДоработку и оборачивайте спорные места проверкой — так вы быстро отключите доработку без аварий.

  5. Тестируйте до и после обновления
    Минимум: ваш сценарий + запись/проведение ключевых документов + проверка прав пользователя (не админа).

Частые ошибки

  • Расширение работает у разработчика, но не у пользователей — не настроены роли/права в расширении или команда не выведена в нужный интерфейс.
  • После обновления расширение конфликтует с формой/объектом — вы заимствовали нестабильный объект (форма часто меняется). Решение: меньше зависеть от конкретных форм, чаще использовать команды/события.
  • Всё сделано через &Вместо — обновляемость падает, растут трудозатраты на сопровождение. Старайтесь переходить на &Перед/&После.
  • Отключили безопасный режим “на всякий случай” — лишний риск. Включайте по умолчанию.

FAQ

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

Как обновлять расширение?
Подготовить новую версию .cfe → заменить/подключить её в базе → перезапустить сеансы → прогнать ключевые тесты.

Расширение точно не снимает конфигурацию с поддержки?
Если вы не правите типовую конфигурацию напрямую, а работаете через расширение, типовая остаётся на поддержке и обновляется штатно. Проблемы обычно возникают не из-за факта расширения, а из-за слишком «жёстких» переопределений и копирования типового кода.