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

файл

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

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

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

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

&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
	
	ПриЧтенииСозданииНаСервере();

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

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

&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)

	Если Не ПолныеВозможности Тогда
		Объект.ВариантРаспределенияРасходовРегл = Объект.ВариантРаспределенияРасходовУпр;
		Объект.ПравилоРаспределенияРасходовРегл = Объект.ПравилоРаспределенияРасходовУпр;
		Объект.ВариантРаспределенияРасходовНУ = Объект.ВариантРаспределенияРасходовУпр;
		Объект.ПравилоРаспределенияРасходовНУ = Объект.ПравилоРаспределенияРасходовУпр;
	КонецЕсли;

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

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

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

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

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

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

&НаСервере
Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
	
	Если Отказ Тогда
		Возврат;
	КонецЕсли;
	
КонецПроцедуры

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

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

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

&НаКлиенте
Процедура ВариантРаспределенияРасходовУпрПолныеПриИзменении(Элемент)
	
	ВариантРаспределенияРасходовУпрПриИзмененииСервер();

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


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


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

&НаКлиенте
Процедура ВариантРаспределенияРасходовОбщПриИзменении(Элемент)

	ПривестиВариантыИПравилаКНастройкамУпр();
	ВариантРаспределенияРасходовРеглПриИзмененииСервер();
	ДополнитьСписокВидовАналитикРасходовЭлементамиЗависимымиОтВариантовРаспределения();
	УправлениеЭлементамиФормы();

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

&НаКлиенте
Процедура ПравилоРаспределенияРасходовОбщПриИзменении(Элемент)

	ПривестиВариантыИПравилаКНастройкамУпр();

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

&НаКлиенте
Процедура ПравилоРаспределенияРасходовУпрПолныеПриИзменении(Элемент)
	ПравилоРаспределенияРасходовУпрПолныеПриИзмененииНаСервере();
КонецПроцедуры

&НаКлиенте
Процедура ТипРасходовПриИзменении(Элемент)
	
	ТипРасходовПриИзмененииСервер(Элемент.Имя);
	
КонецПроцедуры

&НаКлиенте
Процедура ТипЗначенияПриИзменении(Элемент)
	
	ТипЗначенияПриИзмененииСервер(Элемент.Имя);
	
КонецПроцедуры

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

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

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

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

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

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

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

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

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

&НаКлиенте
Процедура ПризнаютсяВРасходахНДДПриИзменении(Элемент)
	УправлениеЭлементамиФормы();
КонецПроцедуры

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#Область ПриИзмененииРеквизитов

&НаСервере
Процедура ПрямыеКосвенныеПоНастройкамОтнесения()

	Объект.КосвенныеЗатратыНУ = Объект.ВариантРаспределенияРасходовНУ = Перечисления.ВариантыРаспределенияРасходов.НаНаправленияДеятельности;

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

&НаКлиенте
Процедура ГиперссылкаПрямыеКосвенныеНажатие(Элемент)

	ПолныеВозможности = Истина;
	УправлениеЭлементамиФормы();
	ЭтаФорма.ТекущийЭлемент = Элементы.ВариантРаспределенияРасходовНУПолные;
	Элементы.ГруппаСтраницы.ТекущаяСтраница = Элементы.ГруппаСтраницаОсновное; 
	 
КонецПроцедуры


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



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


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

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

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

&НаСервере
Процедура ВариантРаспределенияРасходовУпрПриИзмененииСервер()
	
	ОчиститьНедоступныеХозяйственныеОперации();
	
КонецПроцедуры

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


#Область Свойства

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

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

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

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

	//++ НЕ УТ
	Если Объект.ВариантРаспределенияРасходовРегл = Перечисления.ВариантыРаспределенияРасходов.НаРасходыБудущихПериодов 
	Тогда
		Правила.Вставить(Объект.ПравилоРаспределенияРасходовНУ);
	КонецЕсли;
	//-- НЕ УТ

	ПолныеВозможности = ПолныеВозможности ИЛИ Правила.Количество() > 1;
	
	//++ НЕ УТ
	ПолныеВозможности = ПолныеВозможности ИЛИ КоличествоНастроекПоОрганизациямПодразделениям > 0;
	//-- НЕ УТ
	
