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