Обновление бсп. Библиотека стандартных подсистем. Электронная цифровая подпись

В подсистеме "Управление доступом ", входящую в состав БСП, настройка доступа к данным на уровне записей таблиц базы данных (RLS) осуществляется с использованием двух справочников - "Профили групп доступа " и "Группы доступа ". Настройка ролей пользователей производится через первый справочник, в то время как настройка RLS может осуществляться через оба упомянутых выше справочника - на выбор администратора БД.

Хочется отметить то, что в подсистеме имеется возможность разграничения доступа к данным как по элементно, так и по совокупности элементов, объединенных вместе по какому-либо признаку. В качестве примера возьмем справочник "Физические лица ", возможность настройки RLS к которому имеется практически во всех типовых конфигурациях, и производится с использованием специального справочника "". Для каждого элемента справочника "Физические лица " имеется возможность указать в его реквизите "Группа доступа " соответствующий ему элемент из справочника "Группы доступа физических лиц ", после чего для каждого пользователя (или группы пользователей) указывается соответствующая ему (им) доступная для работы группа доступа физ. лиц. Т.о. справочник "Физические лица " выступает в качестве предмета ограничения доступа (в качестве такового может выступать практически любой объект системы), а справочник "Группы доступа физических лиц " в качестве средства (инструмента) разграничения доступа к предмету.

Теперь перейдем к тому, что допустим, нам потребовалось организовать разграничение доступа к какому-либо объекту конфигурации по определенному критерию, но возможность настройки такого разграничения в программе отсутствует. В качестве примера для рассмотрения возьмем типовую конфигурацию "Бухгалтерия предприятия 3.0 " (БП), включающую в себя подсистему "Управление доступом ", и в которой отсутствует возможность настройки RLS по справочнику "Контрагенты ". Перед внесением изменений в конфигурацию хотелось бы также сделать оговорку - вносимые изменения зависят от версии БСП, используемой в конфигурации, но принцип остается тем же самым. В рассматриваемой статье используется версия БСП 2.2.2.44.

И так, последовательность наших действий в конфигураторе, целью которых является реализация возможности настройки в конфигурации RLS по справочнику "Контрагенты " (в нашем случае является предметом ограничения доступа), будет следующей:
1. Отфильтровать дерево метаданных конфигурации по подсистеме "Стандартные подсистемы " - "Управление доступом ".
2. Через настройку поддержки конфигурации (в случае использования механизма поддержки) включить возможность изменения следующих объектов конфигурации:
а. Корень конфигурации.
б. Справочник "Контрагенты ".
в. Определяемый тип "ЗначениеДоступа ".
г. Подписка на событие "".
д . Общий модуль "".
3. Добавить в конфигурацию новый справочник "Группы доступа контрагентов ".
4. Добавить в справочник "Конрагенты " новый реквизит "ГруппаДоступа " ссылочного типа на наш новый справочник.
5. Для определяемого типа "ЗначениеДоступа " в составной тип включить ссылки на справочники "Контрагенты " и "Группы доступа контрагентов ".
6. Для подписки на событие " ОбновитьГруппыЗначенийДоступа " в качестве источника также указать справочник "Контрагенты ".
7. Открыть общий модуль " УправлениеДоступомПереопределяемый " и вставить в три его процедуры фрагменты кода, приведенные ниже.
8. Из роли "ИзменениеУчастниковГруппДоступа " скопировать в необходимую вам роль (или роли, определяющие доступ к справочнику) шаблоны RLS с именами "ПоЗначениям " и "ПоЗначениямРасширенный ". Установить в своих ролях использование одного из шаблонов по требуемому праву (например, "Чтение "), как показано на скрине ниже.
9. Запустить конфигурацию в режиме "Предприятия " с параметром запуска "ЗапуститьОбновлениеИнформационнойБазы " (или же вызвать экспортную процедуру "ОбновитьПараметрыОграниченияДоступа " общего модуля подсистемы "УправлениеДоступомСлужебный ").

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

