Перем ИменаПараметров;

Процедура ПриОткрытии()
	
	ирКлиент.Форма_ПриОткрытииЛкс(ЭтаФорма);
	ЭтаФорма.АутентификацияСервера = ЗначениеЗаполнено(ИмяПользователя); 
	Если Не ЗначениеЗаполнено(ИмяБД) Тогда
		ЭтаФорма.ИмяБД = НСтр(СтрокаСоединенияИнформационнойБазы(), "Ref");
	КонецЕсли; 
	Если Не ЗначениеЗаполнено(ИмяСервера) Тогда
		ЭтаФорма.ИмяСервера = ирОбщий.ПервыйФрагментЛкс(НСтр(СтрокаСоединенияИнформационнойБазы(), "Srvr"), ":");
	КонецЕсли; 
	ОбновитьДоступность();
	
КонецПроцедуры

Процедура ОсновныеДействияФормыКнопкаОК(Кнопка = Неопределено)
	
	мПлатформа = ирКэш.Получить();
	#Если Сервер И Не Сервер Тогда
		 мПлатформа = Обработки.ирПлатформа.Создать();
	#КонецЕсли
	Если Ложь
		Или Не ЗначениеЗаполнено(ИмяСервера) 
		Или Не ЗначениеЗаполнено(ИмяБД) 
	Тогда 
		Ответ = Вопрос("Не заполнены обязательные параметры. Очистить и сохранить параметры?", РежимДиалогаВопрос.ОКОтмена);
		Если Ответ = КодВозвратаДиалога.ОК Тогда
			НовыеПараметры = Новый Структура(ИменаПараметров);
			ирОбщий.СохранитьПараметрыСоединенияСУБДЛкс(НовыеПараметры);
			мПлатформа.мПроверкаСоединенияADOЭтойБДВыполнялась = Ложь;
			Закрыть();
		КонецЕсли;
		Возврат;
	КонецЕсли; 
	Если ПроверитьСоединение() Тогда 
		НовыеПараметры = Новый Структура(ИменаПараметров);
		НовыеПараметры.ИмяСервера = ИмяСервера;
		НовыеПараметры.ИмяБД = ИмяБД;
		НовыеПараметры.ИмяПользователя = ИмяПользователя;
		НовыеПараметры.Пароль = Пароль;
		НовыеПараметры.НаСервере = НаСервере;
		НовыеПараметры.СобиратьТрассу = СобиратьТрассу;
		НовыеПараметры.ТипСУБД = ТипСУБД;
		ирОбщий.СохранитьПараметрыСоединенияСУБДЛкс(НовыеПараметры);
		мПлатформа.мПроверкаСоединенияADOЭтойБДВыполнялась = Истина;
		мПлатформа.ПроверочноеСоединениеЭтойСУБД = "Готов";
		Закрыть(Истина);
	КонецЕсли; 
	
КонецПроцедуры

Функция ПроверитьСоединение()
	
	Возврат ирОбщий.ПроверитьСоединениеЭтойСУБДЛкс(ИмяСервера, ИмяБД, ИмяПользователя, Пароль, НаСервере, Ложь,,, ТипСУБД);

КонецФункции

Процедура АутентификацияСервераПриИзменении(Элемент)
	
	ОбновитьДоступность();
	
КонецПроцедуры

Процедура ОбновитьДоступность()
	
	ЭлементыФормы.ИмяПользователя.Доступность = АутентификацияСервера;
	ЭлементыФормы.Пароль.Доступность = АутентификацияСервера;
	ЭлементыФормы.НаСервере.Доступность = Не ирКэш.ЛиПортативныйРежимЛкс();
	ЭлементыФормы.СобиратьТрассу.Доступность = ТипСУБД = "MSSQL";

КонецПроцедуры

Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
	
	ПараметрыСоединения = ирОбщий.ПараметрыСоединенияЭтойСУБДЛкс(ИменаПараметров);
	ЗаполнитьЗначенияСвойств(ЭтаФорма, ПараметрыСоединения, ИменаПараметров); 
	Если ирКэш.ЛиПортативныйРежимЛкс() Тогда
		ЭтаФорма.НаСервере = Ложь;
	КонецЕсли; 
	Если Не ЗначениеЗаполнено(ТипСУБД) Тогда
		ЭтаФорма.ТипСУБД = "MSSQL";
	КонецЕсли;
	Если Истина
		И ЗначениеЗаполнено(ИмяСервера) 
		И ЗначениеЗаполнено(ИмяБД) 
		И Автоподключение 
	Тогда
		Если ПроверитьСоединение() Тогда 
			Отказ = Истина;
		КонецЕсли; 
	КонецЕсли; 
	
КонецПроцедуры

Процедура КлсКомандаНажатие(Кнопка) Экспорт 
	ирКлиент.УниверсальнаяКомандаФормыЛкс(ЭтаФорма, Кнопка);
КонецПроцедуры

Процедура ПриЗакрытии()
	ирКлиент.Форма_ПриЗакрытииЛкс(ЭтаФорма);
КонецПроцедуры

Процедура ВнешнееСобытие(Источник, Событие, Данные) Экспорт
	
	ирКлиент.Форма_ВнешнееСобытиеЛкс(ЭтаФорма, Источник, Событие, Данные);

КонецПроцедуры

Процедура ТабличноеПолеПриПолученииДанных(Элемент, ОформленияСтрок) Экспорт 
	
	ирКлиент.ТабличноеПолеПриПолученииДанныхЛкс(ЭтаФорма, Элемент, ОформленияСтрок);

КонецПроцедуры

Процедура ТипСУБДПриИзменении(Элемент)
	ОбновитьДоступность();
КонецПроцедуры

ирКлиент.ИнициироватьФормуЛкс(ЭтаФорма, "Обработка.ирПлатформа.Форма.ПараметрыСоединенияСУБД");
ЭтаФорма.Автоподключение = Истина;