КонецПроцедуры

//++ НЕ УТ
&НаСервере
Процедура ЗаполнитьСписокВыбораБазРаспределенияПоПартиям()
	ПоддерживаемыеТипы = Перечисления.ТипыБазыРаспределенияРасходов.ТипыБазРаспределенияПрямыхРасходов();
	Элементы.БазаРаспределенияПоПартиямОбщ.СписокВыбора.ЗагрузитьЗначения(ПоддерживаемыеТипы);
	Элементы.БазаРаспределенияПоПартиямУпрПолные.СписокВыбора.ЗагрузитьЗначения(ПоддерживаемыеТипы);
	Элементы.БазаРаспределенияПоПартиямРеглПолные.СписокВыбора.ЗагрузитьЗначения(ПоддерживаемыеТипы);
КонецПроцедуры
//-- НЕ УТ

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

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

	//-- НЕ УТ
	
	
	Если Не ПолучитьФункциональнуюОпцию("ИспользоватьНеотфактурованныеПоставки")
	 И Не ПолучитьФункциональнуюОпцию("ИспользоватьТоварыВПутиОтПоставщиков") Тогда
		СписокИсключаемыхТипов.Добавить("ДокументСсылка.ПоступлениеТоваровНаСклад");
	КонецЕсли;
	
	
	Если Не ПолучитьФункциональнуюОпцию("ИспользоватьОтветственноеХранениеВПроцессеЗакупки") Тогда
		СписокИсключаемыхТипов.Добавить("ДокументСсылка.ВыкупПринятыхНаХранениеТоваров");
	КонецЕсли;
	
	Поле = Элементы.ТипЗначения;
	Для Каждого Элемент Из СписокИсключаемыхТипов Цикл
		ЭлементСписка = Поле.СписокВыбора.НайтиПоЗначению(Элемент.Значение);
		Если ЭлементСписка <> Неопределено И ТипЗначения <> Элемент.Значение Тогда
			Поле.СписокВыбора.Удалить(ЭлементСписка);
		КонецЕсли;
	КонецЦикла;
		
КонецПроцедуры

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

//++ НЕ УТ
&НаКлиенте
Процедура ОбновитьНадписьКоличествоНастроекПоОрганизациямПодразделениям()
	Элементы.НадписьНастроитьПравилаРаспределения.Заголовок = 
		ПолучитьНадписьКоличествоНастроекПоОрганизациямПодразделениям();
КонецПроцедуры
//-- НЕ УТ

//++ НЕ УТ
&НаСервере
Функция ПолучитьНадписьКоличествоНастроекПоОрганизациямПодразделениям()
	Если КоличествоНастроекПоОрганизациямПодразделениям > 0 Тогда
		Если ТекущийЯзык().КодЯзыка = "ru" Тогда
			Результат = СтрШаблон(
					НСтр("ru = '%1 %2 распределения по организациям и подразделениям'"),
					?(КоличествоНастроекПоОрганизациямПодразделениям % 10 = 1 
						И КоличествоНастроекПоОрганизациямПодразделениям % 100 <> 11,
						НСтр("ru = 'Задана'"), 
						НСтр("ru = 'Задано'")),
					ПолучитьСклоненияСтрокиПоЧислу(НСтр("ru = 'настройка'"), КоличествоНастроекПоОрганизациямПодразделениям,,"L=ru_RU;")[0]);
		Иначе
			Результат = СтрШаблон(
					НСтр("ru = 'Задано настроек распределения по организациям и подразделениям: %1'"), 
						КоличествоНастроекПоОрганизациямПодразделениям);
		КонецЕсли;
	Иначе
		Результат = НСтр("ru = 'Настроить правила распределения по организациям и подразделениям'");
	КонецЕсли;
	Возврат Результат;
