Поставка ext_service.cf (8.3.24.1467)
- включает пример установки индивидуального разрешения на доступ к внешнему сервису Обработа.демоРазрешенияВнешнихСервисов
При разработке и поддержке информационной системы в какой-то момент приходит понимание, что в ней присутствует отдельный класс данных которые условно можно назвать настройки взаимодействия с внешними сервисами/ресурсами и если бы мы разрабатывали систему с нуля, то могли бы разделить ее данные и на логическом и на физическом уровне на разные классы
- настроечные данные, которые являются специфичными для разных контуров ИС (например прод, тест, разработка)
- бизнес данные, которые можно копировать между контурами ИС (например ежедневная копия прод->тест)

К сожалению привычная для нас в 1С ситуация что все данные хранятся в одной ИБ и копирование из продуктового контура в тестовый связано с решением проблем
- блокировка доступа к внешними ресурсами предназначенным для продуктового контура
- настройка доступа к внешним ресурсам предназначенным для тестового контура

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