Календарь 1С не работает

1. rozacea 23.06.24 00:22 Сейчас в теме
Всем привет, почему-то не работает отправка в календарь, ошибки нет но при этом событие не долетает (код можете копировать если кому надо)


Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
	Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.Курс") Тогда
		Курс = ДанныеЗаполнения.Ссылка;
	КонецЕсли;
КонецПроцедуры

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

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



Функция ДатуВTimestamp(пДата = Неопределено)
	Возврат Формат(Число(?(ТипЗнч(пДата) = Тип("Дата"), пДата, ТекущаяДата())-Дата("19700101")-60*60*3),"ЧН=0; ЧГ=0");
КонецФункции 


Функция ПолучитьВсеСобытия() Экспорт
	СтруктуруЗапроса = СформироватьСтруктуруЗапроса();
	СтрокаДляТела = СериализоватьВJSON(СтруктуруЗапроса);
	
	Результат = ОтправитьЗапросККалендарю(СтрокаДляТела);
	Попытка
		Возврат Результат.data.busy; 
	Исключение 
		Возврат Неопределено;
	КонецПопытки;
	
КонецФункции   
                         
Функция ОтправитьЗапросККалендарю(СтрокаДляТела)
	
	SSL = Новый ЗащищенноеСоединениеOpenSSL();
	HTTP = Новый HTTPСоединение("",,,,,,SSL);
	
	ЗаголовокЗапросаHTTP = Новый Соответствие();
	
	Токен = "";
	ЗаголовокЗапросаHTTP.Вставить("Authorization", "Bearer " + Токен);
	ЗаголовокЗапросаHTTP.Вставить("Content-Type", "application/json");
	
	ЗапросHTTP = Новый HTTPЗапрос("v3/grants/", ЗаголовокЗапросаHTTP);
	ЗапросHTTP.УстановитьТелоИзСтроки(СтрокаДляТела);
	
	ОтветHTTP = HTTP.ОтправитьДляОбработки(ЗапросHTTP);
	JSON = ОтветHTTP.ПолучитьТелоКакСтроку();
	
	Результат = ДесериализоватьJSON(JSON);
	Возврат Результат;
	
КонецФункции




Функция СформироватьСтруктуруЗапроса()
	
	title = Тема;
	status= "confirmed";
	busy= Истина;   
	description= Описание;
	when = Новый Структура(); 
	ДатаСтрока = Формат(ДатаЗанятия, "ДФ=""ггггММдд""");
	ВремяСтрока = Формат(ВремяЗанятия, "ДФ=""ЧЧммсс""");
	when.Вставить("start_time",Число(ДатуВTimestamp(Дата(ДатаСтрока+ВремяСтрока))));   
	when.Вставить("end_time", Число(ДатуВTimestamp(Дата(ДатаСтрока+ВремяСтрока) + 60 * ВремяЗанятия))); 
	
	СтруктуруЗапроса = Новый Структура("title, status, busy,  description, when", title, status, busy,  description, when);
	
	Возврат СтруктуруЗапроса;
	
КонецФункции 



Функция СериализоватьВJSON(ДанныеОКлиенте) Экспорт
	
	ЗаписьJSON = Новый ЗаписьJSON;
	ЗаписьJSON.УстановитьСтроку();
	ЗаписатьJSON(ЗаписьJSON, ДанныеОКлиенте);
	СтрокаДляТела = ЗаписьJSON.Закрыть();
	
	Возврат СтрокаДляТела;
	
КонецФункции


Функция ДесериализоватьJSON(JSON, ЧитатьСоответствие = Ложь)  Экспорт
	
	ЧтениеJSON = Новый ЧтениеJSON();
	ЧтениеJSON.УстановитьСтроку(JSON);
	Результат = ПрочитатьJSON(ЧтениеJSON, ЧитатьСоответствие);
	ЧтениеJSON.Закрыть();
	
	Возврат Результат;
	
КонецФункции   




Получение писем



&НаКлиенте
Процедура ПолучитьСобытияИзГугл(Команда)
	ВсеСобытияТекстом=ПолучитьВсеСобытия();
	Для каждого СтрокаМассива из ВсеСобытияТекстом Цикл 
		Попытка 
			Сообщить(СтрокаМассива.title+":"+TimestampВДату(СтрокаМассива.when.start_time)); 
		Исключение
		КонецПопытки;
		
	КонецЦикла;  
	
КонецПроцедуры

Функция TimestampВДату(пДатаТС)
	Попытка
		Возврат Дата("19700101")+?(ТипЗнч(пДатаТС) = Тип("Строка"), Число(пДатаТС), пДатаТС)+3*60*60;
	Исключение
		Возврат Неопределено;
	КонецПопытки;
КонецФункции

&НаКлиенте
Функция ПолучитьВсеСобытия() Экспорт
	
	Результат = ОтправитьЗапросККалендарю();
	Если Результат.data.Количество() > 0 Тогда  
		Возврат Результат.data;
	КонецЕсли;
	
	Возврат "";
	
КонецФункции
&НаКлиенте
Функция ОтправитьЗапросККалендарю()
	
	
	SSL = Новый ЗащищенноеСоединениеOpenSSL();
	HTTP = Новый HTTPСоединение("",,,,,,SSL);
	
	ЗаголовокЗапросаHTTP = Новый Соответствие();
	
	Токен = "";
	ЗаголовокЗапросаHTTP.Вставить("Authorization", "Bearer " + Токен);
	ЗаголовокЗапросаHTTP.Вставить("Content-Type", "application/json");
	
	ЗапросHTTP = Новый HTTPЗапрос("v3/grants/", ЗаголовокЗапросаHTTP);
	
	
	ОтветHTTP = HTTP.Получить(ЗапросHTTP);
	JSON = ОтветHTTP.ПолучитьТелоКакСтроку();
	
	Результат = РаботаСHTTP.ДесериализоватьJSON(JSON);
	Возврат Результат;
	
КонецФункции

Функция СериализоватьВJSON(ДанныеОКлиенте) Экспорт
	
	ЗаписьJSON = Новый ЗаписьJSON;
	ЗаписьJSON.УстановитьСтроку();
	ЗаписатьJSON(ЗаписьJSON, ДанныеОКлиенте);
	СтрокаДляТела = ЗаписьJSON.Закрыть();
	
	Возврат СтрокаДляТела;
	
КонецФункции

&НаКлиенте
Функция ДесериализоватьJSON(JSON, ЧитатьСоответствие = Ложь)  Экспорт
	
	ЧтениеJSON = Новый ЧтениеJSON();
	ЧтениеJSON.УстановитьСтроку(JSON);
	Результат = ПрочитатьJSON(ЧтениеJSON, ЧитатьСоответствие);
	ЧтениеJSON.Закрыть();
	
	Возврат Результат;
	
КонецФункции  
Показать
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user1880116 23.06.24 10:31 Сейчас в теме
(1)
код можете копировать если кому надо
Большое спасибо, что разрешил нам копировать код, который не работет! Чтобы мы без тебя делали!
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот