Ввод начальных остатков / Форма прочие расходы / Модуль формы

файл
#Область ОписаниеПеременных

&НаКлиенте
Перем КэшированныеЗначения; //используется механизмом обработки изменения реквизитов ТЧ

#КонецОбласти

#Область ОбработчикиСобытийФормы

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

	УстановитьУсловноеОформление();
	
	// Пропускаем инициализацию, чтобы гарантировать получение формы при передаче параметра "АвтоТест".
	Если Параметры.Свойство("АвтоТест") Тогда
		Возврат;
	КонецЕсли;
	
	ИспользоватьУчетПрочихРасходов = ПолучитьФункциональнуюОпцию("ИспользоватьУчетПрочихДоходовРасходов");
	Если НЕ ИспользоватьУчетПрочихРасходов Тогда
		Возврат;
	КонецЕсли;
	
	Если Не ЗначениеЗаполнено(Объект.Ссылка) Тогда
		ПриЧтенииСозданииНаСервере();
	КонецЕсли;
	
	ИспользуетсяНесколькоОрганизаций = ПолучитьФункциональнуюОпцию("ИспользоватьНесколькоОрганизаций");
	Если Не (ИспользуетсяНесколькоОрганизаций ИЛИ ЗначениеЗаполнено(Объект.Организация)) Тогда
		Объект.Организация = ЗначениеНастроекПовтИсп.ПолучитьОрганизациюПоУмолчанию();
	КонецЕсли;
	
	ВалютаУправленческогоУчета = Константы.ВалютаУправленческогоУчета.Получить();
	ВалютаРегламентированногоУчета = ЗначениеНастроекПовтИсп.ВалютаРегламентированногоУчетаОрганизации(Объект.Организация);
	ВалютаСтр = Строка(ВалютаУправленческогоУчета);
	КоэффициентПересчетаИзВалютыУпрВРегл = КоэффициентПересчета(ВалютаУправленческогоУчета, ВалютаРегламентированногоУчета, Объект.Дата);
	
	СтрокаЗаголовка = "%1 (%2)";
	ЗаголовокСумма = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СтрокаЗаголовка, НСтр("ru = 'Сумма'"), ВалютаСтр);
	Элементы.ПрочиеРасходыСумма.Заголовок = ЗаголовокСумма;
	ЗаголовокСумма = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СтрокаЗаголовка, НСтр("ru = 'Сумма без НДС'"), ВалютаСтр);
	Элементы.ПрочиеРасходыСуммаБезНДС.Заголовок = ЗаголовокСумма;
	ЗаголовокНДС = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СтрокаЗаголовка, НСтр("ru = 'НДС'"), ВалютаСтр);
	Элементы.ПрочиеРасходыСуммаНДС.Заголовок = ЗаголовокНДС;
		
	УстановитьДоступностьКомандБуфераОбмена();
	
	СобытияФорм.ПриСозданииНаСервере(ЭтаФорма, Отказ, СтандартнаяОбработка);
	
	ПараметрыВыбораСтатейИАналитик = Документы.ВводОстатков.ПараметрыВыбораСтатейИАналитик(Объект.ХозяйственнаяОперация);
	ДоходыИРасходыСервер.ПриСозданииНаСервере(ЭтотОбъект, ПараметрыВыбораСтатейИАналитик);
	
	ИсправлениеДокументов.ПриСозданииНаСервере(ЭтаФорма, Элементы.СтрокаИсправление);
	
	// СтандартныеПодсистемы.ПодключаемыеКоманды
	ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
	// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
	
	ВерсионированиеОбъектов.ПриСозданииНаСервере(ЭтотОбъект);
	
КонецПроцедуры

