← Назад к вопросам

Что происходит при разрешении изменений в типовой конфигурации на поддержке?

2.0 Middle🔥 81 комментариев
#Стандарты разработки

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI26 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Разрешение изменений в типовой конфигурации на поддержке

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

Что происходит при разрешении изменений

Когда в 1С включается флаг "Разрешить изменения для пользователей" в режиме поддержки, система позволяет пользователям и разработчикам вносить изменения в объекты конфигурации, которые существуют как в базовой (типовой) версии, так и в вашей кастомизации.

Режим поддержки конфигурации

// Меню: Конфигурация → Режим → Отключить поддержку
// По умолчанию типовая конфигурация находится в режиме поддержки
// 
// Три режима:
// 1. Режим разработки — полное редактирование конфигурации
// 2. Режим поддержки — ограниченное редактирование (безопасность)
// 3. Защита конфигурации — нельзя ничего менять

Механизм слияния изменений

Когда вы разрешаете изменения в режиме поддержки, происходит следующее:

1. Вложенные объекты (Nested Objects)

// Если вы добавили собственное поле в справочник "Товары":
// 
// Базовая конфигурация:
//   Справочник.Товары
//   - Реквизит "Наименование"
//   - Реквизит "Цена"
// 
// Ваша поддержка (на основе базовой):
//   Справочник.Товары
//   - Реквизит "Наименование"
//   - Реквизит "Цена"
//   - Реквизит "КодПостав" (ВАШЕ поле)
// 
// При разрешении изменений система позволяет редактировать
// КодПостав и другие ваши расширения

2. Основная опасность: потеря изменений при обновлении

// Сценарий:
// 1. Вы разработали расширение на версии 1.0 базовой конфигурации
// 2. В режиме поддержки добавили поле "МойРеквизит"
// 3. Поставщик выпустил версию 1.1 базовой конфигурации
// 4. При загрузке версии 1.1 происходит слияние (merge)
// 
// ОПАСНО: если не сделано правильно, ваши изменения могут потеряться!

Что теряется и что сохраняется

Сохраняется:

  • Ваши собственные объекты конфигурации (справочники, документы, отчёты)
  • Ваши расширения в базовых объектах (новые реквизиты, табличные части)
  • Собственные модули (общие модули, модули форм)
  • Собственные стили, шрифты

Может потеряться:

  • Изменения в модулях базовых объектов (если вы редактировали код в 1ОС:Бухгалтерии)
  • Переименования базовых объектов
  • Удаление базовых реквизитов
  • Изменения в процедурах, которые есть и в базовой, и в поддержке

Правильный подход: расширение через новые объекты

// ❌ НЕПРАВИЛЬНО
// Редактируем напрямую модуль справочника базовой конфигурации:
// Справочник.Товары → Модуль
// добавляем свою процедуру...
// Риск: при следующем обновлении может конфликт или потеря кода

// ✅ ПРАВИЛЬНО
// Способ 1: Создаём собственный справочник
Справочник.МойТовар  // расширение на Товары
// → в нём свои реквизиты и процедуры

// Способ 2: Создаём собственный обработчик события
ОбщийМодуль.ОбработчикиСобытийТовара (код на клиенте и сервере)
// → присоединяемся к обработчику "При записи" базового справочника

// Способ 3: Используем СоздаватьЭлементТаблицы() в своих процедурах
Процедура СоздатьТоварСРасширением()
    НовыйТовар = Справочник.Товары.Создать();
    НовыйТовар.Наименование = "Товар";
    // ВНИМАНИЕ: не редактируем стандартные модули!
КонецПроцедуры

Версионирование и совместимость

// При работе с типовой конфигурацией на поддержке нужно помнить:
// 
// 1. Нумерация версий
//    - Базовая конфигурация: 3.0.20.1 (например, 1С:Бухгалтерия)
//    - Ваша поддержка: 3.0.20.1.1 (дополнительный уровень)
// 
// 2. При загрузке обновления базовой конфигурации
//    - Сравниваются версии
//    - Автоматически восстанавливаются расширения поддержки
//    - Может потребоваться ручное слияние конфликтов

Практические проблемы и решения

Проблема 1: Конфликты при слиянии

// При обновлении базовой конфигурации 1.0 → 2.0
// и наличие ваших изменений в общих модулях
// → 1С выдаст предупреждение о конфликте
// 
// Решение: использовать Диспетчер версий
// Меню: Конфигурация → Диспетчер версий → Загрузить конфигурацию

Проблема 2: Потеря собственных модулей

// Если вы дописали код в стандартный модуль
// Справочник.Товары → Модуль (серверный)
// 
// И поставщик выпустил версию 2.0 с другим кодом,
// при слиянии ваш код может потеряться
// 
// Решение: создать ОТДЕЛЬНЫЙ общий модуль
ОбщийМодуль.РасширенияТовара (доступен везде)
    
Процедура ПриЗаписиТовара(Товар)
    // Ваша логика здесь
КонецПроцедуры

// И вызвать его из события базовой конфигурации

Проблема 3: Несовместимость при скачке версий

// Если вы на версии 1С:Бухгалтерия 3.0
// и поставщик выпустил сразу версию 4.0
// (большой скачок с несовместимостью),
// слияние может быть сложным
// 
// Решение: обновляться пошагово
// 3.0 → 3.1 → 3.2 → 4.0
// Так 1С корректнее слиёт ваши расширения

Лучшие практики при разрешении изменений

  1. Минимизируйте вмешательство в базовые объекты

    • Расширяйте через новые справочники, документы, отчёты
    • Не редактируйте модули базовых объектов
  2. Используйте расширения (расширяемые объекты)

    • В 1С 8.3.10+ есть возможность создать расширение конфигурации
    • Это специальный объект, который не конфликтует со слияниями
  3. Ведите историю своих изменений

    • Помечайте свой код комментариями
    • Ведите документацию по модификациям
  4. Тестируйте обновления

    • На тестовой копии БД сначала загружайте новую версию
    • Проверяйте целостность всех реквизитов и функций
    • Только потом переносите в production
  5. Если возможно, переходите на расширения конфигурации

    • С версии 8.3.10 есть специальный инструмент для этого
    • Не требует слияния с базовой конфигурацией

Краткий вывод

При разрешении изменений в режиме поддержки типовой конфигурации:

  • Никогда не редактируйте модули базовых объектов напрямую
  • Создавайте свои объекты и расширения
  • При обновлении базовой конфигурации могут быть конфликты
  • Используйте Диспетчер версий для корректного слияния
  • На 8.3.10+ переходите на расширения конфигурации

Это предотвратит потерю ваших изменений при следующем обновлении типовой конфигурации.