Данные узлов 1С:Документооборота / Модуль менеджера

файл
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда

#Область ПрограммныйИнтерфейс

// Получает данные определенного узла 1С:Документооборота.
//
// Параметры:
//   ИдентификаторУзла - Строка - идентификатор узла.
//
// Возвращаемое значение:
//   см. РегистрыСведений.ДанныеУзлов1СДокументооборота.НовыеДанныеУзла
//
Функция ДанныеУзла(ИдентификаторУзла) Экспорт
	
	ДанныеУзла = ДанныеУзлов()[ИдентификаторУзла];
	Если ДанныеУзла = Неопределено Тогда
		ДанныеУзла = НовыеДанныеУзла();
	КонецЕсли;
	
	Возврат ДанныеУзла;
	
КонецФункции

// Получает данные всех узлов 1С:Документооборота.
//
// Возвращаемое значение:
//   Соответствие из КлючИЗначение:
//     * Ключ - Строка - идентификатор узла.
//     * Значение - см. РегистрыСведений.ДанныеУзлов1СДокументооборота.НовыеДанныеУзла
//
Функция ДанныеУзлов() Экспорт
	
	Результат = Новый Соответствие;
	
	Запрос = Новый Запрос(
		"ВЫБРАТЬ
		|	ДанныеУзлов1СДокументооборота.ИдентификаторУзла КАК ИдентификаторУзла,
		|	ДанныеУзлов1СДокументооборота.АдресВебСервиса КАК АдресВебСервиса,
		|	ДанныеУзлов1СДокументооборота.АдресХостаВнешнихНавигационныхСсылок,
		|	ДанныеУзлов1СДокументооборота.ТипРасположенияХостаВнешнихНавигационныхСсылок
		|ИЗ
		|	РегистрСведений.ДанныеУзлов1СДокументооборота КАК ДанныеУзлов1СДокументооборота");
	Выборка = Запрос.Выполнить().Выбрать();
	
	Пока Выборка.Следующий() Цикл
		ДанныеУзла = НовыеДанныеУзла();
		ДанныеУзла.АдресВебСервиса = Выборка.АдресВебСервиса;
		ДанныеУзла.АдресХостаВнешнихНавигационныхСсылок = Выборка.АдресХостаВнешнихНавигационныхСсылок;
		ДанныеУзла.ТипРасположенияХостаВнешнихНавигационныхСсылок =
			Выборка.ТипРасположенияХостаВнешнихНавигационныхСсылок;
		Результат.Вставить(Выборка.ИдентификаторУзла, ДанныеУзла);
	КонецЦикла;
	
	Возврат Результат;
	
КонецФункции

// Удаляет все данные узла, а также очищает все установленные соответствия пользователей данному узлу.
//
// Параметры:
//   ИдентификаторУзла - Строка - идентификатор узла.
//
Процедура ДеактивироватьУзел(ИдентификаторУзла) Экспорт
	
	НачатьТранзакцию();
	
	Попытка
		
		Запись = СоздатьМенеджерЗаписи();
		Запись.ИдентификаторУзла = ИдентификаторУзла;
		Запись.Удалить();
		
		Запрос = Новый Запрос(
			"ВЫБРАТЬ
			|	СоответствиеПользователейУзлам1СДокументооборота.Пользователь КАК Пользователь
			|ИЗ
			|	РегистрСведений.СоответствиеПользователейУзлам1СДокументооборота КАК СоответствиеПользователейУзлам1СДокументооборота
			|ГДЕ
			|	СоответствиеПользователейУзлам1СДокументооборота.ИдентификаторУзла = &ИдентификаторУзла");
		Запрос.УстановитьПараметр("ИдентификаторУзла", ИдентификаторУзла);
		Выборка = Запрос.Выполнить().Выбрать();
		
		Пока Выборка.Следующий() Цикл
			РегистрыСведений.СоответствиеПользователейУзлам1СДокументооборота.ОчиститьПривязку(Выборка.Пользователь);
		КонецЦикла;
		
		ЗафиксироватьТранзакцию();
		
	Исключение
		
		ОтменитьТранзакцию();
		
		ИнтеграцияС1СДокументооборотБазоваяФункциональность.ЗаписатьОшибку(
			ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()),
			НСтр("ru = 'Деактивация узла'"));
		
		ВызватьИсключение ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке());
		
	КонецПопытки;
	
КонецПроцедуры

// Определяет, настроено ли использование узлов 1С:Документооборота редакции Холдинг.
//
// Возвращаемое значение:
//   Булево
//
Функция ИспользуютсяУзлыХолдинга() Экспорт
	
	Возврат (ДанныеУзлов().Количество() > 0);
	
КонецФункции

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

// Записывает данные узла 1С:Документооборота в информационную базу.
//
// Параметры:
//   ИдентификаторУзла - Строка - идентификатор узла.
//   ДанныеУзла - см. РегистрыСведений.ДанныеУзлов1СДокументооборота.НовыеДанныеУзла
//
Процедура УстановитьДанныеУзла(ИдентификаторУзла, ДанныеУзла) Экспорт
	
	НаборЗаписей = СоздатьНаборЗаписей();
	НаборЗаписей.Отбор.ИдентификаторУзла.Установить(ИдентификаторУзла);
	
	Запись = НаборЗаписей.Добавить();
	Запись.ИдентификаторУзла = ИдентификаторУзла;
	Запись.АдресВебСервиса = ДанныеУзла.АдресВебСервиса;
	Запись.АдресХостаВнешнихНавигационныхСсылок = ДанныеУзла.АдресХостаВнешнихНавигационныхСсылок;
	Запись.ТипРасположенияХостаВнешнихНавигационныхСсылок = ДанныеУзла.ТипРасположенияХостаВнешнихНавигационныхСсылок;
	
	НаборЗаписей.Записать();
	
КонецПроцедуры

#КонецОбласти

#КонецЕсли

Связанные материалы