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