К статье
Практический материал

Разработка и Конфигурация · 12 мин

Как правильно дорабатывать 1С и не сломать обновления

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

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

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

Ниже разобрано, как выбрать способ доработки под конкретную задачу, какие правила соблюдать при изменении типового кода, как тестировать результат и какие ошибки чаще всего приводят к потере поддержки.

Как выбрать способ доработки под задачу

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

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

Сравнение способов доработки

Дополнительные реквизиты и сведения

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

Внешние обработки и отчёты

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

Расширение конфигурации

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

Изменение типового кода

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

Расширения конфигурации: основной инструмент доработки

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

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

Храните расширение как файл .cfe в системе контроля версий (например, в Git) вместе с описанием изменений. Это позволит откатить доработку, понять, кто и зачем её внёс, и быстро перенести её на другую базу. Расширение, существующее только внутри одной рабочей базы, — скрытый риск: при аварии или переустановке его можно потерять.

Внешние обработки и дополнительные отчёты

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

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

Если без изменения типового кода не обойтись

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

Во-первых, снимайте с поддержки минимальный набор объектов — только те, что реально меняете. Во-вторых, вставки делайте точечными: не переписывайте типовую процедуру, а добавьте вызов своей экспортной процедуры из отдельного общего модуля. В-третьих, каждую вставку обрамляйте комментариями с меткой доработки, например // ДОРАБОТКА-НАЧАЛО (задача 123) и // ДОРАБОТКА-КОНЕЦ. Тогда при обновлении все изменения находятся поиском по метке, а конфликты при сравнении конфигураций видны сразу.

Свой код размещайте в отдельных общих модулях с префиксом компании (например, АБВ_ОбщегоНазначения). Это исключает пересечение имён с типовыми модулями при обновлении и упрощает аудит доработок. Обязательно ведите реестр изменений: объект, причина, автор, дата, ссылка на задачу. Через год никто не вспомнит, зачем добавлена строка в модуле проведения, а реестр ответит.

Типичные ошибки
01
Снятие всей конфигурации с поддержки ради одной правки — каждое обновление становится ручным и дорогим.
02
Переписывание типовых процедур вместо точечной вставки — при обновлении изменение теряется или конфликтует.
03
Отсутствие комментариев и реестра изменений — через несколько обновлений никто не понимает, что и зачем доработано.
04
Использование аннотации «Вместо» в расширении там, где хватило бы «После», — доработка ломается при любом изменении типовой логики.
05
Тестирование сразу на рабочей базе — ошибка в обработчике проведения останавливает учёт у всех пользователей.

Порядок безопасного внедрения доработки

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

Порядок внедрения доработки
  1. 1
    Сформулируйте требование: что должно измениться в поведении системы и как это проверить.
  2. 2
    Сделайте копию рабочей базы (для файловой — выгрузка в dt, для клиент-серверной — резервная копия СУБД).
  3. 3
    Реализуйте доработку выбранным механизмом: настройка, внешняя обработка, расширение или правка кода.
  4. 4
    Проверьте сценарий на копии: типовой случай, граничные значения, пустые реквизиты, права разных ролей.
  5. 5
    Проверьте смежные процессы: проведение, печать, обмены, отчёты, которые используют изменённые данные.
  6. 6
    Перенесите доработку в рабочую базу в нерабочее время, предупредив пользователей.
  7. 7
    Проконтролируйте работу в первые дни и зафиксируйте изменение в реестре доработок.

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

Как проверить, что доработка не сломала типовую логику

Проверка результата — не только «открылось и работает». Нужно убедиться, что не пострадали типовые механизмы, которые опираются на изменённые объекты. Для документов это проведение и отмена проведения, для справочников — обмены и регламентные задания, для регистров — отчёты и закрытие месяца.

Контрольные точки

Как проверить результат

Проведение документов
Норма

Документы проводятся и отменяют проведение без ошибок, движения корректны

Тревожный признак

Ошибки при проведении, дубли или отсутствие движений по регистрам

Работа под ролями пользователей
Норма

Функция доступна и работает под типовыми ролями без полных прав

Тревожный признак

Ошибки доступа, недоступные поля или кнопки у обычных пользователей

Обмены и интеграции
Норма

Синхронизации с другими системами проходят без ошибок

Тревожный признак

Новые реквизиты ломают формат обмена или зависают пакеты

Обновление конфигурации
Норма

Конфигурация обновляется штатно, расширение применяется без конфликтов

Тревожный признак

Сравнение-объединение показывает массовые конфликты в типовых модулях

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

Когда доработку лучше поручить специалисту

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

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

Перед любой доработкой полезно проверить свежую версию типовой конфигурации: нужная функция могла появиться штатно. Внедрение собственного решения там, где вендор уже добавил типовое, создаёт лишние конфликты при каждом обновлении.
ПЗ
Практическое замечание
Итог

Что важно запомнить

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

Частые вопросы о доработке 1С

Можно ли обновлять конфигурацию, если она доработана расширением?

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

Чем дополнительный реквизит отличается от реквизита, добавленного в конфигураторе?

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

Что делать, если после обновления доработка перестала работать?

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

Опасно ли подключать внешние обработки из интернета?

Да. Обработка выполняется с правами запустившего пользователя и может читать и изменять любые доступные ему данные. Проверяйте код обработки в конфигураторе на копии базы, обращайте внимание на обращения к внешним ресурсам и COM-объектам, и не давайте право подключения дополнительных обработок всем пользователям.

Нужно ли снимать конфигурацию с поддержки для работы расширения?

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

Как перенести доработку из тестовой базы в рабочую?

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