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