Загрузка данных


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

Функция мРегистрСведенийОчистить(пИмя)
	лНаборЗаписей=РегистрыСведений[пИмя].СоздатьНаборЗаписей();
	лНаборЗаписей.ОбменДанными.Загрузка=Истина;
	лНаборЗаписей.Записать();
КонецФункции

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

#Область Экран
// Возвращает диагональ основного экрана устройства.
Функция ДиагональЭкрана() Экспорт
	лПараметрыЭкрана=ПараметрыЭкрана();
	Если лПараметрыЭкрана.Количество()=0 Тогда Возврат ""; КонецЕсли;
	Возврат лПараметрыЭкрана[0].Диагональ;
КонецФункции

// Возвращает массив с структурами параметров каждого экрана устройства.
Функция ПараметрыЭкрана() Экспорт
	лИнформацияОбЭкранах=ПолучитьИнформациюЭкрановКлиента();
	лМассивЭкраны=Новый Массив;
	Если лИнформацияОбЭкранах=Неопределено Тогда Возврат лМассивЭкраны; КонецЕсли;

	Для Каждого ДанныеОбЭкране Из лИнформацияОбЭкранах Цикл
		лСтруктураПараметры=Новый Структура;
		лСтруктураПараметры.Вставить("Ширина", ДанныеОбЭкране.Ширина);
		лСтруктураПараметры.Вставить("Высота", ДанныеОбЭкране.Высота);
		лСтруктураПараметры.Вставить("Разрешение", ДанныеОбЭкране.DPI);
		лСтруктураПараметры.Вставить("СоотношениеСторон", ДанныеОбЭкране.Высота/ДанныеОбЭкране.Ширина);
		лСтруктураПараметры.Вставить("ПортретнаяОриентация", ДанныеОбЭкране.Высота>ДанныеОбЭкране.Ширина);
		лСтруктураПараметры.Вставить("Диагональ", Окр(Sqrt(Pow(ДанныеОбЭкране.Ширина, 2) + Pow(ДанныеОбЭкране.Высота, 2))/ДанныеОбЭкране.DPI, 0));
		лМассивЭкраны.Добавить(лСтруктураПараметры);
	КонецЦикла;
	Возврат лМассивЭкраны;
КонецФункции
#КонецОбласти

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

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

//#Область Уведомления
//Процедура СформироватьЗаписьУведомленияПоОбъекту(Объект, Описание, ДатаНачала, ПериодУведомления=15) Экспорт
//	Если Не Константы.ТсМПНеПоказыватьОповещения.Получить() Тогда Возврат; КонецЕсли;

//	Уведомление=Новый Структура();
//	Уведомление.Вставить("ПериодУведомления", ПериодУведомления);
//	Уведомление.Вставить("Ссылка", Объект);
//	Уведомление.Вставить("Сообщение", Описание);
//	Уведомление.Вставить("ДатаИВремяСобытия", ДатаНачала);
//	Уведомление.Вставить("ДатаИВремяУведомления", ДатаНачала - ПериодУведомления * 60);

//	ЗаписатьСообщениеУведомления(Уведомление);
//КонецПроцедуры

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

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

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

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

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

Функция Инициализировать() Экспорт
	Если Не ЗначениеЗаполнено(Константы.ТсМПМасштабШрифтовОтчетов.Получить()) Тогда Константы.ТсМПМасштабШрифтовОтчетов.Установить(100); КонецЕсли;
	Если Не ЗначениеЗаполнено(Константы.ТсМПМасштабКолонокОтчетов.Получить()) Тогда Константы.ТсМПМасштабКолонокОтчетов.Установить(100); КонецЕсли;
	//ПолнотекстовыйПоиск.УстановитьРежимПолнотекстовогоПоиска(РежимПолнотекстовогоПоиска.Запретить);
КонецФункции