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


&НаКлиенте
Процедура мСканироватьШтрихкодОповещение(пШтрихКод, пРезультат, пСообщение, пПараметры) Экспорт
	Если пРезультат Тогда
		Если Не ЗначениеЗаполнено(пШтрихКод) Тогда Возврат; КонецЕсли;
		#Если МобильноеПриложениеКлиент Тогда
			СредстваМультимедиа.ЗакрытьСканированиеШтрихКодов();
		#КонецЕсли
		пПараметры.Форма.ОбработатьШтрихкод(пШтрихКод);
	КонецЕсли;
КонецПроцедуры

&НаКлиенте
Процедура мВводШтрихкодаОповещение(пРезультат, пПараметры) Экспорт
	Если Не ЗначениеЗаполнено(пРезультат) Тогда Возврат; КонецЕсли;
	пПараметры.Форма.ОбработатьШтрихкод(пРезультат);
КонецПроцедуры

&НаКлиенте
Функция СканироватьШтрихкод(пФорма) Экспорт
	#Если МобильноеПриложениеКлиент или МобильныйКлиент Тогда
		Если Не СредстваМультимедиа.ПоддерживаетсяСканированиеШтрихКодов() Тогда
			ПоказатьПредупреждение(, НСтр("ru = 'Устройство не поддерживает сканирование штрихкодов.'; en = 'The device doesn''t support scanning of barcodes.'"));
			Возврат Неопределено;
		КонецЕсли;
		лОписаниеОповещения=Новый ОписаниеОповещения("мСканироватьШтрихкодОповещение", ЭтотОбъект, Новый Структура("Форма", пФорма));
		СредстваМультимедиа.ПоказатьСканированиеШтрихКодов(НСтр("ru = 'Сканируйте штрихкод'; en = 'Scan barcode'"), лОписаниеОповещения,, ТипШтрихКода.Все);
		
		//лВзаимодействие=Новый ЗапускПриложенияМобильногоУстройства();
		//лВзаимодействие.Действие="com.google.zxing.client.android.SCAN";
		//лВзаимодействие.Запустить(Истина);
		//Если мКоличество(лВзаимодействие.ДополнительныеДанные)=0 Тогда Возврат Неопределено; КонецЕсли; 
		//Попытка	
		//	лШтрихкод=лВзаимодействие.ДополнительныеДанные.Получить("SCAN_RESULT").Значение;
		//Исключение 
		//	Сообщить("Не найден ключ: SCAN_RESULT, в ответе приложения"); 
		//	
		//	Для Каждого лКлючИзЗначение Из лВзаимодействие.ДополнительныеДанные Цикл
		//		Сообщить(лКлючИзЗначение.Ключ+" - "+лКлючИзЗначение.Значение);
		//	КонецЦикла;
		//	Возврат Неопределено;
		//КонецПопытки;
		//Возврат лШтрихкод; 
	#Иначе
		лОписаниеОповещения=Новый ОписаниеОповещения("мВводШтрихкодаОповещение", ЭтотОбъект, Новый Структура("Форма", пФорма));
		ПоказатьВводСтроки(лОписаниеОповещения,, "Введите штрихкод", 0, Истина);
	#КонецЕсли
КонецФункции

&НаКлиенте
Функция ЗначениеСериализовать(пЗначение) Экспорт
	лОбъектXDTO=СериализаторXDTO.ЗаписатьXDTO(пЗначение);
	лЗаписьXML=Новый ЗаписьXML;
	лПараметрыЗаписиXML=Новый ПараметрыЗаписиXML("UTF-8", "1.0", Ложь);
	лЗаписьXML.УстановитьСтроку(лПараметрыЗаписиXML);
	ФабрикаXDTO.ЗаписатьXML(лЗаписьXML, лОбъектXDTO);
	Возврат лЗаписьXML.Закрыть();	
КонецФункции 

&НаСервереБезКонтекста
Функция мНепоказыватьОповещения()
	Возврат Истина;
	//Возврат Константы.ТсМПНепоказыватьОповещения.Получить();
КонецФункции

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

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

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

&НаКлиенте
Функция ОтчетОткрыть(пОтчет, пВладелецФормы=Неопределено) Экспорт
	ОткрытьФорму(ТсПлатформаОбщий.ПолучитьИмяОбъектаФормы(ИмяФормы)+".Форма.Отчет", Новый Структура("Отчет", пОтчет), пВладелецФормы, пОтчет);