Процедура ПриЗаполненииВидовДоступа(ВидыДоступа) Экспорт ЗарплатаКадры.УправлениеДоступомЗаполнитьСвойстваВидаДоступа(ВидыДоступа); // +Наша вставка ВидДоступа = ВидыДоступа.Добавить(); ВидДоступа.Имя = "ГруппыКонтрагентов"; // имя вида доступа (используется в ролях для RLS) ВидДоступа.Представление = НСтр("ru = "Группы контрагентов""); ВидДоступа.ТипЗначений = Тип("СправочникСсылка.Контрагенты"); // критерий ограничения доступа ВидДоступа.ТипГруппЗначений = Тип("СправочникСсылка.ГруппыДоступаКонтрагентов"); // средство ограничения доступа // -Наша вставка КонецПроцедуры Процедура ПриЗаполненииИспользованияВидаДоступа(ИмяВидаДоступа, Использование) Экспорт ЗарплатаКадры.УправлениеДоступомЗаполнитьИспользованиеВидаДоступа(ИмяВидаДоступа, Использование); // +Наша вставка Если ИмяВидаДоступа = "ГруппыКонтрагентов" Тогда Использование = Истина; КонецЕсли; // -Наша вставка КонецПроцедуры Процедура ПриЗаполненииВидовОграниченийПравОбъектовМетаданных(Описание) Экспорт // +Наша вставка // указание прав объектов метаданных, на которые распространяется RLS Описание = Описание + " |Справочник.Контрагенты.Чтение.ГруппыКонтрагентов |Справочник.Контрагенты.Изменение.ГруппыКонтрагентов |"; // -Наша вставка КонецПроцедуры

После завершения обновления ИБ в программе необходимо проделать следующие действия:
1. Заполнить только что добавленный в систему справочник "Группы доступа контрагентов ".
2. У элементов справочника "Контрагенты " заполнить необходимым образом реквизит "Группа доступа ".
3. В справочнике "Профили групп доступа " (или же в справочнике "Группы доступа ") на закладке "Ограничения доступа " соответствующим образом настроить RLS по группам доступа контрагентов (ниже на скрине - пользователи, которым назначен профиль "Наш новый профиль доступа ", будут работать в справочнике только с контрагентами, входящими в группы доступа "Оптовые " и "Общие ").
4. Возможно потребуется предусмотреть в конфигурации механизм автоматического заполнения реквизита "Группа доступа " для новых элементов справочника "Контрагенты " (в целях облегчения его администрирования).

Резюме: Использование подсистемы "Управление доступом " из состава БСП дает возможность управлять RLS по любым объектам конфигурации, оперируя при этом минимум двумя стандартными справочниками "Профили групп доступа " и "Группы доступа ". Расширение возможностей настройки RLS дается с минимальным внесением изменений в подсистему. В случае, если критерий (или предмет) ограничения прав доступа имеет большой объем и постоянно расширяется (например, справочник "Контрагенты "), то имеется возможность через свой дополнительный справочник (средство разграничения) разделить критерий (или предмет) доступа на определенные области (в нашем случае через " Группы доступа контрагентов ") , в противном случае в качестве разграничителя доступа можно использовать (и имеет смысл) сами элементы справочника (например, в справочнике "Организации "). Неоспоримым плюсом использования подсистемы также является унификация администрирования прав доступа в информационной базе.

Поскольку конфигурация БСП рассчитана на разработчиков, то документации будет минимум, я лишь опишу последовательность шагов, необходимых для получения результата. Если же будут вопросы, то закрытых модулей нет, можете смотреть и анализировать. По мере свободного времени постараюсь отвечать в комментариях. Как вариант, можно посмотреть документацию в , там подсистема хранения описана подробнее.

