В SharePoint начиная с 2007 версии есть типы контента. В библиотеках и списках они есть всегда, но для их управления необходимо включить их поддержку в дополнительных свойствах библиотеки или списка. Что такое тип контента – это метаданные в дополнении к папке, документу или элементу списка. Стоит отметить, что для типа контента, основанного на документе можно задавать шаблон документа, который будет открываться, когда пользователь нажимает кнопку создать.

Рассмотрим на примере. Допустим, у нас есть необходимость хранить в библиотеке договоры нескольких типов: по контрактным сотрудникам и трудовые договоры. Для каждого типа договора есть свой набор полей, которые необходимо заполнять, а также свой шаблон с текстом. Кроме того, что можно хранить договоры в привязке к типу контента, можно ещё разделить их хранение по папкам. При этом можно в каждой папке ограничить создание документов только определенными типами.

Итак, производим следующие действия:

Создаем 2 шаблона для договоров.

Создаем 2 типа контента, наследуясь от документа, загружаем для них шаблоны.

 

 

Заходим в параметры библиотеки документов и включаем поддержку типов контента.

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

Теперь переходим в библиотеку и создаем папки - Контракты и Трудовые договоры.

Затем в каждой папке меняем порядок кнопок, оставляя только соответствующий тип контента.

Для программистов стоит сделать пояснение. Этим процессом можно управлять при помощи объекта SPFolder и свойства UniqueContentTypeOrder - http://msdn.microsoft.com/ru-ru/library/microsoft.sharepoint.spfolder.uniquecontenttypeorder(v=office.12).aspx

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

 

Теперь в каждой папке пользователи смогут создавать документы по строго определенным шаблонам.

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

Ну и наконец, можно ещё разграничить права доступа пользователей в этих папках.