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

файл

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

&НаКлиенте
Перем КэшРеквизитов;

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

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

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

	//++ Локализация
	УправлениеЭлементамиФормы();
	//-- Локализация

	//-- НЕ УТ
	
	ВерсионированиеОбъектов.ПриСозданииНаСервере(ЭтотОбъект);
	
КонецПроцедуры

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

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

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

&НаКлиенте
Процедура ПриОткрытии(Отказ)
	
	ОбновитьНадписьПериод();
	
	КэшРеквизитов = Новый Структура;
	КэшРеквизитов.Вставить("РегламентированныйУчет", Объект.РегламентированныйУчет);
	КэшРеквизитов.Вставить("УправленческийУчет", Объект.УправленческийУчет);
	//++ НЕ УТ

	//++ Локализация
	КэшРеквизитов.Вставить("НалоговыйУчет", Объект.НалоговыйУчет);
	//-- Локализация

	//-- НЕ УТ
	
	// СтандартныеПодсистемы.Свойства
	УправлениеСвойствамиКлиент.ПослеЗагрузкиДополнительныхРеквизитов(ЭтотОбъект);
	// Конец СтандартныеПодсистемы.Свойства
	
	// СтандартныеПодсистемы.ПодключаемыеКоманды
	ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
	// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
	
КонецПроцедуры

&НаСервере
Процедура ОбработкаПроверкиЗаполненияНаСервере(Отказ, ПроверяемыеРеквизиты)
	
	// СтандартныеПодсистемы.Свойства
	УправлениеСвойствами.ОбработкаПроверкиЗаполнения(ЭтотОбъект, Отказ, ПроверяемыеРеквизиты);
	// Конец СтандартныеПодсистемы.Свойства
	
КонецПроцедуры

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

&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)

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

	МодификацияКонфигурацииКлиентПереопределяемый.ПослеЗаписи(ЭтаФорма, ПараметрыЗаписи);

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

	Если Объект.Проведен Тогда

		ДокументПередачи = Объект.Ссылка;
		Состояние = ПредопределенноеЗначение("Перечисление.СостоянияРаспределенияРасходов.ГотовоКРаспределениюПоБазе");

	Иначе

		ДокументПередачи = Неопределено;
		Состояние = ПредопределенноеЗначение(
			"Перечисление.СостоянияРаспределенияРасходов.ТребуетсяСформироватьДокумент");

	КонецЕсли;

	Если Объект.УправленческийУчет Или КэшРеквизитов.УправленческийУчет Тогда

		Если Не Объект.УправленческийУчет И КэшРеквизитов.УправленческийУчет Тогда

			ПараметрыПередачи.Вставить("ДокументУпр", Неопределено);
			ПараметрыПередачи.Вставить("СостояниеУпр", ПредопределенноеЗначение(
				"Перечисление.СостоянияРаспределенияРасходов.ТребуетсяСформироватьДокумент"));

		Иначе

			ПараметрыПередачи.Вставить("ДокументУпр", ДокументПередачи);
			ПараметрыПередачи.Вставить("СостояниеУпр", Состояние);

		КонецЕсли;

	КонецЕсли;

	Если Объект.РегламентированныйУчет Или КэшРеквизитов.РегламентированныйУчет Тогда

		Если Не Объект.РегламентированныйУчет И КэшРеквизитов.РегламентированныйУчет Тогда

			ПараметрыПередачи.Вставить("ДокументРегл", Неопределено);
			ПараметрыПередачи.Вставить("СостояниеРегл", ПредопределенноеЗначение(
				"Перечисление.СостоянияРаспределенияРасходов.ТребуетсяСформироватьДокумент"));

		Иначе

			ПараметрыПередачи.Вставить("ДокументРегл", ДокументПередачи);
			ПараметрыПередачи.Вставить("СостояниеРегл", Состояние);

		КонецЕсли;

	КонецЕсли;
		
	//++ НЕ УТ

	//++ Локализация
	Если Объект.НалоговыйУчет Или КэшРеквизитов.НалоговыйУчет Тогда

		Если Не Объект.НалоговыйУчет И КэшРеквизитов.НалоговыйУчет Тогда

			ПараметрыПередачи.Вставить("ДокументНал", Неопределено);
			ПараметрыПередачи.Вставить("СостояниеНал", ПредопределенноеЗначение(
				"Перечисление.СостоянияРаспределенияРасходов.ТребуетсяСформироватьДокумент"));

		Иначе

			ПараметрыПередачи.Вставить("ДокументНал", ДокументПередачи);
			ПараметрыПередачи.Вставить("СостояниеНал", Состояние);

		КонецЕсли;

	КонецЕсли;
	//-- Локализация

	//-- НЕ УТ

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

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

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

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

#Область ОбработчикиСобытийПравилаРаспределения

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

	ПравилаРаспределенияКлиент.ОткрытьФормуНастройкиОтборов(ЭтотОбъект, ПараметрыОткрытия);

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

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