КонецФункции

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

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

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

&НаКлиенте
Функция ЭлементПередНачаломИзменения(пФорма, пЭлемент, пОтказ) Экспорт
	Если пФорма.ИмяФормы="Справочник.ТсМПОтчеты.Форма.ФормаСписка" Тогда 
		Если пЭлемент.Имя="Список" Тогда
			пОтказ=Истина;
			лТекСтрока=пФорма.Элементы.Список.ТекущаяСтрока;
			Если ТипЗнч(лТекСтрока)<>Тип("СправочникСсылка.ТсМПОтчеты") Тогда Возврат Истина; КонецЕсли;
			ОтчетОткрыть(лТекСтрока);
		КонецЕсли;
	КонецЕсли; 
КонецФункции

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

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

&НаСервереБезКонтекста
Функция мУведомлениеПолучитьСсылку(пИмяМетаданных, пИдентификатор)
	Попытка
		лУИД=Новый УникальныйИдентификатор(пИдентификатор);
	Исключение
		Возврат Неопределено;
	КонецПопытки;

	лСсылка=Неопределено;
	Если Не Метаданные.Документы.Найти(пИмяМетаданных)=Неопределено Тогда
		лСсылка=Документы[пИмяМетаданных].ПолучитьСсылку(лУИД);
		
	ИначеЕсли Не Метаданные.Справочники.Найти(пИмяМетаданных)=Неопределено Тогда
		лСсылка=Справочники[пИмяМетаданных].ПолучитьСсылку(лУИД);
		
	Иначе
		Возврат Неопределено;
	КонецЕсли;

	Попытка
		Если лСсылка.ПолучитьОбъект()=Неопределено Тогда Возврат Неопределено; КонецЕсли;
	Исключение
		Возврат Неопределено; 
	КонецПопытки;
	
	Возврат лСсылка;
КонецФункции

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

	//лОписаниеОповещения=Новый ОписаниеОповещения("ОбработкаРешенияПоказатьОбъектУведомления", ЭтотОбъект, лСтруктураПараметры);
	//
	//лКнопки=Новый СписокЗначений;
	//лКнопки.Добавить("Открыть" , НСтр("ru='Просмотреть'; en='View'"));
	////лКнопки.Добавить("Отложить", НСтр("ru='Отложить на 15 мин.'; en='Postpone for 15 min.'")); // !!!
	//лКнопки.Добавить("Закрыть" , НСтр("ru='Закрыть'; en='Close'"));
	//
	//ПоказатьВопрос(лОписаниеОповещения, пУведомление.Текст, лКнопки, , "Закрыть");
КонецПроцедуры

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

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

	//ОбновитьЛокальныеУведомленияНаУстройстве();
КонецПроцедуры

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

//		// Уведомления о просроченных объектах не выводятся
//		Если ТекущаяДата()>=Выборка.ДатаВремяУведомления Тогда Продолжить; КонецЕсли;

//		Запись=Новый Структура("Описание, ДатаВремяУведомления, ДатаИВремяСобытия, Данные, Интервал");
//		Запись.Описание=Выборка.Описание;
//		Запись.ДатаВремяУведомления=УниверсальноеВремя(Выборка.ДатаВремяУведомления);
//		Запись.ДатаИВремяСобытия=Выборка.ДатаИВремяСобытия;
//		Запись.Интервал=0;
//		Запись.Данные=СтрШаблон("Ссылка\%1\%2;%3", Выборка.Тип, Строка(Выборка.Ссылка.УникальныйИдентификатор()), Выборка.ДатаИВремяСобытия);
//		
//		лМассивУведомления.Добавить(Запись);
//	КонецЦикла;
//	
//	Возврат лМассивУведомления;
//КонецФункции

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

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

	#Если МобильноеПриложениеКлиент Тогда

	ДоставляемыеУведомления.ОтменитьЛокальныеУведомления();
	ДоставляемыеУведомления.УстановитьНаклейку(0);

	#КонецЕсли

КонецПроцедуры
#КонецОбласти