&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
	
	ИсправлениеДокументов.ПриЧтенииНаСервере(ЭтаФорма, Элементы.СтрокаИсправление);
	
	// СтандартныеПодсистемы.УправлениеДоступом
	УправлениеДоступом.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
	// Конец СтандартныеПодсистемы.УправлениеДоступом
	
	// Обработчик механизма "ДатыЗапретаИзменения"
	ДатыЗапретаИзменения.ОбъектПриЧтенииНаСервере(ЭтаФорма, ТекущийОбъект);
	
	ПриЧтенииСозданииНаСервере();
	
	СтруктураДействий = Новый Структура;
	СтруктураДействий.Вставить("ЗаполнитьПризнакПринимаетсяКНУ");
	СтруктураДействий.Вставить("ПересчитатьСуммуНУ");
	
	ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьТЧ(Объект.ПрочиеРасходы, СтруктураДействий);
	
	ПараметрыВыбораСтатейИАналитик = Документы.ВводОстатков.ПараметрыВыбораСтатейИАналитик(ТекущийОбъект.ХозяйственнаяОперация);
	ДоходыИРасходыСервер.ПриЧтенииНаСервере(ЭтотОбъект, ПараметрыВыбораСтатейИАналитик);
	
	// СтандартныеПодсистемы.ПодключаемыеКоманды
	ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
	// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
КонецПроцедуры

&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
	
	ПараметрыЗаписи.Вставить("ХозяйственнаяОперация", Объект.ХозяйственнаяОперация);
	Оповестить("Запись_ВводОстатков", ПараметрыЗаписи, Объект.Ссылка);
	
	// СтандартныеПодсистемы.ПодключаемыеКоманды
	Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда
		МодульПодключаемыеКомандыКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ПодключаемыеКомандыКлиент");
		МодульПодключаемыеКомандыКлиент.ПослеЗаписи(ЭтотОбъект, Объект, ПараметрыЗаписи);
	КонецЕсли;
	// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
	
	ИсправлениеДокументовКлиент.ПослеЗаписи(Объект);
	
КонецПроцедуры

&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
	
	Если ИмяСобытия = "КопированиеСтрокВБуферОбмена" Тогда
		
		УстановитьДоступностьКомандБуфераОбменаНаКлиенте();
		
	КонецЕсли;
	
	ИсправлениеДокументовКлиент.ОбработкаОповещения(ЭтаФорма, ИмяСобытия, Параметр, Источник);
	
КонецПроцедуры

&НаСервере
Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)
	
	УстановитьЗаголовок();
	СтруктураДействий = Новый Структура;
	СтруктураДействий.Вставить("ЗаполнитьПризнакПринимаетсяКНУ");
	СтруктураДействий.Вставить("ПересчитатьСуммуНУ");
	
	ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьТЧ(Объект.ПрочиеРасходы, СтруктураДействий);
	
	ДоходыИРасходыСервер.ПослеЗаписиНаСервере(ЭтотОбъект);
	
	// СтандартныеПодсистемы.УправлениеДоступом
	Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда
		МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом");
		МодульУправлениеДоступом.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи);
	КонецЕсли;
	// Конец СтандартныеПодсистемы.УправлениеДоступом
	
КонецПроцедуры

&НаКлиенте
Процедура ПриОткрытии(Отказ)
	
	// СтандартныеПодсистемы.ПодключаемыеКоманды
	ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
	// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
	
КонецПроцедуры

#КонецОбласти

#Область ОбработчикиСобытийЭлементовШапкиФормы

&НаКлиенте
Процедура СтрокаИсправлениеОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
	
	ИсправлениеДокументовКлиент.СтрокаИсправлениеОбработкаНавигационныйСсылки(ЭтотОбъект, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка);
	
КонецПроцедуры

&НаКлиенте
Процедура ОрганизацияПриИзменении(Элемент)
	
	ОрганизацияПриИзмененииСервер();
	
КонецПроцедуры

&НаКлиенте
Процедура ДатаПриИзменении(Элемент)
	
	ДатаПриИзмененииСервер();
	УстановитьВидимость();
	
КонецПроцедуры

&НаКлиенте
Процедура ОтражатьВОперативномУчетеПриИзменении(Элемент)
	УстановитьВидимость();
КонецПроцедуры

&НаКлиенте
Процедура ОтражатьСебестоимостьПриИзменении(Элемент)
	УстановитьВидимость();
КонецПроцедуры

&НаКлиенте
Процедура ОтражатьВБУиНУПриИзменении(Элемент)
	УстановитьВидимость();
КонецПроцедуры

&НаКлиенте
Процедура ОтражатьВУУПриИзменении(Элемент)
	УстановитьВидимость();