Для внедрения расширения следует выполнить следующие шаги:

  1. Загрузить расширение в конфигурацию.
  1. Для регистра сведения "ВнФ_ВнешниеХранилищаФайлов" проверить тип измерения Файл, тип должен совпадать с аналогичным измерением регистра сведений "ДвоичныеДанныеФайлов". Если какого-то типа не хватает - добавьте.

  1. Обновите конфигурацию, зайдите в "Администрирование" в "Настройку работы с файлами". Настройка хранения файлов в томах претерпела изменение - если файлы хранятся в базе 1С, то можно перейти по ссылке "Внешние хранилища файлов".

  1. Теперь нам нужно создать внешнюю базу данных. Для примера возьмем MS SQL. Структура базы должна быть такой, как на рисунке ниже. Для тестового примера индексы можно не создавать.


На форме миграции в списке отображен регистр сведений "Двоичные данные файлов", в котором в типовой БСП хранятся данные файлов. После переноса в списке появится ИД файла во внешней СУБД и ссылка на внешнее хранилище, где хранится файл.

Версия 3.0.1

Версия 3.0.1 является новой редакцией инструментария "1С:Библиотека стандартных подсистем", который предназначен для разработки конфигураций на платформе "1С:Предприятие" версии 8.3.12 и выше. При этом свойство конфигурации "Режим совместимости" должно быть установлено в "Не использовать" при разработке на версии 8.3.12 или в "Версия 8.3.12" при разработке на более старших версиях.

"1С:Библиотека стандартных подсистем" (БСП) предоставляет набор универсальных функциональных подсистем, готовые разделы для пользовательской документации и технологию для разработки прикладных решений на платформе "1С:Предприятие". С применением БСП становится возможной быстрая разработка новых конфигураций с уже готовой базовой функциональностью, а также включение готовых функциональных блоков в существующие конфигурации. Использование БСП при разработке прикладных решений на платформе 1С:Предприятие позволит также достичь большей стандартизации конфигураций, что уменьшит время на изучение и внедрение прикладных решений за счет их унификации по набору используемых стандартных подсистем.

Входящие в БСП подсистемы охватывают такие области, как

  • Администрирование пользователей и прав доступа;
  • Средства администрирования и обслуживания (установка обновлений, резервное копирование, дополнительные отчеты и обработки, оценка производительности и др.);
  • Сервисные подсистемы (история изменений объектов, заметки и напоминания, печать, полнотекстовый поиск, присоединенные файлы, электронная подпись и др.);
  • Технологические механизмы и программные интерфейсы (процедуры и функции общего назначения, обновление версии ИБ, работа в модели сервиса и др.);
  • Нормативно-справочная информация и классификаторы (адресный классификатор, банки, валюты и др.);
  • Интеграция с другими программами и системами (обмен данными, работа с почтовыми сообщениями, отправка SMS, рассылка отчетов и др.);
  • Прикладные подсистемы и рабочие места пользователей (анкетирование, бизнес-процессы и задачи, взаимодействия, варианты отчетов и др.).

