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