Разработка и Конфигурация · 12 мин
Как внести изменения в конфигурацию 1С
Как внести изменения в конфигурацию 1С: включение возможности изменения, работа с расширениями, поддержка, обновление и типичные ошибки доработки.
Изменение конфигурации 1С — задача, с которой сталкивается почти каждая компания: типовой функционал редко закрывает все потребности учёта. Доработать можно форму документа, добавить реквизит, изменить алгоритм проведения или подключить внешнюю печатную форму. При этом есть принципиально разные способы внесения изменений, и выбор между ними влияет на возможность дальнейшего обновления конфигурации.
Главное правило: любые изменения вносятся только после создания резервной копии информационной базы. Ошибка в коде или структуре метаданных способна привести к невозможности запуска базы, потере данных при обновлении или некорректным расчётам. Поэтому работа начинается с копии, а сами доработки сначала проверяются на тестовой базе.
Ниже разобраны способы доработки, порядок включения возможности изменения конфигурации, работа с расширениями, обновление доработанной конфигурации и типичные ошибки.
Способы доработки: прямое изменение, расширение, внешние объекты
Существует три основных подхода к доработке 1С, и выбор между ними определяет дальнейшую «стоимость владения» конфигурацией. Прямое изменение конфигурации даёт максимальную гибкость, но снимает объекты с полной поддержки и усложняет обновления. Расширение конфигурации подключается поверх типовой и позволяет менять формы, добавлять реквизиты и переопределять обработчики без изменения самой конфигурации. Внешние обработки, отчёты и печатные формы вообще не затрагивают конфигурацию.
Для небольших доработок — дополнительная печатная форма, отчёт, обработка загрузки данных — правильный выбор почти всегда внешние объекты. Для добавления реквизита в документ или изменения логики формы — расширение. Прямое изменение конфигурации оправдано только тогда, когда задачу невозможно решить расширением: например, глубокая переработка механизмов проведения или изменение состава типовых ролей.
Сравнение способов доработки
Подходит для большинства доработок типовых решений. Не мешает обновлению. Ограничение: не все объекты и механизмы можно изменить через расширение.
Полный доступ к любым объектам. Минус: объект снимается с полной поддержки, обновления приходится накатывать с ручным сравнением и объединением.
Подключаются без изменения конфигурации, обновления не затрагиваются. Подходят только для отчётов, печатных форм и сервисных обработок.
Подготовка: резервная копия и тестовая база
Перед любыми изменениями создайте выгрузку информационной базы. В конфигураторе это делается через меню «Администрирование → Выгрузить информационную базу» — полученный файл с расширением .dt позволяет полностью восстановить базу. Для клиент-серверных баз дополнительно желательна копия средствами СУБД, поскольку выгрузка больших баз в .dt занимает много времени.
Второй обязательный шаг — тестовая база. Изменения сначала вносятся и проверяются на копии рабочей базы, и только после успешной проверки переносятся в рабочую среду. Прямая доработка «вживую» в рабочей базе — одна из самых частых причин аварийных ситуаций: ошибка в модуле проведения документа проявляется только когда пользователи начинают проводить документы, и к этому моменту некорректных данных уже может быть много.
Включение возможности изменения конфигурации
Типовые конфигурации поставляются в режиме «на поддержке» — по умолчанию объекты заблокированы от редактирования. Чтобы внести изменения напрямую, откройте конфигуратор, загрузите конфигурацию (Конфигурация → Открыть конфигурацию) и перейдите в меню «Конфигурация → Поддержка → Настройка поддержки». В открывшемся окне нажмите кнопку «Включить возможность изменения».
После этого для каждого объекта можно выбрать режим: «Объект поставщика не редактируется», «Объект поставщика редактируется с сохранением поддержки» или «Объект поставщика снят с поддержки». Рекомендуемый вариант — редактирование с сохранением поддержки: объект можно менять, но при обновлении конфигурации платформа покажет отличия и позволит объединить изменения. Полное снятие с поддержки лишает объект автоматического обновления.
Внесение изменений в объекты конфигурации
После включения возможности изменения объекты редактируются стандартно: двойной щелчок по объекту в дереве конфигурации открывает его свойства, формы и модули. Типовые сценарии доработки: добавление реквизита в документ или справочник, изменение формы объекта, правка программного кода в модуле объекта или общем модуле, добавление новой роли или подсистемы.
После внесения изменений конфигурацию нужно сохранить (Конфигурация → Сохранить конфигурацию) и обновить конфигурацию базы данных — клавиша F7 или «Конфигурация → Обновить конфигурацию базы данных». Если изменения затрагивают структуру данных (добавлены или изменены реквизиты, измерения, ресурсы), платформа выполнит реструктуризацию — покажет список изменений и попросит подтверждение. Внимательно читайте этот список: удаление реквизита означает безвозвратную потерю данных в нём.
Добавление реквизита в документ
Откройте документ в дереве конфигурации, перейдите на закладку «Данные» и добавьте новый реквизит с нужным типом. Затем откройте форму документа и перетащите реквизит из панели реквизитов на форму — иначе пользователи его не увидят. После обновления конфигурации базы данных реквизит станет доступен в режиме предприятия.
Изменение программного кода
Код правится в модулях объектов, модуле менеджера, общих модулях. Для изменения типовых процедур в общих модулях используйте аннотации &ИзменениеИКонтроль, &После, &Вместо — это механизм расширений, а в основной конфигурации при прямой правке рекомендуется выделять свои изменения комментариями с маркером, чтобы при обновлении быстро находить доработанные места.
- 1Создайте резервную копию базы (выгрузка .dt или копия средствами СУБД)
- 2Включите возможность изменения: Конфигурация → Поддержка → Настройка поддержки
- 3Внесите изменения в объекты конфигурации и сохраните конфигурацию
- 4Обновите конфигурацию базы данных (F7), проверьте список реструктуризации
- 5Протестируйте изменения в режиме предприятия на тестовой базе
- 6Перенесите доработки в рабочую базу в нерабочее время
Доработка через расширение конфигурации
Расширение создаётся в конфигураторе: «Конфигурация → Расширения конфигурации → Создать». В расширение добавляются заимствованные объекты из основной конфигурации — те, которые нужно изменить. Можно расширять формы (добавлять элементы, менять обработчики), добавлять собственные реквизиты, подсистемы, роли и переопределять методы модулей через аннотации.
Главное преимущество: расширение хранится отдельно, и типовая конфигурация остаётся на полной поддержке — обновления устанавливаются штатно. После обновления конфигурации нужно лишь проверить, что расширение по-прежнему применяется без ошибок: в списке расширений есть колонка контроля применимости. Если типовой механизм изменился и расширение конфликтует, его придётся скорректировать.
Ограничения расширений: нельзя менять состав планов обмена, некоторые системные механизмы, изменять типы реквизитов типовых объектов. Если задача упирается в эти ограничения, остаётся только прямое изменение конфигурации.
Даже если сегодня задача требует прямого изменения конфигурации, часть доработок часто можно вынести в расширение или внешние обработки. Чем меньше объектов изменено напрямую, тем дешевле каждое следующее обновление.
Обновление доработанной конфигурации
Обновление конфигурации с изменениями выполняется через «Конфигурация → Поддержка → Обновить конфигурацию». Если объекты редактировались с сохранением поддержки, платформа запустит сравнение и объединение: в окне сравнения видно, какие объекты изменил поставщик, какие изменены вами, а где изменения пересекаются. Для пересекающихся объектов потребуется ручное решение — взять версию поставщика, оставить свою или объединить вручную.
Типовая последовательность безопасного обновления: копия базы, обновление на тестовой базе с анализом сравнения, проверка работы ключевых сценариев (проведение документов, отчёты, обмены), затем обновление рабочей базы. Пропуск тестового этапа особенно опасен, если доработаны модули проведения или расчёта зарплаты — конфликт изменений там может дать некорректные цифры, а не явную ошибку.
Проверка результата и типичные проблемы
После внесения изменений проверьте конфигурацию встроенными средствами: «Конфигурация → Проверка конфигурации» с включёнными режимами проверки логической целостности и поиска некорректных ссылок. Затем в режиме предприятия пройдите основной сценарий, который затрагивает доработка: создайте документ, заполните новый реквизит, проведите, сформируйте связанный отчёт.
Если после обновления конфигурации базы данных база не запускается или выдаёт ошибки, восстановите её из резервной копии и разбирайте причину на тестовой копии. Типичные причины проблем: реквизит добавлен в объект, но не выведен на форму; изменён тип реквизита, и старые данные не преобразуются; в коде осталась ссылка на удалённый объект.
Как проверить результат
База открывается в режиме предприятия без ошибок
Ошибка при запуске или требование реструктуризации
Новый реквизит виден на форме, документ проводится, отчёт строится
Реквизита нет на форме, ошибки в модуле при проведении
Изменённые объекты в режиме «редактируется с сохранением поддержки»
Объекты полностью сняты с поддержки без необходимости
Частые вопросы
Что делать, если кнопка «Включить возможность изменения» недоступна?
Проверьте, что конфигурация открыта (Конфигурация → Открыть конфигурацию) и вы работаете под пользователем с правами администратора. Также возможность изменения может быть заблокирована настройкой поддержки поставщика — тогда в настройке поддержки сначала снимите запрет изменений для корневого объекта конфигурации.
Можно ли вернуть конфигурацию на полную поддержку после доработок?
Да, через «Конфигурация → Загрузить конфигурацию из файла» с файлом типовой конфигурации той же версии, либо через настройку поддержки с установкой режима полной поддержки. При этом все внесённые вами изменения будут потеряны, поэтому предварительно сохраните их в файл .cf или перенесите в расширение.
Чем расширение отличается от внешней обработки?
Внешняя обработка — отдельный файл, который запускается пользователем или подключается как печатная форма; она не меняет поведение типовых объектов. Расширение встраивается в конфигурацию и изменяет работу её форм, модулей и структуры данных, оставаясь при этом отдельным слоем, не мешающим обновлениям.
Что произойдёт с данными при удалении реквизита?
При обновлении конфигурации базы данных платформа выполнит реструктуризацию и удалит колонку из таблиц — данные, хранившиеся в реквизите, будут потеряны безвозвратно. Восстановить их можно только из резервной копии, поэтому список реструктуризации нужно читать до подтверждения.
Можно ли дорабатывать конфигурацию в файловой базе, в которой работают пользователи?
Обновление конфигурации базы данных требует монопольного доступа — все сеансы должны быть завершены. Редактировать объекты и сохранять конфигурацию можно и при работающих пользователях, но обновление (F7) выполняется только после завершения их сеансов, обычно в нерабочее время.
Как перенести доработки из тестовой базы в рабочую?
Если изменения вносились напрямую — через «Конфигурация → Сохранить конфигурацию в файл» и последующую загрузку в рабочую базу либо через сравнение и объединение с файлом .cf. Расширения переносятся проще: сохраните расширение в файл .cfe из списка расширений и загрузите его в рабочей базе.
Что важно запомнить
Любая доработка начинается с резервной копии и тестовой базы. Для типовых конфигураций сначала рассматривайте расширения и внешние обработки; прямое изменение — только с сохранением поддержки и с маркировкой своего кода. Обновление конфигурации базы данных выполняется в монопольном режиме, а список реструктуризации читается до подтверждения.