&НаКлиенте
Процедура ВидУчетаПриИзменении(Элемент)
	УстановитьДоступностьВидовУчета();
	//++ НЕ УТ

	//++ Локализация
	СинхронизироватьВидыУчетаБУиНУ(Элемент.Имя);
	//-- Локализация

	//-- НЕ УТ
КонецПроцедуры

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

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

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


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


&НаКлиенте
Процедура ПровестиДокумент(Команда)
	
	ОбщегоНазначенияУТКлиент.Провести(ЭтаФорма);
	
КонецПроцедуры

&НаКлиенте
Процедура ПровестиИЗакрыть(Команда)
	
	ОбщегоНазначенияУТКлиент.ПровестиИЗакрыть(ЭтаФорма);
	
КонецПроцедуры

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

#Область БСП

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

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

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

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

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

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

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

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

#Область Отборы

&НаКлиенте
Процедура РедактироватьСхемуКомпоновкиДанныхЗавершение(Результат, ДополнительныеПараметры) Экспорт

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

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

&НаСервере
Процедура ВосстановитьНастройкиКомпоновщика(ИмяРеквизитаСНастройками, ДокОбъект = Неопределено)
	
	МодификаторНастроек = СтрШаблон("%1Изменены", ИмяРеквизитаСНастройками);
	Если Не Объект[МодификаторНастроек] Тогда
		Возврат;
	КонецЕсли;

	Если ДокОбъект = Неопределено Тогда
		ДокОбъект = РеквизитФормыВЗначение("Объект");
	КонецЕсли;

	РеквизитСНастройкамиКомпоновщика = ДокОбъект[ИмяРеквизитаСНастройками]; // ХранилищеЗначения
	НастройкиКомпоновщика = РеквизитСНастройкамиКомпоновщика.Получить();
	Если Не НастройкиКомпоновщика = Неопределено Тогда
		ЭтаФорма[ИмяРеквизитаСНастройками].ЗагрузитьНастройки(НастройкиКомпоновщика);		
	КонецЕсли;

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

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

#Область БСП

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

&НаКлиенте
Процедура ОбновитьЗависимостиДополнительныхРеквизитов()
	УправлениеСвойствамиКлиент.ОбновитьЗависимостиДополнительныхРеквизитов(ЭтотОбъект);
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_ПриИзмененииДополнительногоРеквизита(Элемент)
	УправлениеСвойствамиКлиент.ОбновитьЗависимостиДополнительныхРеквизитов(ЭтотОбъект);
КонецПроцедуры

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

#Область УправлениеФормой

&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьВидимостьЭлементов(Форма)
	
	Элементы = Форма.Элементы;
	Элементы.ГруппаВидыУчета.Видимость = Не Форма.УТБазовая;
	
КонецПроцедуры

&НаСервере
Процедура УстановитьДоступностьВидовУчета()
	
	Документы.РаспределениеПрочихЗатрат.УстановитьДоступностьВидовУчета(ЭтаФорма);
	
КонецПроцедуры

&НаСервере
Процедура СинхронизироватьВидыУчетаБУиНУ(ВидУчета)
	
	Документы.РаспределениеПрочихЗатрат.СинхронизироватьВидыУчетаБУиНУ(ЭтаФорма, ВидУчета);
	
КонецПроцедуры

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

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

//++ Локализация

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

//++ НЕ УТ

//++ Локализация

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

//-- НЕ УТ

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

#Область ИнициализацияФормы

&НаСервере
Процедура ПриЧтенииСозданииНаСервере()

	ОпределитьВидимостьИСуммуРасходовПоСтатье();
	ЗаполнитьСлужебныеРеквизитыФормы();
	УстановитьВидимостьЭлементов(ЭтаФорма);
	//++ Локализация
	УстановитьВидимостьЭлементовПоФО();
	//-- Локализация
	НастроитьЗаголовкиПолей(ЭтаФорма);
	УстановитьДоступностьВидовУчета();
	
КонецПроцедуры

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

&НаСервере
Процедура УстановитьЗаголовокФормы()
	
	ПредставлениеОбъекта = Метаданные.Документы.РаспределениеПрочихЗатрат.Синоним;
	УточнениеПредставленияОбъекта = НСтр("ru = 'на себестоимость товаров'");
	
	Если Не ЗначениеЗаполнено(Объект.Ссылка) Тогда
		
		ШаблонЗаголовка = НСтр("ru = '%1 %2 (создание)'");
		Заголовок = СтрШаблон(ШаблонЗаголовка, ПредставлениеОбъекта, УточнениеПредставленияОбъекта);
		
	Иначе
		
		ШаблонЗаголовка = НСтр("ru = '%1 %2 №%3 от %4'");
		Заголовок = СтрШаблон(ШаблонЗаголовка, ПредставлениеОбъекта, 
								УточнениеПредставленияОбъекта,
								Объект.Номер,
								Формат(Объект.Дата, "ДЛФ=DT"));
		
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Процедура ОбновитьНадписьПериод()

	НадписьПериод = ПредставлениеПериода(НачалоМесяца(Объект.Дата), КонецМесяца(Объект.Дата), "ДЛФ=D");
	
КонецПроцедуры

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

#Область Прочее

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

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

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

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

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