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