КонецПроцедуры

#КонецОбласти

#Область ОбработчикиСобытийЭлементовПодвалаФормы

&НаКлиенте
Процедура КомментарийНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
	
	ОбщегоНазначенияКлиент.ПоказатьФормуРедактированияКомментария(
		Элемент.ТекстРедактирования, 
		ЭтотОбъект, 
		"Объект.Комментарий");
	
КонецПроцедуры

#КонецОбласти

#Область ОбработчикиСобытийЭлементовТаблицыФормыПрочиеРасходы

&НаКлиенте
Процедура ПрочиеРасходыСтатьяРасходовПриИзменении(Элемент)
	
	СтрокаТаблицы = Элементы.ПрочиеРасходы.ТекущиеДанные;
	Если ЗначениеЗаполнено(СтрокаТаблицы.СтатьяРасходов) Тогда
		СтатьяПрочихРасходовПриИзмененииСервер(КэшированныеЗначения);
	Иначе
		СтрокаТаблицы.ПринимаетсяКНУ = Истина;
	КонецЕсли;
	
	ДоходыИРасходыКлиентСервер.СтатьяПриИзменении(ЭтотОбъект, Элемент);
	
КонецПроцедуры

&НаКлиенте
Процедура ПрочиеРасходыСтатьяРасходовНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
	ДоходыИРасходыКлиент.НачалоВыбораСтатьи(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецПроцедуры

&НаКлиенте
Процедура ПрочиеРасходыАналитикаРасходовНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
	
	СтрокаТаблицы = Элементы.ПрочиеРасходы.ТекущиеДанные;
	Если СтрокаТаблицы.АналитикаРасходовЗаказРеализация Тогда
		ДоходыИРасходыКлиент.НачалоВыбораАналитикиРасходов(ЭтотОбъект, Элемент, СтандартнаяОбработка);		
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Процедура ПрочиеРасходыАналитикаРасходовОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
	
	СтрокаТаблицы = Элементы.ПрочиеРасходы.ТекущиеДанные;
	Если ТипЗнч(ВыбранноеЗначение) = Тип("Структура") Тогда
		ЗаполнитьЗначенияСвойств(СтрокаТаблицы, ВыбранноеЗначение);
		СтандартнаяОбработка = Ложь;
		Модифицированность = Истина;
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Процедура ПрочиеРасходыАналитикаРасходовАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)
	
	Если ЗначениеЗаполнено(Текст) И Элементы.ПрочиеРасходы.ТекущиеДанные.АналитикаРасходовЗаказРеализация Тогда
		СтандартнаяОбработка = Ложь;
		ДоходыИРасходыКлиент.АвтоПодборАналитикиРасходов(ЭтотОбъект, Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка);		
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Процедура ПрочиеРасходыАналитикаРасходовОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка)
	
	Если ЗначениеЗаполнено(Текст) И Элементы.ПрочиеРасходы.ТекущиеДанные.АналитикаРасходовЗаказРеализация Тогда
		СтандартнаяОбработка = Ложь;
		ДоходыИРасходыКлиент.ОкончаниеВводаТекстаАналитикиРасходов(ЭтотОбъект, Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка);
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Процедура ПрочиеРасходыСуммаПриИзменении(Элемент)
	
	ТекущаяСтрока = Элементы.ПрочиеРасходы.ТекущиеДанные;

	СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Объект);
	СтруктураПересчетаСуммыРегл = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Объект);
	СтруктураПересчетаСуммыРегл.ЦенаВключаетНДС = Ложь;

	СтруктураДействий = Новый Структура;
	СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
	СтруктураДействий.Вставить("ПересчитатьСуммуБезНДС");
	СтруктураДействий.Вставить("ПересчитатьСуммуРегл", КоэффициентПересчетаИзВалютыУпрВРегл);
	СтруктураДействий.Вставить("ПересчитатьНДСРегл", СтруктураПересчетаСуммыРегл);
	Если ЗначениеЗаполнено(ТекущаяСтрока.СтатьяРасходов) Тогда
		СтруктураДействий.Вставить("ПересчитатьСуммуПР", КоэффициентПересчетаИзВалютыУпрВРегл);
	КонецЕсли;
	СтруктураДействий.Вставить("ПересчитатьСуммуНУ");
	СтруктураДействий.Вставить("ПересчитатьСуммуВР");
	
	ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);

