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