Направления деятельности / Форма элемента / Модуль формы

файл

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

&НаКлиенте
Перем ОбновитьИнтерфейс;

&НаКлиенте
Перем ОбъектЗаписан;

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

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

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

	Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа.
		Возврат;
	КонецЕсли;

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

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

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

&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
	
	ПриЧтенииСоздании();
	УправлениеСвойствами.ПриЧтенииНаСервере(ЭтаФорма, ТекущийОбъект);

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

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

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

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

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

&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
	
	ОбъектЗаписан = Истина;
	
КонецПроцедуры

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

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

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

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

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

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

&НаКлиенте
Процедура ВнеоборотныеАктивыПриИзменении(Элемент)
	
	ОбновитьИнтерфейс = Истина;
	
КонецПроцедуры

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

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

&НаКлиенте
Процедура Подключаемый_ПриИзмененииРеквизитаЛокализации(Элемент)
	
	НаправленияДеятельностиКлиентЛокализация.ПриИзмененииРеквизита(Элемент.Имя, ЭтаФорма);
	
КонецПроцедуры

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

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

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

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

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

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

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

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

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

&НаКлиенте
Процедура Подключаемый_ВыполнитьКомандуЛокализации(Команда)
	
	НаправленияДеятельностиКлиентЛокализация.ВыполнитьКоманду(ТекущийЭлемент.Имя, ЭтаФорма);
	
КонецПроцедуры

&НаКлиенте
Процедура ПродолжитьВыполнениеКомандыЛокализации(ИмяКоманды, Параметры) Экспорт
	
	Если Параметры.ТребуетсяВызовСервера Тогда
		ВыполнитьКомандуЛокализацииНаСервере(ИмяКоманды);
	КонецЕсли;
	
КонецПроцедуры

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

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

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

// СтандартныеПодсистемы.Свойства

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

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

// Конец СтандартныеПодсистемы.Свойства

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

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

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

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

&НаКлиентеНаСервереБезКонтекста
Процедура НастроитьДоступностьЭлементов(Форма)

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

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

	//-- НЕ УТ
	Возврат;

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

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

	Если Результат = Истина Тогда
		НастроитьДоступностьЭлементов(ЭтотОбъект);
	КонецЕсли;

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

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

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