Что происходит при разрешении изменений в типовой конфигурации на поддержке?
Комментарии (1)
Ответ сгенерирован нейросетью и может содержать ошибки
Разрешение изменений в типовой конфигурации на поддержке
Это критически важный момент при работе с типовыми конфигурациями 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С 8.3.10+ есть возможность создать расширение конфигурации
- Это специальный объект, который не конфликтует со слияниями
-
Ведите историю своих изменений
- Помечайте свой код комментариями
- Ведите документацию по модификациям
-
Тестируйте обновления
- На тестовой копии БД сначала загружайте новую версию
- Проверяйте целостность всех реквизитов и функций
- Только потом переносите в production
-
Если возможно, переходите на расширения конфигурации
- С версии 8.3.10 есть специальный инструмент для этого
- Не требует слияния с базовой конфигурацией
Краткий вывод
При разрешении изменений в режиме поддержки типовой конфигурации:
- Никогда не редактируйте модули базовых объектов напрямую
- Создавайте свои объекты и расширения
- При обновлении базовой конфигурации могут быть конфликты
- Используйте Диспетчер версий для корректного слияния
- На 8.3.10+ переходите на расширения конфигурации
Это предотвратит потерю ваших изменений при следующем обновлении типовой конфигурации.