Изменение конфигурации 1С в Конфигураторе: все способы

· 8 мин

Содержание

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

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

Что сделать до первой правки

Любое изменение конфигурации обратимо ровно до момента, пока у вас есть копия исходного состояния. Поэтому порядок один:

  1. Выгрузите базу: Администрирование → Выгрузить информационную базу (файл .dt). Это полная копия данных и конфигурации.
  2. Отдельно сохраните саму конфигурацию: Конфигурация → Сохранить конфигурацию в файл (файл .cf). К ней можно будет вернуться, не трогая данные.
  3. Запомните текущий релиз типовой — он виден в Справка → О программе в режиме 1С:Предприятие. Понадобится, если захотите сравнить с эталоном.

Без свежей выгрузки .dt к правкам не приступайте. Откат «по памяти» в конфигурации объёмом в тысячи объектов невозможен.

Перед изменением конфигурации
Выполнено: 0 / 5

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

Чем можно изменить конфигурацию: четыре способа

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

СпособКогда подходитЧто с поддержкой
Прямое редактирование объектовСвоя конфигурация или типовая, снятая с поддержкиПоддержка теряется полностью или частично
Правка модулей (код)Нужно поменять поведение, не трогая структуруОбъект снимается с поддержки
Объединение с конфигурацией из файлаПеренос доработок между базами, обновлениеПоддержка сохраняется при аккуратных правилах
Расширение конфигурации (.cfe)Доработка типовой без снятия с поддержкиПоддержка не нарушается

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

Как отредактировать объект конфигурации: пошагово

Возьмём типовой сценарий — добавить реквизит в справочник или документ.

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

Шаг 7 меняет структуру таблиц СУБД. Для этого платформе нужен монопольный доступ к базе. Если в базе работают пользователи, обновление структуры прервёт их сеансы. Делайте это в нерабочее время и предупредите коллег заранее.

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

Правка модулей и программного кода

Поведение конфигурации — в модулях. Их несколько видов, и путать их не стоит:

  • Модуль объекта — логика конкретного справочника или документа (например, обработчик ПриЗаписи).
  • Модуль формы — события формы и её элементов (ПриОткрытии, обработчики нажатий).
  • Общие модули — переиспользуемый код; вызывается из разных мест.
  • Модуль приложения и модуль сеанса — запуск и завершение системы.

Чтобы открыть код: найдите объект в дереве, в контекстном меню выберите Открыть модуль (или дважды щёлкните по ветке модуля). Редактор подсвечивает синтаксис и подставляет имена методов.

Несколько практических моментов:

  • После правки кода запустите Конфигурация → Проверка конфигурации (или Синтаксический контроль в меню модуля) — платформа найдёт опечатки в именах методов до запуска.
  • Правку кода типовой безопаснее выносить в расширение (см. ниже), а не менять модуль напрямую: иначе при обновлении объект придётся сливать вручную.
  • Обход коллекции, из которой вы удаляете элементы, ведите с конца, иначе пропустите элементы:
Для Сч = 1 По Коллекция.Количество() Цикл
    Элемент = Коллекция[Коллекция.Количество() - Сч];
    // обработка Элемент
КонецЦикла;

Число со строкой не склеивайте напрямую — используйте СтрШаблон или Формат. Например: СтрШаблон("Проведено %1 строк", Формат(Счётчик, "ЧГ=0")).

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

Как сохранить доработки при обновлении типовой

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

Два механизма:

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

2. Ручное объединение. Конфигурация → Сравнить, объединить с конфигурацией из файла. Выбираете файл .cf (например, выгруженный из другой базы), платформа строит дерево различий. По каждому объекту вы задаёте, откуда брать значение — из основной конфигурации или из файла. Этим же способом переносят доработку из тестовой базы в рабочую.

Порядок при объединении:

  1. Откройте окно сравнения, укажите файл конфигурации.
  2. Снимите флажки с объектов, которые переносить не нужно.
  3. Для спорных объектов откройте режим подробного сравнения — он показывает отличия построчно.
  4. Выберите приоритет: Взять из файла или Оставить из основной.
  5. Нажмите Выполнить и затем F7.

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

Расширения: как доработать типовую, не снимая с поддержки

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

Что это даёт:

  • 📦 Доработка не мешает обновлению типовой.
  • 🔁 Расширение можно включить или отключить, не перестраивая основную конфигурацию.
  • 🧩 Один и тот же .cfe переносится между базами одной конфигурации.

Как создать и подключить:

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

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

Частые ошибки при изменении конфигурации

  • Правят боевую базу напрямую. Эксперименты — только на копии. В рабочую базу переносят готовый, проверенный результат.
  • Снимают с поддержки всё подряд. Чем больше объектов «с полным изменением», тем дороже каждое обновление. Снимайте с поддержки точечно.
  • Забывают F7. Изменения в дереве есть, а в базе их нет — потому что структура не обновлена. Любая правка заканчивается обновлением конфигурации базы данных.
  • Запускают структурное обновление в рабочие часы. Монопольный доступ оборвёт сеансы пользователей. Планируйте на вечер или выходной.
  • Не делают проверку конфигурации. Синтаксическая ошибка или битая ссылка проявится у пользователя, а не у вас. Проверка конфигурации ловит это заранее.
  • Путают модуль объекта и модуль формы. Обработчик, повешенный не на тот модуль, просто не сработает.
Можно ли изменить конфигурацию без снятия с поддержки?
Да — через расширение конфигурации. Типовая остаётся на поддержке и обновляется штатно, а доработки лежат в отдельном .cfe. Прямое редактирование объекта без ослабления поддержки невозможно.
Чем отличается «обновить конфигурацию» от «обновить конфигурацию базы данных»?
Первое (Поддержка → Обновить конфигурацию) подтягивает новый релиз от вендора и объединяет его с вашей. Второе (F7) применяет накопленные изменения к структуре таблиц базы. Это разные операции: обновили релиз — всё равно нужно нажать F7.
Почему после правки кода изменения не видны пользователю?
Либо не выполнено обновление конфигурации базы (F7), либо пользователь работает в старом сеансе. Динамическое обновление применяется при следующем входе; попросите перезайти.
Нужен ли монопольный доступ для правки модулей?
Нет. Изменения кода и форм без новых реквизитов применяются динамически. Монополия нужна только для структурных изменений — новых реквизитов, справочников, смены типов.
Как вернуть конфигурацию в исходное состояние?
Если сохраняли .cf до правок — загрузите его: Конфигурация → Загрузить конфигурацию из файла, затем F7. Если нет — восстановите базу из выгрузки .dt.