КонецФункции
//-- НЕ УТ

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

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

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

	//++ Локализация
	СтатьиРасходовЛокализация.ПривестиВариантыИПравилаКНастройкамРегл(Объект);
	//-- Локализация

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

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

	ОпределитьИспользованиеПолныхВозможностей();

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

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

	// Вспомогательный тип для показа в форме статьи расходов типа аналитики "Объекты строительства (2.2)".
	// В метаданных такого типа нет.
	ИсключаемыеТипы.Добавить("СправочникСсылка.ОбъектыСтроительства22");
	//-- НЕ УТ
	СписокТиповЗначений = Элементы.ТипЗначения.СписокВыбора;
	Для Каждого ЭлементСписка Из СписокТиповЗначений Цикл
		Если ИсключаемыеТипы.Найти(ЭлементСписка.Значение) <> Неопределено Тогда
			Продолжить;
		КонецЕсли;
		Если ВыбранныйТипЗначения.СодержитТип(Тип(ЭлементСписка.Значение)) Тогда
			ТипЗначения = ЭлементСписка.Значение;
			//++ НЕ УТ
			Если ЭлементСписка.Значение = "СправочникСсылка.ОбъектыЭксплуатации"
			 И Объект.ВидЦенностиНДС = Перечисления.ВидыЦенностей.ОбъектыНезавершенногоСтроительства Тогда
				ТипЗначения = "СправочникСсылка.ОбъектыСтроительства22";
			КонецЕсли;
			//-- НЕ УТ
			Прервать;
		КонецЕсли;
	КонецЦикла;
	
КонецПроцедуры

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

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