#Область Уведомления
&НаКлиенте
Процедура ПоместитьУведомлениеВУстройство(Уведомление=Неопределено)

	// Если уведомление не задано, то просто выходим.
	Если Уведомление=Неопределено Тогда
		Возврат;
	КонецЕсли;

	#Если МобильноеПриложениеКлиент Тогда

	// Помещаем уведомление в систему устройства
	ДоставляемыеУведомления.ДобавитьЛокальноеУведомление(Уведомление);

	#КонецЕсли

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

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

	ИначеЕсли пИмяМетаданных="ЗаказНаПеремещение" Тогда
		ОткрытьФорму("Документ.ЗаказНаПеремещение.Форма.ФормаДокумента", лСтруктураПараметры);
	КонецЕсли;
КонецПроцедуры

//&НаКлиенте
//Функция СформироватьТекстДатыУведомления(Дата) 
//	Если НачалоДня(ТекущаяДата())=НачалоДня(Дата) Тогда
//		Представление=
//			СтрШаблон(
//				НСтр("ru='Сегодня в %1'; en='Today at %1'"), Формат(Дата, "ДФ=HH:mm"));
//	ИначеЕсли НачалоДня(ТекущаяДата())+86400=НачалоДня(Дата) Тогда
//		Представление=
//			СтрШаблон(
//				НСтр("ru='Завтра в %1'; en='Tomorrow at %1'"), Формат(Дата, "ДФ=HH:mm"));
//	Иначе
//		Представление=
//			СтрШаблон(
//				НСтр("ru='%1 в %2'; en='%1 at %2'"), 
//				Формат(Дата, "ДФ='dd MMMM'"), Формат(Дата, "ДФ=HH:mm"));
//	КонецЕсли;
//	Возврат Представление;
//КонецФункции

&НаКлиенте
Функция СоздатьЛокальноеУведомление(ДанныеУведомления) 
	#Если МобильноеПриложениеКлиент Тогда
	// Проверяем дату предполагаемого показа
	Если Не ДанныеУведомления.ДатаВремяУведомления='00010101' И УниверсальноеВремя(ТекущаяДата()) >= ДанныеУведомления.ДатаВремяУведомления Тогда Возврат Неопределено; КонецЕсли;
	
	Уведомление=Новый ДоставляемоеУведомление;
	Уведомление.ДатаПоявленияУниверсальноеВремя=ДанныеУведомления.ДатаВремяУведомления;
	Уведомление.Заголовок=НСтр("ru='МП для УТ'; en='1C:MA for UT'");
	Уведомление.Текст=ДанныеУведомления.Описание;
	Уведомление.Данные=ДанныеУведомления.Данные;
	Уведомление.Наклейка=0;
	Уведомление.ЗвуковоеОповещение=ЗвуковоеОповещение.ПоУмолчанию;
	Уведомление.ИнтервалПовтора=ДанныеУведомления.Интервал;
	Возврат Уведомление;
	#КонецЕсли
КонецФункции
#КонецОбласти

//&НаСервере
//Функция мОтключитьПолнотекстовыйПоиск() // какие то проблемы с ним, рекомендовали отключить
//	ПолнотекстовыйПоиск.УстановитьРежимПолнотекстовогоПоиска(РежимПолнотекстовогоПоиска.Запретить);
//КонецФункции

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

&НаСервереБезКонтекста
Процедура мВыгрузитьВОсновнуюБазуНаСервере()
	Сообщить("Выгрузка выполнена!"); 
КонецПроцедуры

&НаКлиенте
Функция мВыгрузитьВОсновнуюБазуОповещение(пРезультат, пПараметры) Экспорт
	Если пРезультат<>КодВозвратаДиалога.Да Тогда Возврат Истина; КонецЕсли;
	
	мВыгрузитьВОсновнуюБазуНаСервере();
	Элементы.Список.Обновить();
КонецФункции 

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

&НаСервереБезКонтекста
Функция мЦветСтиляПолучить(пИмя)
	Возврат ЦветаСтиля[пИмя]; 
КонецФункции 

&НаКлиенте
Функция ФормаСтатусУстановить(пФорма, пСтрокаСтатуса, пОшибка=Ложь) Экспорт
	пФорма.СтрокаСтатуса=пСтрокаСтатуса;
	пФорма.Элементы.СтрокаСтатуса.ЦветТекста=?(пОшибка, мЦветСтиляПолучить("ЦветОсобогоТекста"), WebЦвета.Зеленый);
КонецФункции