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