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

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

Как внести изменения в конфигурацию 1С

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

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

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

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

Способы доработки: прямое изменение, расширение, внешние объекты

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

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

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

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

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

Прямое изменение конфигурации

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

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

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

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

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

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

Включение возможности изменения конфигурации

Типовые конфигурации поставляются в режиме «на поддержке» — по умолчанию объекты заблокированы от редактирования. Чтобы внести изменения напрямую, откройте конфигуратор, загрузите конфигурацию (Конфигурация → Открыть конфигурацию) и перейдите в меню «Конфигурация → Поддержка → Настройка поддержки». В открывшемся окне нажмите кнопку «Включить возможность изменения».

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

Внесение изменений в объекты конфигурации

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

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

Добавление реквизита в документ

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

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

Код правится в модулях объектов, модуле менеджера, общих модулях. Для изменения типовых процедур в общих модулях используйте аннотации &ИзменениеИКонтроль, &После, &Вместо — это механизм расширений, а в основной конфигурации при прямой правке рекомендуется выделять свои изменения комментариями с маркером, чтобы при обновлении быстро находить доработанные места.

Порядок внесения изменения
  1. 1
    Создайте резервную копию базы (выгрузка .dt или копия средствами СУБД)
  2. 2
    Включите возможность изменения: Конфигурация → Поддержка → Настройка поддержки
  3. 3
    Внесите изменения в объекты конфигурации и сохраните конфигурацию
  4. 4
    Обновите конфигурацию базы данных (F7), проверьте список реструктуризации
  5. 5
    Протестируйте изменения в режиме предприятия на тестовой базе
  6. 6
    Перенесите доработки в рабочую базу в нерабочее время

Доработка через расширение конфигурации

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

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

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

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

Обновление доработанной конфигурации

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

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

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

Проверка результата и типичные проблемы

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

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

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

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

Запуск базы после обновления
Норма

База открывается в режиме предприятия без ошибок

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

Ошибка при запуске или требование реструктуризации

Работа доработанного объекта
Норма

Новый реквизит виден на форме, документ проводится, отчёт строится

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

Реквизита нет на форме, ошибки в модуле при проведении

Статус поддержки
Норма

Изменённые объекты в режиме «редактируется с сохранением поддержки»

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

Объекты полностью сняты с поддержки без необходимости

Частые вопросы

Что делать, если кнопка «Включить возможность изменения» недоступна?

Проверьте, что конфигурация открыта (Конфигурация → Открыть конфигурацию) и вы работаете под пользователем с правами администратора. Также возможность изменения может быть заблокирована настройкой поддержки поставщика — тогда в настройке поддержки сначала снимите запрет изменений для корневого объекта конфигурации.

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

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

Чем расширение отличается от внешней обработки?

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

Что произойдёт с данными при удалении реквизита?

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

Можно ли дорабатывать конфигурацию в файловой базе, в которой работают пользователи?

Обновление конфигурации базы данных требует монопольного доступа — все сеансы должны быть завершены. Редактировать объекты и сохранять конфигурацию можно и при работающих пользователях, но обновление (F7) выполняется только после завершения их сеансов, обычно в нерабочее время.

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

Если изменения вносились напрямую — через «Конфигурация → Сохранить конфигурацию в файл» и последующую загрузку в рабочую базу либо через сравнение и объединение с файлом .cf. Расширения переносятся проще: сохраните расширение в файл .cfe из списка расширений и загрузите его в рабочей базе.

Итог

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

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