КонецПроцедуры

&НаКлиенте
Процедура ПрочиеРасходыСтавкаНДСПриИзменении(Элемент)
	
	ТекущаяСтрока = Элементы.ПрочиеРасходы.ТекущиеДанные;

	СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Объект);
	СтруктураПересчетаСуммыРегл = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВСтрокеТЧ(Объект);
	СтруктураПересчетаСуммыРегл.ЦенаВключаетНДС = Ложь;

	СтруктураДействий = Новый Структура;
	СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
	СтруктураДействий.Вставить("ПересчитатьСуммуБезНДС");
	СтруктураДействий.Вставить("ПересчитатьСуммуРегл", КоэффициентПересчетаИзВалютыУпрВРегл);
	СтруктураДействий.Вставить("ПересчитатьНДСРегл", СтруктураПересчетаСуммыРегл);
	Если ЗначениеЗаполнено(ТекущаяСтрока.СтатьяРасходов) Тогда
		СтруктураДействий.Вставить("ПересчитатьСуммуПР", КоэффициентПересчетаИзВалютыУпрВРегл);
	КонецЕсли;
	СтруктураДействий.Вставить("ПересчитатьСуммуНУ");
	СтруктураДействий.Вставить("ПересчитатьСуммуВР");
	
	ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);

КонецПроцедуры

&НаКлиенте
Процедура ПрочиеРасходыСуммаРеглПриИзменении(Элемент)
	
	ТекущаяСтрока = Элементы.ПрочиеРасходы.ТекущиеДанные;
	Если ЗначениеЗаполнено(ТекущаяСтрока.СтатьяРасходов) Тогда
		СтруктураДействий = Новый Структура;
		СтруктураДействий.Вставить("ПересчитатьСуммуПР", КоэффициентПересчетаИзВалютыУпрВРегл);
		СтруктураДействий.Вставить("ПересчитатьСуммуНУ");
		СтруктураДействий.Вставить("ПересчитатьСуммуВР");
		ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Процедура ПрочиеРасходыСуммаНУПриИзменении(Элемент)
	ТекущаяСтрока = Элементы.ПрочиеРасходы.ТекущиеДанные;
	СтруктураДействий = Новый Структура;
	СтруктураДействий.Вставить("ПересчитатьСуммуВР");
	ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
КонецПроцедуры

&НаКлиенте
Процедура ПрочиеРасходыСуммаПРПриИзменении(Элемент)
	ТекущаяСтрока = Элементы.ПрочиеРасходы.ТекущиеДанные;
	СтруктураДействий = Новый Структура;
	Если ТекущаяСтрока.ПринимаетсяКНУ Тогда
		СтруктураДействий.Вставить("ПересчитатьСуммуНУ");
	КонецЕсли;
	СтруктураДействий.Вставить("ПересчитатьСуммуВР");
	ПакетнаяОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
КонецПроцедуры

#КонецОбласти

#Область ОбработчикиКомандФормы

// СтандартныеПодсистемы.ПодключаемыеКоманды
&НаСервере
Процедура ВыполнитьКомандуНаСервере(ПараметрыВыполнения)
	ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, ПараметрыВыполнения, Объект);
КонецПроцедуры


&НаКлиенте
Процедура Подключаемый_ПродолжитьВыполнениеКомандыНаСервере(ПараметрыВыполнения, ДополнительныеПараметры) Экспорт
	ВыполнитьКомандуНаСервере(ПараметрыВыполнения);
КонецПроцедуры


&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
	ПодключаемыеКомандыКлиент.НачатьВыполнениеКоманды(ЭтотОбъект, Команда, Объект);
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_ОбновитьКоманды()
	ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
КонецПроцедуры
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды

&НаКлиенте
Процедура ЗаполнитьПоОстаткам(Команда)
	Возврат;
КонецПроцедуры

