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