Платформа 1С:Предприятие 8
Средства конфигурирования
02.07.2013
Хранилище конфигурации предназначено для коллективной разработки конфигурации. В хранилище сохраняется история разрабатываемой конфигурации, а также информация о том, когда и кто вносил изменения в конфигурацию. Разработка конфигурации с использованием хранилища может вестись неограниченным числом пользователей.
Хранилище конфигурации представляет собой базу данных, в которой сохраняются все изменения конфигурации, сделанные в процессе её разработки. После подключения информационной базы к хранилищу из него в информационную базу загружается последняя версия конфигурации, и все объекты метаданных конфигурации становятся недоступными для редактирования.
Гранулой редактирования - объектами разработки - являются все основные объекты метаданных (такие как справочники, документы, регистры сведений), а также формы и макеты. Объекты разработки могут редактироваться независимо друг от друга разными пользователями. Реквизиты, табличные часть и т.д. не являются отдельными объектами с логической точки зрения, поэтому они не были включены в состав объектов разработки. Данные объекты метаданных редактируются в составе своих родительских объектов, являющихся объектами разработки.
Для получения возможности редактирования объекта необходимо произвести его захват в хранилище. При выполнении захвата из хранилища будет получена (в случае наличия) новая версия объекта разработки. После внесения изменений объект необходимо поместить в хранилище, после этого обновленная версия объекта становится доступной для других пользователей, участвующих в процессе разработки конфигурации. Если же изменения не должны быть помещены в хранилище, то предусмотрена процедура отмены захвата, при которой из хранилища получается старая версия объекта разработки. Таким образом, можно выделить четыре простейшие операции работы с хранилищем:
Для параллельной разработки конфигурации в хранилище используется стратегия пессимистической блокировки: в то время, пока объект разработки редактируется одним пользователем, другие пользователи не имеют возможности его редактировать.
Стоит обратить внимание на тот факт, что при подключении информационной базы к хранилищу конфигурации происходит полная замена текущей редактируемой конфигурации конфигурацией хранилища. Это необходимо для обеспечения полного соответствия идентификаторов объектов метаданных. Если все же имеется информационная база, часть объектов метаданных конфигурации которой необходимо перенести в конфигурацию хранилища, то необходимо:
Важно понимать, что предметом разработки является конфигурация, а не отдельные объекты. Хранилище ведет историю развития конфигурации. При помещении объектов разработки в хранилище создается новая версия конфигурации, для которой записываются: дата создания версии, пользователь, создавший версию, а также списки объектов разработки, которые были добавлены, изменены, удалены в процессе получения данной версии конфигурации. История объектов разработки не ведется. Несмотря на то, что имеется возможность просмотра истории объекта разработки, отдельно загрузить из хранилища объект разработки какой-либо версии конфигурации невозможно, возможна лишь загрузка из хранилища версии конфигурации целиком. Однако все же имеется возможность получения объекта определенной версии конфигурации: необходимо захватить объект и выполнить объединение с версией конфигурации, в которой данный объект имеет требуемое состояние.
При создании новой версии конфигурации хранилища имеется возможность записать комментарий к этой версии. Рекомендуется комментировать версии конфигурации, для того чтобы впоследствии можно было понять, что именно было изменено в данной версии конфигурации. Для наиболее значимых версий (например: выпуск релиза) рекомендуется также устанавливать метку - строку, кратко описывающую версию конфигурации хранилища.
В процессе разработки конфигурации с использованием хранилища рекомендуется периодически получать актуальное состояние объектов разработки. Это позволяет избежать возможных трудностей при помещении объектов в хранилище (например, при удалении объектов метаданных из конфигурации).
Средства работы с хранилищем конфигурации позволяют просматривать историю версий конфигурации хранилища, сохранять конфигурацию определенной версии в файл, сравнивать с другими версиями конфигурации данного хранилища или же сравнивать с другой конфигурацией из файла.
Если по каким-либо причинам хранилище конфигурации недоступно, то имеется возможность продолжать работу с объектами разработки, захваченными ранее в хранилище. Таким образом, можно вести разработку, не имея постоянной непосредственной связи с хранилищем конфигурации.
Для работы с хранилищем конфигурации предусмотрено несколько способов:
Данные режимы отличаются друг от друга как набором функциональности, предоставляемой платформой "1С:Предприятие", так и своим предназначением.
Этот режим является основным режимом работы с хранилищем. Он используется для групповой разработки конфигурации несколькими пользователями.
Работа в данном режиме начинается с процедуры подключения информационной базы к хранилищу. К одному хранилищу может быть одновременно подключена одна информационная база от имени одного пользователя. Если пользователь, у которого уже имеется информационная база, подключенная к данному хранилищу, произведет попытку подключения другой информационной базы, то ему будет выдано соответствующее предупреждение. Если же подключение все же будет осуществлено, то прежняя информационная база уже не сможет работать с данным хранилищем конфигурации без предварительного отключения от него. Аутентификация в хранилище от имени пользователя, не подключавшего данную информационную базу к хранилищу, невозможна.
При подключении информационной базы к хранилищу в нем регистрируется строка соединения с информационной базой. Если при последующих соединениях с хранилищем данная строка будет изменена (по каким-либо причинам информационная база была перемещена на другой ресурс), то платформой будет выдано соответствующее предупреждение, и, в случае подтверждения соединения, строка соединения будет обновлена. Если соединение происходило копией информационной базы, то работа оригинала с данным хранилищем будет невозможна без предварительного отключения от него.
Режим обеспечивает возможность просмотра и администрирования хранилища без подключения к нему, т.е. без замены редактируемой конфигурации конфигурацией хранилища. В данном режиме пользователь может получить конфигурацию определенной версии хранилища, посмотреть историю конфигурации или отдельных объектов разработки, произвести действия по редактированию прав пользователей или изменению их состава.
Работа в данном режиме начинается с открытия хранилища конфигурации, данная процедура заключается в аутентификации пользователя в хранилище, которая будет автоматически предложена при выполнении любого первого действия с хранилищем в данной сессии работы Конфигуратора. Для открытия другого хранилища в данной сессии Конфигуратора необходимо закрыть текущее хранилище конфигурации, выбрав соответствующий пункт меню.
Предполагается, что данный режим будет использоваться для подготовки дистрибутивов конфигураций на основе файлов выгрузки информационных баз. Данная процедура может выглядеть следующим образом:
Начиная с версии платформы 8.3.3, в хранилище добавлен режим совместимости. Режим совместимости позволяет старшим версиям платформы работать с хранилищами, созданными в младших версиях платформы (начиная с версии 8.3.2), без конвертации.
Режим совместимости можно установить в окне "Администрирование хранилища" на закладке "Прочие". На данный момент можно установить один из двух режимов совместимости: "Версия 8.3.2" и "Не использовать". При смене режима и нажатии кнопки "Установить" происходит конвертация базы данных хранилища конфигурации.
Особенности работы хранилища в режиме совместимости "Версия 8.3.2":
Особенности работы хранилища в режиме совместимости "Не использовать":
Стандартные механизмы контроля ссылочной целостности конфигурации обеспечивают контроль на уровне объектов метаданных: нельзя, например, удалить из конфигурации справочник, если на него ссылается реквизит документа и т.д. На уровне интерфейсов, форм и макетов такой контроль не ведется.
Пример: удаление справочника Склады из демонстрационной конфигурации "Примеры ИТС":
"Справочник.Склады" использован в: Документ.ПриходнаяНакладная.Реквизит.Склад.Тип Документ.РасходнаяНакладная.Реквизит.Склад.Тип РегистрНакопления.УчетНоменклатуры.Измерение.Склад.Тип
В режиме совместимости "Версия 8.3.2" хранилище конфигурации обеспечивает более строгий контроль ссылочной целостности конфигурации. Производится полный контроль ссылок между объектами метаданных как на уровне самих объектов, так и на уровне содержимого их форм и макетов, а также содержимого интерфейсов.
Следствием этого факта является необходимость получения из хранилища (помещения в хранилище) объектов, так или иначе связанных с объектом, над которым непосредственно производится действие. Однако хранилище конфигурации производит анализ ссылок объекта и требует получения (помещения) дополнительных объектов только в случае необходимости.
В режиме совместимости "Не использовать" хранилище конфигурации обеспечивает контроль ссылочной целостности только на уровне объектов метаданных; на уровне интерфейсов, форм и макетов контроль не ведется.
Анализ ссылок производится рекурсивно: сначала производится анализ объекта, с которым производится действие в хранилище; затем при обнаружении необходимости выполнения операции над дополнительными объектами аналогичный анализ производится для них, и так до тех пор, пока ссылки всех требуемых объектов не будут проанализированы.
Разработка конфигурации в информационной базе, подключенной к хранилищу конфигурации, имеет некоторые особенности.
Как уже говорилось ранее, для получения возможности редактирования объекта необходимо произвести его захват в хранилище конфигурации. Если необходимо внести изменения в объект метаданных, не являющийся объектом разработки (реквизиты, табличные части), то необходимо произвести захват того объекта разработки, который содержит данные объекты метаданных.
Для добавления нового объекта метаданных или же для изменения порядка следования существующих объектов необходимо произвести захват родительского объекта разработки.
Особое внимание стоит уделить процедуре удаления объектов метаданных из конфигурации. Для удаления объекта метаданных из конфигурации необходимо захватить в хранилище сам удаляемый объект, его родительский объект, а также все подчиненные объекты удаляемого. После чего появится возможность удалить объект из конфигурации.
Однако при помещении в хранилище, если на удаленный объект имеются ссылки в других объектах, средства работы с хранилищем потребуют помещение этих объектов в хранилище с очищенными ссылками на удаленный объект.
Рекомендуется перед удалением объекта из конфигурации производить поиск ссылок на данный объект. Произвести захват в хранилище всех обнаруженных объектов и вычистить из них все ссылки на удаляемый объект.
В режиме совместимости "Версия 8.3.2" после этого необходимо удалить все ссылки на удаляемый объект из форм, интерфейсов и макетов.
В режиме совместимости "Не использовать" удалять ссылки на удаляемый объект из форм, интерфейсов и макетов не требуется.
После этого необходимо удалить объект из конфигурации и произвести попытку помещения изменений в хранилище. Если помещение в хранилище завершится неудачей из-за обнаружения ссылок на удаленный объект, то необходимо захватить указанные объекты и произвести повторную попытку помещения изменений в хранилище.
Пример: удаление справочника Склады из демонстрационной конфигурации "Примеры ИТС" в режиме совместимости хранилища "Версия 8.3.2":
"Справочник.Склады" использован в: Документ.ПриходнаяНакладная.Реквизит.Склад.Тип Документ.РасходнаяНакладная.Реквизит.Склад.Тип РегистрНакопления.УчетНоменклатуры.Измерение.Склад.Тип
Ошибка помещения объектов в хранилище. Для выполнения операции необходимо поместить в хранилище объекты: - Документ.ПриходнаяНакладная.Форма.ФормаДокумента (объект не захвачен пользователем) - Документ.РасходнаяНакладная.Форма.ФормаДокумента (объект не захвачен пользователем)
Операция не может быть выполнена: Объект 'Документ.ПриходнаяНакладная.Форма.ФормаДокумента' содержит ссылки на удаленные объекты: - Справочник.Склады Объект 'Документ.РасходнаяНакладная.Форма.ФормаДокумента' содержит ссылки на удаленные объекты: - Справочник.Склады
Объект помещен в хранилище: ПримерыИТС Объект помещен в хранилище: Документ.ПриходнаяНакладная.Форма.ФормаДокумента Объект помещен в хранилище: Документ.ПриходнаяНакладная Объект помещен в хранилище: Документ.РасходнаяНакладная.Форма.ФормаДокумента Объект помещен в хранилище: РегистрНакопления.УчетНоменклатуры Объект помещен в хранилище: Интерфейс.Основной Объект помещен в хранилище: Документ.РасходнаяНакладная
Пример: удаление справочника Склады из демонстрационной конфигурации "Примеры ИТС" в режиме совместимости хранилища "Не использовать":
"Справочник.Склады" использован в: Документ.ПриходнаяНакладная.Реквизит.Склад.Тип Документ.РасходнаяНакладная.Реквизит.Склад.Тип РегистрНакопления.УчетНоменклатуры.Измерение.Склад.Тип
Объект помещен в хранилище: ПримерыИТС Объект помещен в хранилище: Документ.ПриходнаяНакладная Объект помещен в хранилище: РегистрНакопления.УчетНоменклатуры Объект помещен в хранилище: Документ.РасходнаяНакладная
Таким образом, удаление объекта метаданных из конфигурации, разрабатываемой при использовании хранилища, требует аккуратности и внимательности.
В режиме совместимости хранилища "Не использовать" объекты метаданных хранятся в файловой системе, что позволяет существенно увеличить объем данных, которые можно поместить в хранилище.
Большое количество файлов может несколько замедлять работу с хранилищем (особенно при расположении хранилища на сетевом диске). Поэтому, если стало заметно некоторое замедление работы с хранилищем, в окне "Администрирование хранилища" на закладке "Прочие" можно выполнить оптимизацию хранения данных хранилища.
При включенном флажке "Предлагать оптимизацию после выполнения операций с хранилищем" в окне "Администрирование хранилища" администратору хранилища будет предлагаться провести оптимизацию хранения данных хранилища.