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