Всего в БСП входит более 60 подсистем. Полный состав подсистем, их назначение, порядок внедрения и рекомендации по использованию приведены в документации к библиотеке (http://its.1c.ru/db/bspdoc).

Вместе с подсистемами БСП предлагает и отдельные методики разработки прикладных решений, которые описаны в документации к библиотеке. С использованием БСП значительно легче вести разработку конфигураций, соответствующим всем требованиям "Системы стандартов и методик разработки конфигураций для платформы "1С:Предприятие 8" (http://its.1c.ru/db/v8std).

Кроме того, для администраторов и специалистов по внедрению прикладных решений в составе БСП поставляются внешние обработки, которые можно использовать автономно без БСП для решения ряда административных и "ремонтных" задач: консоль запросов, групповое изменение объектов, регистрация изменений на узлах планов обмена, скрытие конфиденциальной информации и др.

Порядок перехода с предыдущей версии

Редакция 3.0 предоставляется зарегистрированным пользователям системы "1С:Предприятие", имеющим действующую подписку на "Информационно-технологическое сопровождение" (ИТС).

Версия 3.0.1 совместима с версией платформы 8.3.12 с отключенным режимом совместимости. Общий порядок обновления подсистем БСП, используемых в конфигурациях, до данной версии приведен в документации (http://its.1c.ru/db/bspdoc). Особенности обновления с предыдущих версий описаны в файле UpdateSSL.htm, входящем к комплект поставки (в каталоге \ExtFiles\Docs). При обновлении "через" несколько версий, необходимо отработать инструкции разделов Переход с предыдущих версий файла UpdateSSL.htm последовательно для всех предыдущих версий библиотеки.

Для обновления версий БСП в прикладных решениях рекомендуется использовать специализированные инструменты, входящие в дистрибутив библиотеки:

  • ExtFiles\ПервоеВнедрениеБСП.epf – внешняя обработка для упрощения процесса первого внедрения библиотеки в прикладную конфигурацию. Позволяет выбрать подсистемы для внедрения с учетом их зависимостей друг от друга и сохранить настройки для сравнения-объединения с помощью конфигуратора. Также с ее помощью можно выполнить удаление избыточных фрагментов кода подсистем, которые не используются в конфигурации.
  • ExtFiles\Инструменты разработчика\ПереходНаВерсию301.epf – внешняя обработка по автоматизации ряда массовых операций при переводе конфигурации на библиотеку версии 3.0.1, которые указаны в разделе Переход с предыдущих версий файла UpdateSSL.htm. Запускается в информационной базе после обновления метаданных библиотеки в прикладной конфигурации. При работе с хранилищем конфигурации обработку рекомендуется запускать на копии информационной базы и затем загружать обратно с помощью сравнения-объединения.
  • ExtFiles\ПроверкаВнедренияБСП.erf – внешний отчет, предназначенный для запуска в информационной базе после внедрения или обновления метаданных библиотеки в прикладной конфигурации. Выявляет распространенные проблемы внедрения библиотеки в конфигурации, в частности, проверяет корректность заполнения состава определяемых типов, наличие необходимых вставок кода в модулях.
  • ExtFiles\ОбновлениеНаИсправительнуюВерсиюБСП.epf – внешняя обработка для обновления конфигурации на новые исправительные релизы библиотеки. Она позволяет существенно сэкономить время при регулярных (например, еженедельных) обновлениях. Исправительные релизы библиотеки отличаются только четвертой цифрой в полном номере версии, например: 2.4.1.1, 2.4.1.2, 2.4.1.10 и т.п. Ее необходимо запускать в информационной базе с конфигурацией, содержащей предыдущий релиз библиотеки. Нажать на кнопку Обновить на исправительную версию, указав файл 1Cv8.cf новой версии библиотеки из комплекта поставки. При этом выполняется автоматическое сравнение/объединение с новой конфигурацией библиотеки согласно настройкам, которые соответствуют документации: будут перенесены все поставляемые объекты библиотеки, а переопределяемые при внедрении – объединены с приоритетом конфигурации поставщика (например, определяемые типы) или пропущены (как например, переопределяемые модули). После сравнения/объединения конфигурация базы данных не будет обновлена автоматически, что позволяет выполнить сравнение с конфигурацией базы данных и внести правки в измененные объекты: переопределяемые модули, различные локальные исправления и доработки. После обновления необходимо дополнительно выполнить инструкции из раздела Переход с тестовых версий или Переход с предыдущих версий документа UpdateSSL.htm, если они указаны. Кроме того, в качестве альтернативного варианта, по кнопке Сформировать файл настроек предусмотрена возможность сформировать настройки, которые затем можно загрузить в конфигураторе для ручного сравнения-объединения. Однако при обновлении на новые функциональные релизы (изменение третьей цифры) расстановку флажков в окне сравнения-объединения необходимо выполнять, как и ранее, в конфигураторе, следуя инструкциям в главе 2 документации.

Версия 3.0.1.204

Исправление выявленных ошибок.

Версии 3.0.1.114

Финальная версия.

Новый расчетный механизм прав в подсистеме "Управление доступом" публикуется в ознакомительном виде: для предварительного встраивания в конфигурации и библиотеки.