Статьи бюджетов / Модуль объекта

файл
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда

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

Процедура ПередЗаписью(Отказ)
	
	Если ОбменДанными.Загрузка Тогда
		Возврат;
	КонецЕсли;

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

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

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

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

#КонецЕсли

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