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