Доработка типовой 1С без снятия с поддержки через расширения
Сделать доработку в 1С и не снимать конфигурацию с поддержки проще всего через расширение конфигурации: вы добавляете формы, команды и код «поверх типовой», а обновления поставщика ставятся как обычно.
Оглавление
Почему расширение сохраняет поддержку
«Снять с поддержки» в бытовом смысле — это начать менять типовые объекты напрямую, из‑за чего при каждом обновлении появляются конфликты и ручное объединение. Расширение хранит изменения отдельно: типовая конфигурация обновляется «как есть», а ваш слой подключается после обновления.
Когда расширение подходит, а когда лучше иначе
Расширение — лучший вариант, если нужно:
- добавить кнопку/команду на форму и обработать действие;
- встроить печатную форму, отчет, обработку в интерфейс;
- аккуратно дополнить проведение/заполнение/проверки через точки расширения;
- добавить подписки на события и бизнес-правила без правки типовых модулей.
Когда лучше другой инструмент:
- нужны «поля для пользователя» без сложной логики → часто удобнее доп. реквизиты/сведения (если они есть в вашей конфигурации);
- нужен разовый отчет «запустил и выгрузил» → проще внешний отчет/обработка;
- планируется глубокая переделка ядра (много замен типовых алгоритмов, изменение ключевых объектов) → расширение возможно, но риски и стоимость сопровождения резко растут.
Пошагово: создать и подключить расширение (.cfe)
-
Проверьте платформу
Расширения работают на 1С:Предприятие 8.3 (на практике лучше использовать актуальную 8.3.x). -
Создайте расширение в Конфигураторе
Откройте базу в Конфигураторе → Конфигурация → Расширения конфигурации → Добавить.
Сразу задайте понятное имя (например,Доработка_СогласованиеСкидок) и ведите версию/описание изменений. -
Добавляйте изменения минимально возможным способом
Приоритет обычно такой:
- сначала — подписки на события, дополнительные команды,
&Перед/&После; - затем — точечное переопределение небольших методов;
- в конце — полная замена логики (
&Вместо) только когда иначе нельзя.
- Подключите расширение в рабочей базе
В типовых решениях расширение часто подключается из режима 1С:Предприятие (раздел администрирования, пункт «Расширения»): Добавить из файла → выбрать.cfe→ перезапустить сеанс(ы).
Опция «Безопасный режим» ограничивает потенциально опасные действия расширения (работа с файлами/внешними ресурсами). Отключайте её только когда точно понимаете, зачем это нужно.
Как писать доработки, чтобы обновления не ломали их
-
Не копируйте большие куски типового кода
Копия типового метода в расширении быстро устаревает: поставщик исправит типовой алгоритм, а ваш «клон» останется старым. -
Используйте
&Перед/&Послекак основной подход
Обычно устойчивее: дополнили данные до типовой логики или обработали результат после, не ломая основной сценарий.
&Вместоприменяйте только для маленьких, стабильных методов и с понятной ответственностью. -
Сужайте область вмешательства
Лучше одна новая команда и один небольшой обработчик, чем замена большой процедуры «на всё». -
Делайте “рубильник” для отключения
Заведите константу/функциональную опцию вродеВключитьДоработкуи оборачивайте спорные места проверкой — так вы быстро отключите доработку без аварий. -
Тестируйте до и после обновления
Минимум: ваш сценарий + запись/проведение ключевых документов + проверка прав пользователя (не админа).
Частые ошибки
- Расширение работает у разработчика, но не у пользователей — не настроены роли/права в расширении или команда не выведена в нужный интерфейс.
- После обновления расширение конфликтует с формой/объектом — вы заимствовали нестабильный объект (форма часто меняется). Решение: меньше зависеть от конкретных форм, чаще использовать команды/события.
- Всё сделано через
&Вместо— обновляемость падает, растут трудозатраты на сопровождение. Старайтесь переходить на&Перед/&После. - Отключили безопасный режим “на всякий случай” — лишний риск. Включайте по умолчанию.
FAQ
Можно ли подключить несколько расширений?
Да, но договоритесь о правилах: именование, зоны ответственности, кто что переопределяет. Обычно удобнее несколько небольших расширений по задачам, чем одно большое.
Как обновлять расширение?
Подготовить новую версию .cfe → заменить/подключить её в базе → перезапустить сеансы → прогнать ключевые тесты.
Расширение точно не снимает конфигурацию с поддержки?
Если вы не правите типовую конфигурацию напрямую, а работаете через расширение, типовая остаётся на поддержке и обновляется штатно. Проблемы обычно возникают не из-за факта расширения, а из-за слишком «жёстких» переопределений и копирования типового кода.