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