mirror of
https://github.com/firstBitSportivnaya/PSSL.git
synced 2025-08-10 22:21:34 +02:00
Добавлена очистка основных реквизитов настроек интеграции (#292)
* Добавлена очистка основных реквизитов настроек интеграции
This commit is contained in:
@@ -113,11 +113,23 @@
|
||||
|
||||
КонецПроцедуры
|
||||
```
|
||||
|
||||
Идентификатор настройки каждого объекта должен быть уникальным в рамках одного типа метаданных.
|
||||
После инициализации и заполнения предопределенных элементов в коде, необходимо зайти в пользовательский режим в формы списков соответствующих справочников и нажать на кнопку "Заполнить предопределенные" в следующей последовательности: интегрируемые системы, настройки интеграции, интеграционные потоки:
|
||||
|
||||

|
||||
|
||||
Для тестовых баз рекомендуется очистка ключевых реквизитов настроек интеграции для исключения случайных срабатываний в регламентных заданиях и других процессах. Для этого при загрузке копии необходимо вызвать метод
|
||||
ОчиститьОсновныеРеквизитыНастроекИнтеграции() справочника пбп_НастройкиИнтеграции. Для систем на основании БСП можно расширить процедуру ЗапретитьРаботуСВнешнимиРесурсами из общей формы БлокировкаРаботыСВнешнимиРесурсами при помощи механизма расширений:
|
||||
|
||||
```bsl
|
||||
&НаСервереБезКонтекста
|
||||
&После("ЗапретитьРаботуСВнешнимиРесурсами")
|
||||
Процедура пбп_ЗапретитьРаботуСВнешнимиРесурсами()
|
||||
Справочники.пбп_НастройкиИнтеграции.ОчиститьОсновныеРеквизитыНастроекИнтеграции();
|
||||
КонецПроцедуры
|
||||
```
|
||||
|
||||
### Служебный программный интерфейс
|
||||
|
||||
Как видно из прошлого примера (заполнения предопределенных значений настройки интеграции), для поиска интегрируемой системы по идентификатору настройки вызывается метод общего модуля пбп_ИнтеграцииСлужебный. Помимо данной функции в этом модуле служебного программного интерфейса реализована следующая логика и методы:
|
||||
|
@@ -1 +1,107 @@
|
||||
|
||||
// Библиотека проектных подсистем для упрощения разработки архитектуры на 1С: Предприятие 8,
|
||||
// включая доработку типовых конфигураций.
|
||||
//
|
||||
// Copyright First BIT company
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//
|
||||
// URL: https://github.com/firstBitSportivnaya/PSSL/
|
||||
//
|
||||
|
||||
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
|
||||
|
||||
#Область ПрограммныйИнтерфейс
|
||||
|
||||
// Процедура очищает основные реквизиты настроек в справочнике, например для тестовых баз и т.д.
|
||||
Процедура ОчиститьОсновныеРеквизитыНастроекИнтеграции() Экспорт
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
Запрос.Текст =
|
||||
"ВЫБРАТЬ
|
||||
| пбп_НастройкиИнтеграции.Ссылка КАК Ссылка
|
||||
|ИЗ
|
||||
| Справочник.пбп_НастройкиИнтеграции КАК пбп_НастройкиИнтеграции
|
||||
|ГДЕ
|
||||
| НЕ пбп_НастройкиИнтеграции.ЭтоГруппа";
|
||||
|
||||
РезультатЗапроса = Запрос.Выполнить();
|
||||
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
|
||||
|
||||
ОчищаемыеРеквизиты = Новый Структура("СтрокаПодключения");
|
||||
КоллекцияОшибок = Новый Массив;
|
||||
|
||||
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
|
||||
|
||||
Попытка
|
||||
|
||||
НастройкаИнтеграцииОбъект = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект();
|
||||
ЗаполнитьЗначенияСвойств(НастройкаИнтеграцииОбъект, ОчищаемыеРеквизиты);
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
пбп_Переадресация.УдалитьДанныеИзБезопасногоХранилища(ВыборкаДетальныеЗаписи.Ссылка);
|
||||
УстановитьПривилегированныйРежим(Ложь);
|
||||
НастройкаИнтеграцииОбъект.ОбменДанными.Загрузка = Истина;
|
||||
НастройкаИнтеграцииОбъект.Записать();
|
||||
|
||||
Исключение
|
||||
|
||||
// Обеспечиваем отключение привилегированного режима при ошибке
|
||||
УстановитьПривилегированныйРежим(Ложь);
|
||||
|
||||
ИнформацияОбОшибке = ИнформацияОбОшибке();
|
||||
|
||||
// Собираем информацию об ошибке для последующего логирования
|
||||
ОписаниеОшибки = Новый Структура;
|
||||
ОписаниеОшибки.Вставить("Ссылка", ВыборкаДетальныеЗаписи.Ссылка);
|
||||
ОписаниеОшибки.Вставить("ПредставлениеДляПользователя",
|
||||
ОбработкаОшибок.ПредставлениеОшибкиДляПользователя(ИнформацияОбОшибке));
|
||||
ОписаниеОшибки.Вставить("ПодробноеОписание",
|
||||
ПодробноеПредставлениеОшибки(ИнформацияОбОшибке));
|
||||
|
||||
КоллекцияОшибок.Добавить(ОписаниеОшибки);
|
||||
|
||||
КонецПопытки;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
// Логирование результатов обработки
|
||||
Если КоллекцияОшибок.Количество() > 0 Тогда
|
||||
|
||||
ИмяСобытия = НСтр("ru = 'Очистка реквизитов настроек интеграции'");
|
||||
|
||||
ТекстОшибки = СтрШаблон("Обработано записей: %1, из них с ошибками: %2%3%3",
|
||||
ВыборкаДетальныеЗаписи.Количество(),
|
||||
КоллекцияОшибок.Количество(),
|
||||
Символы.ПС);
|
||||
|
||||
Для Каждого ОписаниеОшибки Из КоллекцияОшибок Цикл
|
||||
ТекстОшибки = ТекстОшибки + СтрШаблон("Настройка: %1%2%3%4%2",
|
||||
ОписаниеОшибки.Ссылка,
|
||||
Символы.ПС,
|
||||
ОписаниеОшибки.ПредставлениеДляПользователя,
|
||||
Символы.ПС + "Техническая информация: " + ОписаниеОшибки.ПодробноеОписание);
|
||||
КонецЦикла;
|
||||
|
||||
пбп_Переадресация.ДобавитьСообщениеДляЖурналаРегистрации(
|
||||
ИмяСобытия,
|
||||
УровеньЖурналаРегистрации.Ошибка,
|
||||
Метаданные.Справочники.пбп_НастройкиИнтеграции,
|
||||
ВыборкаДетальныеЗаписи.Ссылка,
|
||||
ТекстОшибки);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти // ПрограммныйИнтерфейс
|
||||
|
||||
#КонецЕсли
|
@@ -438,6 +438,56 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Аналог метода БСП. Удаляет конфиденциальные данные в безопасное хранилище.
|
||||
// Вызывающий код должен самостоятельно устанавливать привилегированный режим.
|
||||
//
|
||||
// Безопасное хранилище недоступно для чтения пользователям (кроме администраторов),
|
||||
// а доступно только коду, который делает обращения только к своей части данных и
|
||||
// в том контексте, который предполагает чтение или запись конфиденциальных данных.
|
||||
//
|
||||
// Параметры:
|
||||
// Владелец - ПланОбменаСсылка
|
||||
// - СправочникСсылка
|
||||
// - Строка - ссылка на объект информационной базы,
|
||||
// представляющий объект-владелец сохраняемого пароля или уникальная строка(до 128 символов).
|
||||
// - Массив - ссылки на объекты информационной базы для удаления данным по нескольким владельцам.
|
||||
// Ключи - Строка - содержит список имен удаляемых данных, указанных через запятую.
|
||||
// Неопределено - удаляет все данные.
|
||||
//
|
||||
// Пример:
|
||||
// Процедура ПередУдалением(Отказ)
|
||||
//
|
||||
// // Проверка значения свойства ОбменДанными.Загрузка отсутствует, так как удалять данные
|
||||
// // из безопасного хранилища нужно даже при удалении объекта при обмене данными.
|
||||
//
|
||||
// УстановитьПривилегированныйРежим(Истина);
|
||||
// ОбщегоНазначения.УдалитьДанныеИзБезопасногоХранилища(Ссылка);
|
||||
// УстановитьПривилегированныйРежим(Ложь);
|
||||
//
|
||||
// КонецПроцедуры
|
||||
//
|
||||
Процедура УдалитьДанныеИзБезопасногоХранилища(Знач Владелец, Знач Ключи = Неопределено) Экспорт
|
||||
|
||||
Результат = ПереадресацияМодуляОбщегоНазначения();
|
||||
Если Результат.МодульСуществует Тогда
|
||||
Результат.Модуль.УдалитьДанныеИзБезопасногоХранилища(Владелец, Ключи);
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
пбп_ПереадресацияКлиентСервер.Проверить(ЗначениеЗаполнено(Владелец),
|
||||
пбп_ПереадресацияКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Недопустимое значение параметра %1 в %2.
|
||||
|параметр должен содержать ссылку; передано значение: %3 (тип %4).'"),
|
||||
"Владелец", "ОбщегоНазначения.УдалитьДанныеИзБезопасногоХранилища", Владелец, ТипЗнч(Владелец)));
|
||||
|
||||
// Загулшка.
|
||||
// Перенаправление в хранилище общих настроек, не используется регистр сведений БезопасноеХранилищеДанных
|
||||
ХранилищеОбщихНастроекУдалить(Владелец, Ключи, Неопределено);
|
||||
Возврат;
|
||||
// Загулшка
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Аналог метода БСП. Формирует и выводит сообщение, которое может быть связано с элементом управления формы.
|
||||
//
|
||||
// В фоновом задании длительной операции, если вызов выполнен вне транзакции,
|
||||
@@ -667,8 +717,8 @@
|
||||
КлючНастроек,
|
||||
ИмяПользователя);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
// Аналог метода БСП. Возвращает структуру, содержащую значения реквизитов, прочитанные из информационной базы по ссылке на объект.
|
||||
|
Reference in New Issue
Block a user