&НаСервере
Процедура ЗаполнитьСписокВидовАналитикРасходов()
	
	СписокВыбора = Элементы.ТипЗначения.СписокВыбора;
	СписокВыбора.Очистить();
	
	Если Ложь Тогда
	//++ НЕ УТ
	ИначеЕсли Объект.Ссылка = ПредопределенноеЗначение("ПланВидовХарактеристик.СтатьиРасходов.ПроизводственныеРасходыПрошлыхПериодов") Тогда
		СписокВыбора.Добавить("СправочникСсылка.Номенклатура", 		НСтр("ru='Номенклатура'"));
	//-- НЕ УТ
	ИначеЕсли Объект.ТипРасходов = ПредопределенноеЗначение("Перечисление.ТипыРасходов.ЗакупкаТоваров") Тогда
		СписокВыбора.Добавить("ДокументСсылка.ЗаказПоставщику", 					НСтр("ru='Заказ поставщику'"));
		СписокВыбора.Добавить("ДокументСсылка.ПриобретениеТоваровУслуг", 			НСтр("ru='Приобретение товаров и услуг'"));
		СписокВыбора.Добавить("ДокументСсылка.ПоступлениеТоваровНаСклад", 					НСтр("ru='Поступление товаров'"));
		Если ЕстьВводОстатковСтарогоОбразца() Тогда
			СписокВыбора.Добавить("ДокументСсылка.ВводОстатков", 						НСтр("ru='Ввод остатков'"));
			СписокВыбора.Добавить("ДокументСсылка.ВводОстатковТоваров", 				НСтр("ru='Ввод остатков (2.5)'"));
		Иначе
			СписокВыбора.Добавить("ДокументСсылка.ВводОстатковТоваров", 				НСтр("ru='Ввод остатков'"));
		КонецЕсли;
		СписокВыбора.Добавить("ДокументСсылка.ПередачаТоваровМеждуОрганизациями", 	НСтр("ru='Передача товаров между организациями'"));
		СписокВыбора.Добавить("ДокументСсылка.ТаможеннаяДекларацияИмпорт", 			НСтр("ru='Таможенная декларация'"));
		Если ПолучитьФункциональнуюОпцию("ИспользоватьОтветственноеХранениеВПроцессеЗакупки") Тогда
			СписокВыбора.Добавить("ДокументСсылка.ВыкупПринятыхНаХранениеТоваров", 			НСтр("ru='Выкуп товаров с хранения'"));
		КонецЕсли;
		
	ИначеЕсли Объект.ТипРасходов = ПредопределенноеЗначение("Перечисление.ТипыРасходов.СкладскоеХранение") Тогда
		СписокВыбора.Добавить("СправочникСсылка.Склады", 			НСтр("ru='Склад (Место хранения)'"));
		СписокВыбора.Добавить("СправочникСсылка.Номенклатура", 		НСтр("ru='Номенклатура'"));
		СписокВыбора.Добавить("ДокументСсылка.ЗаказНаПеремещение", 	НСтр("ru='Заказ на перемещение'"));
		СписокВыбора.Добавить("ДокументСсылка.ПеремещениеТоваров", 	НСтр("ru='Перемещение товаров'"));
		СписокВыбора.Добавить("ДокументСсылка.ЗаказНаСборку", 		НСтр("ru='Заказ на сборку (разборку)'"));
		СписокВыбора.Добавить("ДокументСсылка.СборкаТоваров", 		НСтр("ru='Сборка (разборка) товаров'"));
		СписокВыбора.Добавить("ДокументСсылка.ПрочееОприходованиеТоваров", 	НСтр("ru='Прочее оприходование'"));
		//++ НЕ УТ
		СписокВыбора.Добавить("ДокументСсылка.ПроизводствоБезЗаказа", 		НСтр("ru='Производство без заказа'"));
		
		//++ Устарело_Переработка24
		ИспользоватьПроизводствоНаСтороне = ПолучитьФункциональнуюОпцию("ИспользоватьПроизводствоНаСтороне");
		//-- Устарело_Переработка24
		ИспользоватьПроизводствоНаСтороне2_5 = ПолучитьФункциональнуюОпцию("ИспользоватьПроизводствоНаСтороне2_5");
		ИспользоватьПередачуНаОтветственноеХранениеСПравомПродажи = ПолучитьФункциональнуюОпцию("ИспользоватьПередачуНаОтветственноеХранениеСПравомПродажи");
		
		Если ИспользоватьПроизводствоНаСтороне2_5 И ИспользоватьПередачуНаОтветственноеХранениеСПравомПродажи Тогда
			СтрокаПереработчикХранитель = НСтр("ru='Переработчик/хранитель'");
			СтрокаДоговорПереработчикаХранителя = НСтр("ru='Договор с переработчиком/хранителем'");
			СтрокаПоступлениеОтПереработчикаХранителя = НСтр("ru='Поступление от переработчика/хранителя'");
		ИначеЕсли ИспользоватьПроизводствоНаСтороне2_5 Тогда
			СтрокаПереработчикХранитель = НСтр("ru='Переработчик'");
			СтрокаДоговорПереработчикаХранителя = НСтр("ru='Договор с переработчиком'");
			СтрокаПоступлениеОтПереработчикаХранителя = НСтр("ru='Поступление от переработчика'");
		ИначеЕсли ИспользоватьПередачуНаОтветственноеХранениеСПравомПродажи Тогда
			СтрокаПереработчикХранитель = НСтр("ru='Хранитель'");
			СтрокаДоговорПереработчикаХранителя = НСтр("ru='Договор с хранителем'");
			СтрокаПоступлениеОтПереработчикаХранителя = НСтр("ru='Поступление от хранителя'");
		Иначе
			СтрокаПереработчикХранитель = "";
			СтрокаДоговорПереработчикаХранителя = "";
			СтрокаПоступлениеОтПереработчикаХранителя = "";
		КонецЕсли;
		
		Если ИспользоватьПроизводствоНаСтороне2_5 Или ИспользоватьПередачуНаОтветственноеХранениеСПравомПродажи Тогда
			СписокВыбора.Добавить("СправочникСсылка.Партнеры",					СтрокаПереработчикХранитель);
			СписокВыбора.Добавить("СправочникСсылка.ДоговорыКонтрагентов",		СтрокаДоговорПереработчикаХранителя);
		КонецЕсли;
		
		//++ Устарело_Переработка24
		Если ИспользоватьПроизводствоНаСтороне И ИспользоватьПроизводствоНаСтороне2_5 Тогда
			СписокВыбора.Добавить("ДокументСсылка.ПоступлениеОтПереработчика", 		НСтр("ru='Поступление от переработчика (2.4)'"));
		ИначеЕсли ИспользоватьПроизводствоНаСтороне Тогда
			СписокВыбора.Добавить("ДокументСсылка.ПоступлениеОтПереработчика", 		НСтр("ru='Поступление от переработчика'"));
		КонецЕсли;
		//-- Устарело_Переработка24
		
		Если СтрокаПоступлениеОтПереработчикаХранителя <> "" Тогда
			СписокВыбора.Добавить("ДокументСсылка.ПоступлениеТоваровОтХранителя", 	СтрокаПоступлениеОтПереработчикаХранителя);
		КонецЕсли;
		
		Если ИспользоватьПроизводствоНаСтороне2_5 Тогда
			СписокВыбора.Добавить("ДокументСсылка.ОтчетПереработчика2_5", 	НСтр("ru='Отчет переработчика'"));
		КонецЕсли;
		

		//-- НЕ УТ
		
	ИначеЕсли Объект.ТипРасходов = ПредопределенноеЗначение("Перечисление.ТипыРасходов.ПродажаТоваров") Тогда
		СписокВыбора.Добавить("СправочникСсылка.Партнеры",					НСтр("ru='Клиент'"));
		СписокВыбора.Добавить("СправочникСсылка.СделкиСКлиентами",			НСтр("ru='Сделка'"));
		Если ПолучитьФункциональнуюОпцию("ИспользоватьЗаказыКлиентов") Тогда
			СписокВыбора.Добавить("ДокументСсылка.ЗаказКлиента",			НСтр("ru='Заказ / Реализация'"));
		Иначе
			СписокВыбора.Добавить("ДокументСсылка.РеализацияТоваровУслуг",	НСтр("ru='Реализация товаров и услуг'"));
		КонецЕсли;
		
	//++ НЕ УТ
	ИначеЕсли Объект.ТипРасходов = ПредопределенноеЗначение("Перечисление.ТипыРасходов.ПроизводствоПродукции") Тогда
		СписокВыбора.Добавить("СправочникСсылка.ПартииПроизводства",						НСтр("ru='Партия производства'"));
		СписокВыбора.Добавить("СправочникСсылка.Номенклатура",								НСтр("ru='Продукция'"));
		Если ПолучитьФункциональнуюОпцию("АналитическийУчетПоГруппамПродукции") Тогда
			СписокВыбора.Добавить("СправочникСсылка.ГруппыАналитическогоУчетаНоменклатуры",		НСтр("ru='Группа продукции'"));
		КонецЕсли;
	ИначеЕсли Объект.ТипРасходов = ПредопределенноеЗначение("Перечисление.ТипыРасходов.Производственные") Тогда
		СписокВыбора.Добавить("СправочникСсылка.СтруктураПредприятия", 		НСтр("ru='Подразделение'"));
		СписокВыбора.Добавить("СправочникСсылка.ПрочиеРасходы", 			НСтр("ru='Прочие расходы'"));
		СписокВыбора.Добавить("СправочникСсылка.ОбъектыЭксплуатации", 		НСтр("ru='Объекты эксплуатации'"));
	ИначеЕсли Объект.ТипРасходов = ПредопределенноеЗначение("Перечисление.ТипыРасходов.ФормированиеСтоимостиВНА") Тогда
		СписокВыбора.Добавить("СправочникСсылка.ОбъектыЭксплуатации", 		НСтр("ru='Основные средства'"));
		Если ПолучитьФункциональнуюОпцию("ИспользоватьВнеоборотныеАктивы2_4") И НЕ ПолучитьФункциональнуюОпцию("ИспользоватьВнеоборотныеАктивы2_2") Тогда
			СписокВыбора.Добавить("СправочникСсылка.ОбъектыСтроительства",	НСтр("ru='Объекты строительства'"));
		КонецЕсли;
		СтатьиРасходовЛокализация.ДополнитьСписокВыбораФормированиеСтоимостиВНА(СписокВыбора);
		СписокВыбора.Добавить("СправочникСсылка.НематериальныеАктивы", 				НСтр("ru='НМА / НИОКР'"));
		СписокВыбора.Добавить("СправочникСсылка.ТемыЭтапыИсследованийИРазработок", 	НСтр("ru='Исследования и разработки'"));
	//-- НЕ УТ
		
	ИначеЕсли Объект.ТипРасходов = ПредопределенноеЗначение("Перечисление.ТипыРасходов.ПрочиеРасходы") Тогда
		СписокВыбора.Добавить("СправочникСсылка.СтруктураПредприятия", 		НСтр("ru='Подразделение'"));
		СписокВыбора.Добавить("СправочникСсылка.Организации", 				НСтр("ru='Организация'"));
		СписокВыбора.Добавить("ПеречислениеСсылка.АналитикаКурсовыхРазниц", НСтр("ru='Виды курсовых разниц'"));
		СписокВыбора.Добавить("СправочникСсылка.Кассы", 					НСтр("ru='Касса'"));
		СписокВыбора.Добавить("СправочникСсылка.ФизическиеЛица", 			НСтр("ru='Физическое лицо'"));
		Если ПолучитьФункциональнуюОпцию("ИспользоватьУчетЗатратПоНаправлениямДеятельности") Тогда
			СписокВыбора.Добавить("СправочникСсылка.НаправленияДеятельности",	НСтр("ru='(не используется) Направление деятельности'"));
		Иначе
			СписокВыбора.Добавить("СправочникСсылка.НаправленияДеятельности",	НСтр("ru='Направление деятельности'"));
		КонецЕсли;
		СписокВыбора.Добавить("СправочникСсылка.ДоговорыКредитовИДепозитов",НСтр("ru='Договор кредита (депозита)'"));
		СписокВыбора.Добавить("СправочникСсылка.МаркетинговыеМероприятия", 	НСтр("ru='Маркетинговое мероприятие'"));
		СписокВыбора.Добавить("СправочникСсылка.Претензии", 		        НСтр("ru='Претензия клиента'"));
		СписокВыбора.Добавить("СправочникСсылка.Проекты", 					НСтр("ru='Проект'"));
		//++ НЕ УТ
		СписокВыбора.Добавить("СправочникСсылка.ОбъектыЭксплуатации", 		НСтр("ru='Объекты эксплуатации'"));
		СписокВыбора.Добавить("СправочникСсылка.НематериальныеАктивы", 				НСтр("ru='НМА / НИОКР'"));
		СписокВыбора.Добавить("СправочникСсылка.ТемыЭтапыИсследованийИРазработок", 	НСтр("ru='Исследования и разработки'"));
		//-- НЕ УТ
		СписокВыбора.Добавить("СправочникСсылка.Склады", 					НСтр("ru='Склад (Место хранения)'"));
		СписокВыбора.Добавить("СправочникСсылка.Номенклатура", 				НСтр("ru='Номенклатура'"));
		СписокВыбора.Добавить("СправочникСсылка.ПрочиеРасходы", 			НСтр("ru='Прочие расходы'"));
		СтатьиРасходовЛокализация.ДополнитьСписокТиповАналитикамиУчетаЗарплаты(СписокВыбора);
		
	//++ НЕ УТ
	ИначеЕсли Объект.ТипРасходов = ПредопределенноеЗначение("Перечисление.ТипыРасходов.ВозникновениеЗатратНаОбъектах") Тогда
		СписокВыбора.Добавить("СправочникСсылка.ОбъектыВозникновенияЗатрат", 		НСтр("ru='Объекты возникновения затрат'"));
	//-- НЕ УТ
		
	КонецЕсли;
	
	УстановитьВидимостьТиповЗначенийАналитики();
	ДополнитьСписокВидовАналитикРасходовЭлементамиЗависимымиОтВариантовРаспределения();
		
КонецПроцедуры

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

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

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

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

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

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