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