Библиотечная разработка — бета-версия
- Назначение бета-версии
- Ограничения бета-версии
- Что такое библиотека
- Физическая структура библиотечного проекта
- Локальный репозиторий библиотек
- Поставка и поддержка
Назначение бета-версии
Бета-версия предназначена только для создания новых проектов, использующих библиотеки. Она не содержит инструментов для выделения библиотечной функциональности из существующих проектов.
Цель бета-версии — познакомить разработчиков с новой технологией и получить обратную связь.
- Создать библиотеку:
- Внедрить библиотеку:
- Модифицировать библиотечный проект
- Включить возможность изменения проекта
- Настроить правила поддержки
- Изменить и отладить библиотечный проект
- Обновить библиотеку в проекте
- Внедрить в проект несколько библиотек
Ограничения бета-версии
- Редактор правил поставки реализован в минимальной функциональности.
- Нет возможности вернуть измененный библиотечный объект к тому состоянию, которое было у него в библиотеке.
- Не поддерживается сетевой репозиторий библиотек, только локальный.
Что такое библиотека
Библиотека — это набор объектов конфигурации «1С:Предприятия» плюс дополнительная информация, которую использует 1C:EDT. Назначение библиотеки в том, чтобы встроить в проект некоторую готовую функциональность, а затем обновлять ее по мере выхода новых версий библиотеки.
Набор объектов конфигурации, содержащийся в библиотеке, реализует ту функциональность, которая встраивается. Дополнительная информация, содержащаяся в библиотеке, позволяет 1C:EDT контролировать конфликты внедрения библиотек или их совместного использования.
Физическим воплощением библиотеки является файл с расширением clib или xlib.
.clib-файл (configuration library) это библиотека приложения, она содержит целое прикладное решение. Такую библиотеку можно использовать для создания библиотечного проекта, который будет целиком или частично находиться на поддержке у этой библиотеки.
.xlib-файл (extension library) это библиотека расширения. Она содержит одно расширение. Такую библиотеку можно использовать для создания библиотечного расширения, которое будет находиться на поддержке у этой библиотеки и адаптироваться под разных заказчиков.
Физическая структура библиотечного проекта
Библиотечный проект имеет ссылку на свою библиотеку. Сама библиотека находится в репозитории. О том, что проект использует библиотеки, можно узнать в свойствах проекта в поле Библиотеки.
В панели Навигатор все библиотечные объекты отображаются так, как будто они находятся в рабочей области. Библиотечные объекты, которые не имеют изменений, выделены синим цветом. Объекты, не принадлежащие библиотеке (собственные объекты проекта) отображаются как обычно, черным цветом.
В перспективе Файлы структура каталогов проекта выглядит так, как будто все библиотечные объекты находятся в рабочей области: в каталоге src есть каталоги с классами объектов, в которых находятся каталоги самих объектов.
Если изменения библиотечного проекта запрещены, то в файловой системе библиотечных объектов нет, есть только те объекты, которые не принадлежат библиотеке, которые добавлены непосредственно в проект.
Если вы включаете возможность редактирования какого-нибудь библиотечного объекта и вносите в него изменения, то тогда этот объект тоже физически появляется в рабочей области, а в панели Навигатор он начинает отображаться черным цветом, как собственный объект проекта.
В процессе отладки или для передачи пользователям 1C:EDT экспортирует библиотечный проект в информационную базу. В этом случае в базе создается обычная конфигурация, содержащая все объекты (как проекта, так и его библиотеки) и не содержащая никакой информации о библиотеках, поддержке, поставке и пр.
Локальный репозиторий библиотек
Для хранения библиотек, внедренных в проекты, 1C:EDT создает локальный репозиторий в файловой системе. Чтобы посмотреть список используемых библиотек, в главном меню нажмите . Здесь же рядом находится Репозиторий библиотек расширений.
При работе в операционной системе Windows локальный репозиторий стандартно расположен в данных приложения: %APPDATA%\1cedt\lib-cnf-rep. Вы можете изменить расположение репозиториев на странице параметров, описанной выше.
Поставка и поддержка
Для того, чтобы библиотеки, встроенные в проекты, можно было обновлять автоматически (или максимально используя автоматические возможности), в них используются правила поставки и правила поддержки.
Правила поставки задает разработчик библиотеки. Они указывают, какие объекты можно изменять, а какие совершенно точно должны оставаться неизменными в библиотечном проекте.
Правила поддержки задает разработчик библиотечного проекта, то есть тот человек, который использует библиотеку. С помощью этих правил он указывает 1C:EDT, в каких объектах, при обновлении библиотеки, нужно искать конфликты, а какие объекты нужно просто взять из новой версии или, наоборот, не изменять тот код, который есть в проекте.
Существует 4 правила поставки. Одно из них запрещает какие-либо изменения и пользователь библиотеки на это повлиять никак не может. Изменения запрещены — с точки зрения разработчика это правило означает, что объект настолько важен для данной библиотеки, что при любом его изменении пользователем библиотеки (если бы такое было возможно), нет смысла в дальнейшей поддержке этой библиотеки;
Два других правила разрешают пользователю библиотеки вносить изменения и отличаются лишь своей информационной составляющей. Одно говорит, что "изменять можно, скорее всего это не приведет к конфликтам". Другое — "лучше не изменять, но если очень надо, то можно":
- Изменения разрешены — разработчик полагает, что изменения, выполняемые пользователем библиотеки в этом объекте, не окажут значительного влияния на основную функциональность;
- Изменения не рекомендуются — означает, что пользователь может изменять этот объект, но при внесении изменений он должен быть внимателен, так как это может повлиять на значительную часть функциональности прикладного решения;
Последнее правило поставки, Включение в конфигурацию не рекомендуется, имеет техногенный характер и предназначено в основном для разработки объектов из библиотеки стандартных подсистем. При подключении библиотеки к существующему проекту объекты, для которых установлено данное правило, по умолчанию не помечаются к включению в проект.
После своего создания библиотечный проект закрыт от изменений, поэтому обновление его библиотеки выполнятся автоматически и без конфликтов.
Несмотря на то, что проект закрыт от изменений, 1C:EDT сразу же автоматически формирует правила поддержки:
- Для объектов с Изменения разрешены — Редактируется с сохранением поддержки.
- Для объектов с Изменения не рекомендуются — Не редактируется.
Пользователь библиотечного проекта может включить возможность изменения проекта и использовать правила, установленные автоматически, либо установить свои:
- Не редактируется — означает, что пользователь не изменял библиотечный объект. При обновлении библиотеки 1C:EDT будет без вопросов помещать в проект новую версию этого объекта.
- Редактируется с сохранением поддержки — означает, что пользователь мог изменить библиотечный объект. При обновлении библиотеки 1C:EDT проанализирует, нет ли конфликтов с изменениями разработчиков, и если они есть, попросит устранить их вручную.
- Снят с поддержки — означает, что пользователю не нужны новые версии этого объекта, поставляемые разработчиками. При обновлении библиотеки 1C:EDT даже не будет пытаться изменить то, что написано у пользователя.