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