Аналитики статей бюджетов / Модуль объекта

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

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

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

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

Процедура ПриКопировании(ОбъектКопирования)
	
	Идентификатор = "";
	
КонецПроцедуры

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

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

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

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

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

			Иначе
				Запрос = Новый Запрос;
				Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1
					|	АналитикиСтатейБюджетов.Ссылка
					|ИЗ
					|	ПланВидовХарактеристик.АналитикиСтатейБюджетов КАК АналитикиСтатейБюджетов
					|ГДЕ
					|	АналитикиСтатейБюджетов.Ссылка <> &Ссылка
					|	И АналитикиСтатейБюджетов.Идентификатор = &Идентификатор";
				Запрос.УстановитьПараметр("Ссылка", Ссылка);
				Запрос.УстановитьПараметр("Идентификатор", Идентификатор);

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

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

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

#КонецЕсли

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