Журнал проводок (регламентированный учет) / Форма списка / Модуль формы

файл

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

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

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

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

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

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

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

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

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

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

&НаКлиенте
Процедура ПереключитьАктивностьПроводок(Команда)
	
	ТекДокумент = ПолучитьДокумент();
	
	Если ТекДокумент <> Неопределено Тогда
		
		ПереключитьАктивностьПроводокСервер(ТекДокумент);
		
	КонецЕсли;
	
КонецПроцедуры

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

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

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

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

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

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

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

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

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