Работа в многопользовательской среде с использованием хранилища конфигурации 1С часто сопряжена с определенными неудобствами. Одной из самых распространенных ситуаций является необходимость создания нового объекта метаданных (документа, справочника, задачи). Для этого разработчику требуется захватить корень конфигурации. Однако, пока корень захвачен одним пользователем, другие участники процесса не могут добавлять свои объекты. Если разработка нового функционала затягивается, а регламент компании запрещает помещать в общее хранилище непроверенный или «сырой» код, возникает дилемма: как освободить корень, не потеряв при этом проделанную работу и не нарушив порядок в репозитории?
В данной статье мы подробно разберем несколько стратегий решения этой задачи: от классического метода «пустышки» до использования современных инструментов и механизмов сравнения-объединения.
Рассмотрим наиболее правильный с точки зрения методологии 1С подход. Этот способ позволяет минимизировать время блокировки корня конфигурации и при этом не засорять хранилище незаконченным программным кодом. Разберем этот процесс по шагам:
Документ.ПродажиПоАкциям). На данном этапе достаточно просто задать ему имя. Не нужно наполнять его реквизитами, формами или писать код в модулях.Таким образом, мы «застолбили» место для нового документа в дереве метаданных хранилища. Корень освободился буквально за несколько секунд, а вся основная разработка (создание табличных частей, форм, написание логики) теперь ведется в рамках захваченного объекта. Это идеальный вариант, если вы только планируете начать работу.
Проанализируем ситуацию, когда разработчик уже создал сложную структуру объекта, наплодил таблиц и модулей, но внезапно осознал, что корень нужно отдать, а код еще не готов к деплою. Прямая «Отмена захвата» корня приведет к тому, что 1С просто удалит новый объект из локальной базы, так как в хранилище его еще не существует. Чтобы спасти работу, выполним следующие действия:
.cf файл (например, backup_work.cf)..cf.Этот метод позволяет «реанимировать» проделанную работу, соблюдая при этом требование освобожденного корня конфигурации.
Современная платформа 1С предоставляет мощный механизм расширений конфигурации. Рассмотрим, как применить его в нашей задаче. Вместо того чтобы сразу менять основную конфигурацию и захватывать корень, мы можем:
1. Создать новое расширение.
2. Добавить в него новый объект (справочник или документ). Платформа позволяет создавать собственные объекты в расширениях, если это разрешено свойствами расширения.
3. Выполнить всю отладку и тестирование внутри расширения.
После того как функционал полностью готов и протестирован, нам потребуется захватить корень основной конфигурации всего на один раз, чтобы перенести объект из расширения в основную базу. Это самый «чистый» способ с точки зрения параллельной разработки.
Выясним причину, по которой при «Отмене захвата» корня пропадают созданные объекты. Хранилище 1С работает по принципу синхронизации состояния. Когда вы нажимаете «Отмена захвата», конфигуратор проверяет состояние объекта в базе хранилища. Поскольку запись о новом документе в хранилище отсутствует (вы его туда еще не помещали), система приводит вашу локальную конфигурацию в соответствие с глобальной версией, удаляя локальные «правки», которыми и является ваш новый объект.
Важно: При использовании метода с объединением конфигураций (метод №2), будьте внимательны с UID (уникальными идентификаторами) объектов. Если вы просто скопируете код, но создадите объект вручную с другим именем, ссылки в других частях кода могут «поплыть». Метод сравнения-объединения через файл конфигурации минимизирует эти риски.
Если в команде много разработчиков и борьба за корень конфигурации становится ежедневной проблемой, стоит рассмотреть более продвинутые подходы:
.cf и объединяет его с основной конфигурацией.Мы рассмотрели различные способы решения проблемы захвата корня. Подведем итог: если вы только начинаете — используйте метод «пустышки». Если работа уже сделана и ее нужно спасать — используйте сравнение с внешним CF-файлом. Для долгосрочного решения проблем параллельной разработки рекомендуется присмотреться к расширениям или переходу на современные инструменты вроде 1C:EDT.
Помните, что поддержание порядка в хранилище («Орднунг») — это не просто прихоть руководителя, а залог стабильной работы информационной системы и отсутствия ошибок при обновлении рабочей базы.