&НаКлиенте
Процедура ВставитьСтроки(Команда)
	
	КоличествоСтрокДоВставки = Объект.ПрочиеРасходы.Количество();
	ПолучитьСтрокиИзБуфераОбмена();
	КоличествоВставленных = Объект.ПрочиеРасходы.Количество()-КоличествоСтрокДоВставки;
	РаботаСТабличнымиЧастямиКлиент.ОповеститьПользователяОВставкеСтрок(КоличествоВставленных);
	
КонецПроцедуры

&НаКлиенте
Процедура СкопироватьСтроки(Команда)
	
	Если РаботаСТабличнымиЧастямиКлиент.ВыбранаСтрокаДляВыполненияКоманды(Элементы.ПрочиеРасходы) Тогда
		СкопироватьСтрокиНаСервере();
		РаботаСТабличнымиЧастямиКлиент.ОповеститьПользователяОКопированииСтрок(Элементы.ПрочиеРасходы.ВыделенныеСтроки.Количество());
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_ВыполнитьПереопределяемуюКоманду(Команда)
	
	СобытияФормКлиент.ВыполнитьПереопределяемуюКоманду(ЭтаФорма, Команда);
	
КонецПроцедуры

#КонецОбласти

#Область СлужебныеПроцедурыИФункции

&НаСервере
Процедура УстановитьУсловноеОформление()
	
	УсловноеОформление.Элементы.Очистить();
	
	Элемент = УсловноеОформление.Элементы.Добавить();
	
	КомпоновкаДанныхКлиентСервер.ДобавитьОформляемоеПоле(Элемент.Поля, Элементы.Подразделение.Имя);
	
	КомпоновкаДанныхКлиентСервер.ДобавитьОтбор(Элемент.Отбор, "Объект.ХозяйственнаяОперация", Перечисления.ХозяйственныеОперации.ВводОстатковПрочихРасходов);

	Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Ложь);
	
		
	
КонецПроцедуры

&НаСервере
Процедура ПриЧтенииСозданииНаСервере()
	
	УстановитьВидимость();
	УстановитьЗаголовок();
	
КонецПроцедуры

&НаСервере
Процедура УстановитьЗаголовок()
	
	АвтоЗаголовок = Ложь;
	Заголовок = Документы.ВводОстатков.ЗаголовокДокументаПоТипуОперации(Объект.Ссылка,
																						  Объект.Номер,
																						  Объект.Дата,
																						  Объект.ХозяйственнаяОперация);
	
КонецПроцедуры

