/test2

напоминалка будет тут

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

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

&НаКлиенте Процедура ДобавитьКартинку(Команда) НачатьПомещениеФайла(Новый ОписаниеОповещения("ЗавершениеПомещенияФайла",ЭтотОбъект)); КонецПроцедуры

Процедура ЗавершениеПомещенияФайла(Результат, Адрес, ВыбранноеИмяФайла, ДополнительныеПараметры) Экспорт

Если Результат Тогда
	Фото = Адрес;
	УстановитьКартинку();
КонецЕсли;

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

&НаСервере Процедура УстановитьКартинку()

НовыйФайлКартинки = Справочники.Фото.СоздатьЭлемент();
НовыйФайлКартинки.Файл = Новый ХранилищеЗначения(ПолучитьИзВременногоХранилища(Фото));

НовыйФайлКартинки.Записать();

Фото = ПоместитьВоВременноеХранилище(НовыйФайлКартинки.Файл.Получить());

Объект.Фото = НовыйФайлКартинки.Ссылка;

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

&НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) Фото = ПолучитьНавигационнуюСсылку(Объект.Фото, "Файл");

Элементы.ВключитьНапоминание.Видимость = Не Объект.Активно;
Элементы.ВыключитьНапоминание.Видимость = Объект.Активно;

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

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

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

&НаСервере Функция ЗаполнитьПараметрыНапоминания()

Если ДеньГода(ТекущаяДата())<ДеньГода(Объект.ДатаРождения) Тогда        //Было ли в этом году уже?
	ДатаУведомления = НачалоГода(ТекущаяДата())+ДеньГода(Объект.ДатаРождения-1)*24*60*60;    //НачалоГода возвращает 1 янв тек года, ДеньГода возвращает число(кол-во дней с 1 янв)
Иначе 
	ДатаУведомления = НачалоГода(ДобавитьМесяц(ТекущаяДата(),12))+ДеньГода(Объект.ДатаРождения-1)*24*60*60;
КонецЕсли;

ЛетИсполнилось = Год(ДатаУведомления)-Год(Объект.ДатаРождения);

Если Константы.РежимТестировщика.Получить() Тогда   //чтобы не ждать уведомление, +10сек к тек времени
	ДатаУведомления = ТекущаяДата()+10;
КонецЕсли;

Парам = Новый Структура;
Парам.Вставить("ДатаУведомления", ДатаУведомления);
Парам.Вставить("ЛетИсполнилось", ЛетИсполнилось);
Возврат Парам;

КонецФункции

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

		Если ДанныеДляПоказа = Неопределено Тогда 
			Сообщить("Ошибка геокодирования!");
		Иначе 
			ПоказатьНаКарте(ДанныеДляПоказа);
		КонецЕсли;
	Иначе 
		Сообщить("Заполните адрес");
	КонецЕсли;
#КонецЕсли

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

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

КонецПроцедуры &НаКлиенте Процедура Остановить(Команда) #Если МобильноеПриложениеКлиент Тогда СредстваМультимедиа.ОстановитьВоспроизведениеАудио(); #КонецЕсли КонецПроцедуры

&НаКлиенте Процедура ГдеЯ(Команда)

Координаты = ОпределитьТекущиеГеокоординаты();

#Если МобильноеПриложениеКлиент Тогда
	ПоказатьНаКарте(Координаты);
#КонецЕсли

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

&НаКлиенте Функция ОпределитьТекущиеГеокоординаты()

#Если МобильноеПриложениеКлиент Тогда
	
	ТекущийПровайдер = "gps";
	
	Попытка
		ДМ = СредстваГеопозиционирования.ПолучитьПоследнееМестоположение(ТекущийПровайдер);
	Исключение
		ДМ = Неопределено;
	КонецПопытки;
	
	Если ДМ = Неопределено Тогда
		ТекущийПровайдер = "network";
		Попытка
			ДМ = СредстваГеопозиционирования.ПолучитьПоследнееМестоположение(ТекущийПровайдер);
		Исключение
			ДМ = Неопределено;
		КонецПопытки;
	КонецЕсли;
	
	Если ДМ = Неопределено Тогда
		Возврат Неопределено;
	КонецЕсли;
	
	Если ТекущаяДата() - МестноеВремя(ДМ.Дата) > 300 Тогда
		СредстваГеопозиционирования.ОбновитьМестоположение(ТекущийПровайдер, 5);
		ДМ = СредстваГеопозиционирования.ПолучитьПоследнееМестоположение(ТекущийПровайдер);
	КонецЕсли;
	
	ДА = ПолучитьАдресПоМестоположению(ДМ.Координаты);
	Если ДА = Неопределено Тогда
		ТекущееМестоположение =  "Lat: " + ДМ.Координаты.Широта + ", Lon: " + ДМ.Координаты.Долгота;
	Иначе
		ТекущееМестоположение = СтрЗаменить(ДА.Представление, Символы.ПС, ", ");
	КонецЕсли;
	
	ТекущееМестоположение = ТекущееМестоположение + "Date: " + МестноеВремя(ДМ.Дата) + ", Provider: " + ТекущийПровайдер;
	
	Сообщить(ТекущееМестоположение);
	Возврат ДМ.Координаты;
	
#Иначе
	
	Возврат Неопределено;
	
#КонецЕсли

КонецФункции