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