&НаСервере
Процедура УстановитьВидимость()
	
	ВидимостьГруппУчета = Документы.ВводОстатков.ВидимостьГруппУчета(Объект);
	
	
	Элементы.ГруппаВводОстатковПо.Видимость  = ВидимостьГруппУчета;
	Элементы.ОтражатьВБУиНУ.Видимость        = Ложь;
	Элементы.ОтражатьВУУ.Видимость           = Ложь;

		
	Элементы.ОтражатьСебестоимость.Видимость = РасчетСебестоимостиПовтИсп.ФормироватьДвиженияПоРегистрамСебестоимости(НачалоМесяца(Объект.Дата), Истина);
	
	Если НЕ ВидимостьГруппУчета Тогда
		
		// Если настройки видов учета недоступны, то документ можно отразить только в оперативном учете.
		Объект.ОтражатьВОперативномУчете = Истина;
		Объект.ОтражатьСебестоимость = Ложь;
		Объект.ОтражатьВБУиНУ = Ложь;
		Объект.ОтражатьВУУ = Ложь;
		
	КонецЕсли;
	
	ПараметрыУчетнойПолитики = НастройкиНалоговУчетныхПолитик.ДействующиеПараметрыНалоговУчетныхПолитикНаДату("УчетнаяПолитикаБухУчета",
		Объект.Организация,
		Объект.Дата);
		
	ПрименяетсяПБУ18 = Истина;
	ВедетсяУчетПостоянныхИВременныхРазниц = Истина;
	Если ПараметрыУчетнойПолитики <> Неопределено Тогда
		ПрименяетсяПБУ18 = ПараметрыУчетнойПолитики.ПрименяетсяПБУ18;
		ВедетсяУчетПостоянныхИВременныхРазниц = ПараметрыУчетнойПолитики.ВедетсяУчетПостоянныхИВременныхРазниц;
	КонецЕсли;
	
	Элементы.ПрочиеРасходыЗаполнитьПоОстаткам.Видимость = НЕ Объект.ОтражатьВОперативномУчете И НЕ Объект.ОтражатьСебестоимость И (Объект.ОтражатьВБУиНУ ИЛИ Объект.ОтражатьВУУ);
	
	ПоказыватьРеквизитыРеглУчета = Объект.ОтражатьВОперативномУчете ИЛИ Объект.ОтражатьСебестоимость ИЛИ Объект.ОтражатьВБУиНУ;
	Элементы.ПрочиеРасходыСуммаРегл.Видимость = ПоказыватьРеквизитыРеглУчета;
	Элементы.ПрочиеРасходыНДСРегл.Видимость = ПоказыватьРеквизитыРеглУчета;
	Элементы.ПрочиеРасходыСуммаНУ.Видимость = ПоказыватьРеквизитыРеглУчета;
	Элементы.ПрочиеРасходыСуммаПР.Видимость = ПоказыватьРеквизитыРеглУчета И ВедетсяУчетПостоянныхИВременныхРазниц;
	Элементы.ПрочиеРасходыСуммаВР.Видимость = ПоказыватьРеквизитыРеглУчета И ВедетсяУчетПостоянныхИВременныхРазниц;
	
	ПоказыватьРеквизитыУпрУчета = Объект.ОтражатьВОперативномУчете ИЛИ Объект.ОтражатьСебестоимость ИЛИ Объект.ОтражатьВУУ;
	Элементы.ПрочиеРасходыСумма.Видимость = ПоказыватьРеквизитыУпрУчета;
	Элементы.ПрочиеРасходыСуммаБезНДС.Видимость = ПоказыватьРеквизитыУпрУчета;
	Элементы.ПрочиеРасходыСуммаНДС.Видимость = ПоказыватьРеквизитыУпрУчета;
	
КонецПроцедуры

&НаСервереБезКонтекста
Функция КоэффициентПересчета(ВалютаУправленческогоУчета, ВалютаРегламентированногоУчета, ДатаДокумента)
	
	Возврат РаботаСКурсамиВалютУТ.ПолучитьКоэффициентПересчетаИзВалютыВВалюту(
											ВалютаУправленческогоУчета,
											ВалютаРегламентированногоУчета,
											?(ДатаДокумента = Дата(1,1,1), ТекущаяДатаСеанса(), ДатаДокумента));
	
КонецФункции

&НаСервере
Процедура ОрганизацияПриИзмененииСервер()

	ВалютаРегламентированногоУчета = ЗначениеНастроекПовтИсп.ВалютаРегламентированногоУчетаОрганизации(Объект.Организация);

	Если ЗначениеЗаполнено(Объект.Организация) Тогда
		ЗаполнитьНалогообложениеНДС();
		НалогообложениеНДСПриИзмененииСервер();
	КонецЕсли;
	УстановитьВидимость();

КонецПроцедуры

&НаСервере
Процедура ДатаПриИзмененииСервер()
	
		ЗаполнитьНалогообложениеНДС();
		НалогообложениеНДСПриИзмененииСервер();
	
КонецПроцедуры

&НаСервере
Процедура СтатьяПрочихРасходовПриИзмененииСервер(КэшированныеЗначения)
	
	СтрокаТаблицы = Объект.ПрочиеРасходы.НайтиПоИдентификатору(Элементы.ПрочиеРасходы.ТекущаяСтрока);
	
	СтруктураДействий = Новый Структура("ЗаполнитьПризнакПринимаетсяКНУ");
	ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьСтрокуТЧ(СтрокаТаблицы, СтруктураДействий, КэшированныеЗначения);
	ЗаполнитьСуммуПР(СтрокаТаблицы);
	
КонецПроцедуры

&НаСервере
Процедура ЗаполнитьСуммуПР(СтрокаТаблицы)

	Если НЕ СтрокаТаблицы.ПринимаетсяКНУ И ВедетсяУчетПостоянныхИВременныхРазниц Тогда
		СтрокаТаблицы.СуммаПР = СтрокаТаблицы.СуммаРегл;
	КонецЕсли;

