Библиотечная разработка — бета-версия

Назначение бета-версии

Бета-версия предназначена только для создания новых проектов, использующих библиотеки. Она не содержит инструментов для выделения библиотечной функциональности из существующих проектов.

Цель бета-версии — познакомить разработчиков с новой технологией и получить обратную связь.

Ограничения бета-версии

Что такое библиотека

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

Набор объектов конфигурации, содержащийся в библиотеке, реализует ту функциональность, которая встраивается. Дополнительная информация, содержащаяся в библиотеке, позволяет 1C:EDT контролировать конфликты внедрения библиотек или их совместного использования.

Физическим воплощением библиотеки является файл с расширением clib или xlib.

.clib-файл (configuration library) это библиотека приложения, она содержит целое прикладное решение. Такую библиотеку можно использовать для создания библиотечного проекта, который будет целиком или частично находиться на поддержке у этой библиотеки.

.xlib-файл (extension library) это библиотека расширения. Она содержит одно расширение. Такую библиотеку можно использовать для создания библиотечного расширения, которое будет находиться на поддержке у этой библиотеки и адаптироваться под разных заказчиков.

Физическая структура библиотечного проекта

Библиотечный проект имеет ссылку на свою библиотеку. Сама библиотека находится в репозитории. О том, что проект использует библиотеки, можно узнать в свойствах проекта в поле Библиотеки.

В панели Навигатор все библиотечные объекты отображаются так, как будто они находятся в рабочей области. Библиотечные объекты, которые не имеют изменений, выделены синим цветом. Объекты, не принадлежащие библиотеке (собственные объекты проекта) отображаются как обычно, черным цветом.

В перспективе Файлы структура каталогов проекта выглядит так, как будто все библиотечные объекты находятся в рабочей области: в каталоге src есть каталоги с классами объектов, в которых находятся каталоги самих объектов.

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

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

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

Локальный репозиторий библиотек

Для хранения библиотек, внедренных в проекты, 1C:EDT создает локальный репозиторий в файловой системе. Чтобы посмотреть список используемых библиотек, в главном меню нажмите Окно > Параметры... > V8 > Библиотеки > Репозиторий библиотек конфигурации. Здесь же рядом находится Репозиторий библиотек расширений.

При работе в операционной системе Windows локальный репозиторий расположен в данных приложения: %APPDATA%\1cedt\lib-cnf-rep.

Поставка и поддержка

Для того, чтобы библиотеки, встроенные в проекты, можно было обновлять автоматически (или максимально используя автоматические возможности), в них используются правила поставки и правила поддержки.

Правила поставки задает разработчик библиотеки. Они указывают, какие объекты можно изменять, а какие совершенно точно должны оставаться неизменными в библиотечном проекте.

Правила поддержки задает разработчик библиотечного проекта, то есть тот человек, который использует библиотеку. С помощью этих правил он указывает 1C:EDT, в каких объектах, при обновлении библиотеки, нужно искать конфликты, а какие объекты нужно просто взять из новой версии или, наоборот, не изменять тот код, который есть в проекте.

Существует 4 правила поставки. Одно из них запрещает какие-либо изменения и пользователь библиотеки на это повлиять никак не может. Изменения запрещены — с точки зрения разработчика это правило означает, что объект настолько важен для данной библиотеки, что при любом его изменении пользователем библиотеки (если бы такое было возможно), нет смысла в дальнейшей поддержке этой библиотеки;

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

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

После своего создания библиотечный проект закрыт от изменений, поэтому обновление его библиотеки выполнятся автоматически и без конфликтов.

Несмотря на то, что проект закрыт от изменений, 1C:EDT сразу же автоматически формирует правила поддержки:

Пользователь библиотечного проекта может включить возможность изменения проекта и использовать правила, установленные автоматически, либо установить свои: