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