КонецПроцедуры

#Область РаботаСБуферомОбмена

&НаСервере
Процедура СкопироватьСтрокиНаСервере()
	
	РаботаСТабличнымиЧастями.СкопироватьСтрокиВБуферОбмена(Объект.ПрочиеРасходы, Элементы.ПрочиеРасходы.ВыделенныеСтроки);
	
КонецПроцедуры

&НаСервере
Процедура ПолучитьСтрокиИзБуфераОбмена()
	
	Колонки = "НаправлениеДеятельности,СтатьяРасходов,АналитикаРасходов,Сумма,СуммаБезНДС,СуммаРегл,СуммаПР,СуммаВР";
	
	ТаблицаСтрок = РаботаСТабличнымиЧастями.СтрокиИзБуфераОбмена(, Колонки);
	
	Если Не ЗначениеЗаполнено(ТаблицаСтрок) Тогда
		Возврат;
	КонецЕсли;
	
	Для Каждого Строка Из ТаблицаСтрок Цикл
		ТекущаяСтрока = Объект.ПрочиеРасходы.Добавить();
		ЗаполнитьЗначенияСвойств(ТекущаяСтрока, Строка);
	КонецЦикла;

КонецПроцедуры

&НаСервере
Процедура УстановитьДоступностьКомандБуфераОбмена()
	
	МассивЭлементов = Новый Массив();
	МассивЭлементов.Добавить("ПрочиеРасходыВставитьСтроки");
	МассивЭлементов.Добавить("ПрочиеРасходыКонтекстноеМенюВставитьСтроки");
	
	ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементовФормы(Элементы, МассивЭлементов, "Доступность",
		РаботаСТабличнымиЧастями.ЕстьСтрокиВБуфереОбмена());
	
КонецПроцедуры

&НаКлиенте
Процедура УстановитьДоступностьКомандБуфераОбменаНаКлиенте()
	
	МассивЭлементов = Новый Массив();
	МассивЭлементов.Добавить("ПрочиеРасходыВставитьСтроки");
	МассивЭлементов.Добавить("ПрочиеРасходыКонтекстноеМенюВставитьСтроки");
	
	ОбщегоНазначенияУТКлиентСервер.УстановитьСвойствоЭлементовФормы(Элементы, МассивЭлементов, "Доступность", Истина);
	
КонецПроцедуры

#КонецОбласти


&НаСервере
Процедура НалогообложениеНДСПриИзмененииСервер()
	
	СтруктураПересчетаСуммы = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВТЧ(Объект);
	СтруктураПересчетаСуммыРегл = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыПересчетаСуммыНДСВТЧ(Объект);
	СтруктураПересчетаСуммыРегл.ЦенаВключаетНДС = Ложь;

	СтруктураДействий = Новый Структура;
	СтруктураДействий.Вставить("ЗаполнитьСтавкуНДС", ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПараметрыЗаполненияСтавкиНДС(Объект));
	СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
	СтруктураДействий.Вставить("ПересчитатьСуммуБезНДС");
	СтруктураДействий.Вставить("ПересчитатьСуммуРегл", КоэффициентПересчетаИзВалютыУпрВРегл);
	СтруктураДействий.Вставить("ПересчитатьНДСРегл", СтруктураПересчетаСуммыРегл);
	СтруктураДействий.Вставить("ПересчитатьСуммуПР", КоэффициентПересчетаИзВалютыУпрВРегл);
	СтруктураДействий.Вставить("ПересчитатьСуммуВР");
	
	ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьТЧ(Объект.ПрочиеРасходы, СтруктураДействий, Неопределено);
	
КонецПроцедуры

&НаСервере
Процедура ЗаполнитьНалогообложениеНДС()
	
	ПараметрыУчетаПоОрганизации = УчетНДСУП.ПараметрыУчетаПоОрганизации(Объект.Организация, Объект.Дата);
	Объект.ВидДеятельностиНДС = ПараметрыУчетаПоОрганизации.ОсновноеНалогообложениеНДСПродажи;
	
КонецПроцедуры


#КонецОбласти

Связанные материалы