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