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