Изменение конфигурации 1С в Конфигураторе: все способы
Содержание
Конфигурацию правят в Конфигураторе: Конфигурация → Открыть конфигурацию. Типовая база по умолчанию стоит на поддержке — дерево объектов закрыто на «замок», и прежде чем менять, поддержку нужно ослабить: Конфигурация → Поддержка → Настройка поддержки → Включить возможность изменения. После правок структуру базы применяют клавишей F7 (Обновить конфигурацию базы данных).
Дальше — что именно можно менять, чем правка типовой отличается от правки собственной разработки и как не потерять свои доработки при очередном обновлении. Разберём четыре инструмента: прямое редактирование объектов, правку модулей, объединение конфигураций и расширения.
Что сделать до первой правки
Любое изменение конфигурации обратимо ровно до момента, пока у вас есть копия исходного состояния. Поэтому порядок один:
- Выгрузите базу:
Администрирование → Выгрузить информационную базу(файл.dt). Это полная копия данных и конфигурации. - Отдельно сохраните саму конфигурацию:
Конфигурация → Сохранить конфигурацию в файл(файл.cf). К ней можно будет вернуться, не трогая данные. - Запомните текущий релиз типовой — он виден в
Справка → О программев режиме 1С:Предприятие. Понадобится, если захотите сравнить с эталоном.
Без свежей выгрузки .dt к правкам не приступайте. Откат «по памяти» в конфигурации объёмом в тысячи объектов невозможен.
Отдельно решите, где вы правите. Эксперименты ведут на копии рабочей базы, а не на той, в которой сейчас работают бухгалтеры. Перенести готовые изменения в рабочую базу можно будет файлом конфигурации.
Чем можно изменить конфигурацию: четыре способа
У задачи «поменять конфигурацию » нет одного решения — выбор зависит от того, своя это разработка или типовая и насколько глубоко нужно вмешаться.
| Способ | Когда подходит | Что с поддержкой |
|---|---|---|
| Прямое редактирование объектов | Своя конфигурация или типовая, снятая с поддержки | Поддержка теряется полностью или частично |
| Правка модулей (код) | Нужно поменять поведение, не трогая структуру | Объект снимается с поддержки |
| Объединение с конфигурацией из файла | Перенос доработок между базами, обновление | Поддержка сохраняется при аккуратных правилах |
Расширение конфигурации (.cfe) | Доработка типовой без снятия с поддержки | Поддержка не нарушается |
Общее правило: чем меньше вы трогаете типовую напрямую, тем дешевле будущие обновления. Если доработку можно вынести в расширение — выносите. Прямое редактирование оставляйте для случаев, когда расширение технически не справляется.
Как отредактировать объект конфигурации: пошагово
Возьмём типовой сценарий — добавить реквизит в справочник или документ.
- Откройте дерево:
Конфигурация → Открыть конфигурацию. Слева появится дерево объектов. - Если база на поддержке, снимите замок:
Конфигурация → Поддержка → Настройка поддержки → Включить возможность изменения. Платформа предупредит, что объекты перейдут в режим редактирования — подтвердите. - Для нужного объекта задайте правило поддержки. В окне настройки поддержки у каждого объекта есть три варианта:
объект поставщика не редактируется,редактируется с сохранением поддержки,редактируется с полным изменением. Для добавления своего реквизита достаточно с сохранением поддержки — так объект продолжит обновляться вендором. - Найдите объект в дереве, раскройте ветку
Реквизиты, через контекстное меню выберитеДобавить. - В палитре свойств справа задайте имя, синоним и тип значения. Имя — латиницей или по правилам 1С, синоним — то, что увидит пользователь.
- При необходимости выведите реквизит на форму: откройте нужную форму объекта, перетащите реквизит из списка в дерево элементов формы.
- Примените изменения: F7 (
Обновить конфигурацию базы данных).
Шаг 7 меняет структуру таблиц СУБД. Для этого платформе нужен монопольный доступ к базе. Если в базе работают пользователи, обновление структуры прервёт их сеансы. Делайте это в нерабочее время и предупредите коллег заранее.
Правки, которые не затрагивают структуру таблиц (код модулей, настройка форм без новых реквизитов), применяются динамически — платформа предложит обновить конфигурацию без выгонки пользователей. Структурные же изменения (новый реквизит, новый справочник, смена типа) требуют монопольного режима.
Правка модулей и программного кода
Поведение конфигурации — в модулях. Их несколько видов, и путать их не стоит:
- Модуль объекта — логика конкретного справочника или документа (например, обработчик
ПриЗаписи). - Модуль формы — события формы и её элементов (
ПриОткрытии, обработчики нажатий). - Общие модули — переиспользуемый код; вызывается из разных мест.
- Модуль приложения и модуль сеанса — запуск и завершение системы.
Чтобы открыть код: найдите объект в дереве, в контекстном меню выберите Открыть модуль (или дважды щёлкните по ветке модуля). Редактор подсвечивает синтаксис и подставляет имена методов.
Несколько практических моментов:
- После правки кода запустите
Конфигурация → Проверка конфигурации(илиСинтаксический контрольв меню модуля) — платформа найдёт опечатки в именах методов до запуска. - Правку кода типовой безопаснее выносить в расширение (см. ниже), а не менять модуль напрямую: иначе при обновлении объект придётся сливать вручную.
- Обход коллекции, из которой вы удаляете элементы, ведите с конца, иначе пропустите элементы:
Для Сч = 1 По Коллекция.Количество() Цикл
Элемент = Коллекция[Коллекция.Количество() - Сч];
// обработка Элемент
КонецЦикла;
Число со строкой не склеивайте напрямую — используйте СтрШаблон или Формат. Например: СтрШаблон("Проведено %1 строк", Формат(Счётчик, "ЧГ=0")).
Изменения в модулях применяются динамическим обновлением — выгонять пользователей не нужно, если вы не меняли при этом структуру.
Как сохранить доработки при обновлении типовой
Главная боль правки типовой: вышел новый релиз — а в нём ваши изменения затёрты. Чтобы этого не случилось, конфигурацию не заменяют, а объединяют.
Два механизма:
1. Штатное обновление типовой. Конфигурация → Поддержка → Обновить конфигурацию. Платформа подтягивает поставку нового релиза (.cfu или .cf) и показывает дерево отличий. Для объектов, которые вы правили «с сохранением поддержки», действует правило: типовые изменения берутся из поставки, ваши — остаются. Объекты «с полным изменением» вендор уже не трогает — их обновляете сами.
2. Ручное объединение. Конфигурация → Сравнить, объединить с конфигурацией из файла. Выбираете файл .cf (например, выгруженный из другой базы), платформа строит дерево различий. По каждому объекту вы задаёте, откуда брать значение — из основной конфигурации или из файла. Этим же способом переносят доработку из тестовой базы в рабочую.
Порядок при объединении:
- Откройте окно сравнения, укажите файл конфигурации.
- Снимите флажки с объектов, которые переносить не нужно.
- Для спорных объектов откройте режим подробного сравнения — он показывает отличия построчно.
- Выберите приоритет:
Взять из файлаилиОставить из основной. - Нажмите
Выполнитьи затем F7.
После объединения всегда проверяйте конфигурацию (Конфигурация → Проверка конфигурации): объединение может оставить ссылки на объекты, которых в одной из конфигураций нет.
Расширения: как доработать типовую, не снимая с поддержки
Расширения конфигурации
(появились в платформе 8.3.6) — это способ добавить свою логику, формы и реквизиты, не трогая основную конфигурацию. Типовая остаётся на поддержке и обновляется штатно, а ваши доработки живут отдельным файлом .cfe.
Что это даёт:
- 📦 Доработка не мешает обновлению типовой.
- 🔁 Расширение можно включить или отключить, не перестраивая основную конфигурацию.
- 🧩 Один и тот же
.cfeпереносится между базами одной конфигурации.
Как создать и подключить:
Конфигурация → Расширения конфигурации— откроется список расширений.- Кнопкой
Добавитьсоздайте новое расширение, задайте имя и префикс (префикс отличает ваши объекты от типовых). - Откройте расширение как обычную конфигурацию и добавьте в него нужные объекты: заимствуйте типовой объект (
Добавить в расширение) или создавайте собственный. - Правьте код, формы, печатные макеты внутри расширения.
- Загрузите готовое расширение в базу: в том же окне —
Добавить → Загрузить из файла(для готового.cfe). - Примените: F7 (
Обновить конфигурацию базы данных). Загрузка.cfeи обновление конфигурации базы — два отдельных шага: без F7 расширение не заработает.
Не всё решается расширением: глубокая перестройка структуры типовых объектов по-прежнему требует прямого редактирования. Но для печатных форм, дополнительных реквизитов, отчётов и правки отдельных процедур расширение — предпочтительный путь.
Частые ошибки при изменении конфигурации
- Правят боевую базу напрямую. Эксперименты — только на копии. В рабочую базу переносят готовый, проверенный результат.
- Снимают с поддержки всё подряд. Чем больше объектов «с полным изменением», тем дороже каждое обновление. Снимайте с поддержки точечно.
- Забывают F7. Изменения в дереве есть, а в базе их нет — потому что структура не обновлена. Любая правка заканчивается обновлением конфигурации базы данных.
- Запускают структурное обновление в рабочие часы. Монопольный доступ оборвёт сеансы пользователей. Планируйте на вечер или выходной.
- Не делают проверку конфигурации. Синтаксическая ошибка или битая ссылка проявится у пользователя, а не у вас.
Проверка конфигурацииловит это заранее. - Путают модуль объекта и модуль формы. Обработчик, повешенный не на тот модуль, просто не сработает.
Можно ли изменить конфигурацию без снятия с поддержки?
.cfe. Прямое редактирование объекта без ослабления поддержки невозможно.Чем отличается «обновить конфигурацию» от «обновить конфигурацию базы данных»?
Поддержка → Обновить конфигурацию) подтягивает новый релиз от вендора и объединяет его с вашей. Второе (F7) применяет накопленные изменения к структуре таблиц базы. Это разные операции: обновили релиз — всё равно нужно нажать F7.Почему после правки кода изменения не видны пользователю?
Нужен ли монопольный доступ для правки модулей?
Как вернуть конфигурацию в исходное состояние?
.cf до правок — загрузите его: Конфигурация → Загрузить конфигурацию из файла, затем F7. Если нет — восстановите базу из выгрузки .dt.