Можно ли включить возможность редактирования объекта во время сравнения и объединения конфигураций 1С?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

В процессе разработки и сопровождения типовых решений на платформе 1С:Предприятие одной из самых частых задач является сравнение и объединение конфигураций. Однако многие разработчики сталкиваются с неприятной ситуацией: запустив длительный процесс сравнения, они обнаруживают, что нужный объект находится «на замке» (заблокирован для редактирования), и внести в него изменения или принять обновления невозможно без перезапуска всего процесса. Разберем подробно, почему так происходит, и какие существуют способы решения этой проблемы.

Причина ограничения в стандартном Конфигураторе

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

В терминах интерфейса это означает, что пока открыто окно сравнения, доступ ко всем остальным функциям основного окна Конфигуратора заблокирован. Мы не можем параллельно зайти в «Настройку поддержки», чтобы снять «замок» с объекта. Платформа 1С жестко фиксирует состояние метаданных на момент начала сравнения. Если объект был нередактируемым (находился на строгой поддержке), то в рамках текущей сессии сравнения его статус изменить «на лету» стандартными средствами нельзя.

Работа с правилами поддержки внутри окна объединения

Рассмотрим ситуацию, когда мы выполняем сравнение с конфигурацией поставщика. В этом случае у нас чуть больше маневренности. Разберем по шагам, что можно сделать:

  1. В верхней панели окна сравнения и объединения найдем кнопку «Настройка правил поддержки».
  2. В открывшемся списке мы можем увидеть все объекты, участвующие в обновлении, и их текущие правила.
  3. Попробуем изменить правило для конкретного объекта на Объект поставщика редактируется с сохранением поддержки.

Важный нюанс: выясним, сработает ли это всегда. Если сама «Конфигурация в целом» не была предварительно переведена в режим возможности редактирования (через Настройку поддержки), то попытка изменить правила для отдельных объектов внутри окна объединения может быть заблокирована или не принесет результата при попытке сохранения. Система выдаст предупреждение о том, что конфигурация находится на поддержке без возможности редактирования.

Использование 1C:Enterprise Development Tools (EDT) как современное решение

Проанализируем альтернативный инструмент разработки — EDT. В отличие от старого Конфигуратора, EDT построена на базе Eclipse, что в корне меняет подход к работе с модальностью и метаданными.

Выясним, почему в EDT этой проблемы не существует:

Рассмотрим, как это выглядит на практике: при возникновении конфликта в коде, вы просто открываете панель Staging, запускаете Merge Tool и спокойно работаете с текстом, имея полный доступ ко всему функционалу среды разработки одновременно.

Автоматизация подготовки через командную строку

Для опытных разработчиков, работающих с большими объемами данных, рассмотрим метод предварительной подготовки объектов. Если мы знаем, что нам придется объединять много объектов, заблокированных для редактирования, мы можем воспользоваться параметрами командной строки для пакетного изменения правил поддержки.

Пример логики сценария (скрипта), который можно запустить перед сравнением:


// Пример параметров запуска Конфигуратора для пакетной настройки
1cv8.exe DESIGNER /F "ПутьКБазе" /N "Логин" /P "Пароль" /UpdateCfg /SetCfgModifiable /SetObjectModifyMode "Справочник.Номенклатура" EditWithSupport

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

Практические советы и «Золотое правило» разработчика

Проанализируем типовые ошибки. Часто разработчик пытается объединить изменения, выбирает флажки, настраивает правила внутри окна, нажимает «Выполнить», и спустя 10 минут ожидания получает ошибку: «Объект не может быть изменен, так как он не редактируется». Чтобы этого избежать, разберем алгоритм правильной подготовки:

  1. Анализ состава изменений: Прежде чем запускать сравнение, определим, какие группы объектов (справочники, документы, общие модули) будут затронуты.
  2. Предварительная разблокировка: Зайдем в «Конфигурация — Поддержка — Настройка поддержки» и убедимся, что для нужных объектов установлено правило Объект поставщика редактируется с сохранением поддержки.
  3. Включение возможности изменения: Если кнопка «Включить возможность изменения» еще не была нажата для всей конфигурации, это необходимо сделать в первую очередь.
  4. Запуск сравнения: Только после этого запустим процесс сравнения и объединения.

Посмотрим на ситуацию с точки зрения эффективности. Если вы часто сталкиваетесь с необходимостью «подправлять» объекты во время слияния, это явный сигнал к тому, что пора рассмотреть переход на 1C:EDT. Это снимет архитектурные ограничения старого Конфигуратора и позволит работать с кодом гораздо гибче.

Заключение

Мы выяснили, что в классическом Конфигураторе 1С включить возможность редактирования объекта непосредственно внутри модального окна сравнения (если объект изначально был закрыт) практически невозможно без перезапуска процесса. Однако, понимая механизмы работы правил поддержки и используя современные инструменты вроде EDT, мы можем значительно оптимизировать этот процесс и избежать потерь времени на повторные сравнения конфигураций.

← На главную