diff --git a/src/cf/CommonForms/Настройки/Ext/Form/Module.bsl b/src/cf/CommonForms/Настройки/Ext/Form/Module.bsl index 027e65e..ee2b7d1 100644 --- a/src/cf/CommonForms/Настройки/Ext/Form/Module.bsl +++ b/src/cf/CommonForms/Настройки/Ext/Form/Module.bsl @@ -68,7 +68,7 @@ #Область СлужебныеПроцедурыИФункции &НаСервереБезКонтекста -Процедура УстановитьЗначениеКонстанты(ЗначениеКонстанты) +Процедура УстановитьЗначениеКонстанты(Знач ЗначениеКонстанты) Константы.ТелеграмИспользоватьВебХук.Установить(ЗначениеКонстанты); diff --git a/src/cf/CommonModules/БотОбщегоНазначения/Ext/Module.bsl b/src/cf/CommonModules/БотОбщегоНазначения/Ext/Module.bsl index 08251bb..e30fa8e 100644 --- a/src/cf/CommonModules/БотОбщегоНазначения/Ext/Module.bsl +++ b/src/cf/CommonModules/БотОбщегоНазначения/Ext/Module.bsl @@ -59,6 +59,8 @@ УдалитьКонфигурациюИзСпискаОтслеживания(Данные, ОбновлениеТелеграм.ИдЧата); ИначеЕсли СтрНачинаетсяС(Данные, XMLСтрока(Перечисления.ВидыДанныхКоллбэков.GetStatus)) Тогда ПолучитьДанныеСтатусаКонфигурации(Данные, ОбновлениеТелеграм.ИдЧата); + Иначе + ОбработатьНеизвестнуюКоманду(ОбновлениеТелеграм); КонецЕсли; КонецПроцедуры @@ -155,7 +157,7 @@ Если НЕ ВерсияКонфигурацииКорректна(Версия) Тогда ТекстОтвета = СтрШаблон("Вы ввели некорректный номер версии: %1%2Для корректного отслеживания обновлений нужно |ввести версию конфигурации(четыре группы цифр, разделённых точками):Например: 3.1.30.197.", Версия, Символы.ПС); - ТелеграмМетодыВызовСервера.SendMessage(ИдЧата, ТекстОтвета,,); + ТелеграмМетодыВызовСервера.SendMessage(ИдЧата, ТекстОтвета); Возврат; КонецЕсли; diff --git a/src/cf/CommonModules/РаботаСОбновлениямиВызовСервера/Ext/Module.bsl b/src/cf/CommonModules/РаботаСОбновлениямиВызовСервера/Ext/Module.bsl index aa0e37b..2411974 100644 --- a/src/cf/CommonModules/РаботаСОбновлениямиВызовСервера/Ext/Module.bsl +++ b/src/cf/CommonModules/РаботаСОбновлениямиВызовСервера/Ext/Module.bsl @@ -236,7 +236,7 @@ | ОтслеживаниеВерсийКонфигураций.ТекущаяВерсия <> ОтслеживаниеВерсийКонфигураций.АктуальнаяВерсия | И ОтслеживаниеВерсийКонфигураций.ИдЧата В | (ВЫБРАТЬ - | Т.ИдЧата + | Т.ИдЧата КАК ИдЧата | ИЗ | ВТ_ЧатыПолучающиеУведомления КАК Т) |ИТОГИ ПО diff --git a/src/cf/CommonModules/ТелеграмМетодыВызовСервера/Ext/Module.bsl b/src/cf/CommonModules/ТелеграмМетодыВызовСервера/Ext/Module.bsl index 907e1f7..83a346a 100644 --- a/src/cf/CommonModules/ТелеграмМетодыВызовСервера/Ext/Module.bsl +++ b/src/cf/CommonModules/ТелеграмМетодыВызовСервера/Ext/Module.bsl @@ -80,7 +80,7 @@ АдресРесурса = АдресРесурсаПоИмениМетода("sendDocument"); Разделитель = СтрЗаменить(Новый УникальныйИдентификатор, "-", ""); - ДвоичныеДанныеДокумента = ДвоичныеДанныеДокумента(ИдЧата, ДокументДляОтправки, Надпись, БезУведомления, Разделитель); + ДвоичныеДанныеДокумента = ДвоичныеДанныеДокумента(ИдЧата, ДокументДляОтправки, Разделитель, Надпись, БезУведомления); ДанныеДокумента = Новый Структура("Разделитель, ДвоичныеДанные", Разделитель, ДвоичныеДанныеДокумента); Соединение = Новый HTTPСоединение("api.telegram.org",443,,,, 15, Новый ЗащищенноеСоединениеOpenSSL); Возврат HttpОбщегоНазначенияВызовСервера.ВыполнитьPostЗапрос(Соединение, АдресРесурса,, ДанныеДокумента); @@ -122,7 +122,7 @@ КонецФункции -Функция ДвоичныеДанныеДокумента(ИдЧата, Документ, Надпись = Неопределено, БезУведомления = Ложь, Разделитель) +Функция ДвоичныеДанныеДокумента(ИдЧата, Документ, Разделитель, Надпись = Неопределено, БезУведомления = Ложь) //Параметры ИдЧата, Надпись, БезУведомления можно передавать также в параметрах запроса, а не в теле как здесь // Отправка фото сделана именно так. Все значения, кроме непосредственно фото задаются в параметрах запроса. diff --git a/src/cf/CommonModules/ТелеграмОбщегоНазначения/Ext/Module.bsl b/src/cf/CommonModules/ТелеграмОбщегоНазначения/Ext/Module.bsl index 0b7864d..029e47d 100644 --- a/src/cf/CommonModules/ТелеграмОбщегоНазначения/Ext/Module.bsl +++ b/src/cf/CommonModules/ТелеграмОбщегоНазначения/Ext/Module.bsl @@ -50,75 +50,14 @@ Если ПараметрыСообщения <> Неопределено Тогда МассивСообщенийТелеграм.Добавить(ПараметрыСообщения); КонецЕсли; + Иначе + Возврат Неопределено; КонецЕсли; Возврат МассивСообщенийТелеграм; КонецФункции -Функция ПараметрыСообщения(ДанныеОбновления) - - Результат = Неопределено; - - Если ДанныеОбновления.Получить("message") <> Неопределено Тогда - Результат = СтруктураСообщенияТелеграм(ДанныеОбновления); - ИначеЕсли ДанныеОбновления.Получить("callback_query") <> Неопределено Тогда - Результат = СтруктураКоллбэкЗапроса(ДанныеОбновления); - КонецЕсли; - - Возврат Результат; - -КонецФункции - -Функция СтруктураСообщенияТелеграм(Обновление) - - ДанныеСообщения = Обновление["message"]; - - ПараметрыСообщения = Новый Структура; - ПараметрыСообщения.Вставить("ИдСообщения", Обновление["update_id"]); - - Автор = АвторСообщения(ДанныеСообщения["from"]); - ПараметрыСообщения.Вставить("Автор", Автор); - - НовоеСообщение = ТелеграмСообщение(ДанныеСообщения, Автор); - ПараметрыСообщения.Вставить("Сообщение", НовоеСообщение); - - ПараметрыСообщения.Вставить("Дата", ТекущаяДатаСеанса()); - - ИдЧата = ДанныеСообщения["chat"]["id"]; - ПараметрыСообщения.Вставить("ИдЧата", ИдЧата); - - Возврат ПараметрыСообщения; - -КонецФункции - -Функция СтруктураКоллбэкЗапроса(Обновление) - - ДанныеСообщения = Обновление["callback_query"]; - - ПараметрыСообщения = Новый Структура; - ПараметрыСообщения.Вставить("ИдКоллбэкЗапроса", Обновление["update_id"]); - - Автор = АвторСообщения(ДанныеСообщения["from"]); - ПараметрыСообщения.Вставить("Автор", Автор); - - Если ДанныеСообщения.Получить("message") <> Неопределено Тогда - НовоеСообщение = ТелеграмСообщение(ДанныеСообщения["message"], Автор); - ПараметрыСообщения.Вставить("Сообщение", НовоеСообщение); - КонецЕсли; - - ПараметрыСообщения.Вставить("Дата", ТекущаяДатаСеанса()); - - ИдЧата = Автор.id; - ПараметрыСообщения.Вставить("ИдЧата", ИдЧата); - - ДанныеКоллбэка = ДанныеСообщения["data"]; - ПараметрыСообщения.Вставить("ДанныеКоллбэка", ДанныеКоллбэка); - - Возврат ПараметрыСообщения; - -КонецФункции - Процедура СохранитьСообщениеВБазу(СтруктураСообщения) Экспорт МенеджерЗаписи = РегистрыСведений.ТелеграмСообщения.СоздатьМенеджерЗаписи(); @@ -271,4 +210,67 @@ КонецФункции +Функция ПараметрыСообщения(ДанныеОбновления) + + Если ДанныеОбновления.Получить("message") <> Неопределено Тогда + Результат = СтруктураСообщенияТелеграм(ДанныеОбновления); + ИначеЕсли ДанныеОбновления.Получить("callback_query") <> Неопределено Тогда + Результат = СтруктураКоллбэкЗапроса(ДанныеОбновления); + Иначе + Результат = Неопределено; + КонецЕсли; + + Возврат Результат; + +КонецФункции + +Функция СтруктураСообщенияТелеграм(Обновление) + + ДанныеСообщения = Обновление["message"]; + + ПараметрыСообщения = Новый Структура; + ПараметрыСообщения.Вставить("ИдСообщения", Обновление["update_id"]); + + Автор = АвторСообщения(ДанныеСообщения["from"]); + ПараметрыСообщения.Вставить("Автор", Автор); + + НовоеСообщение = ТелеграмСообщение(ДанныеСообщения, Автор); + ПараметрыСообщения.Вставить("Сообщение", НовоеСообщение); + + ПараметрыСообщения.Вставить("Дата", ТекущаяДатаСеанса()); + + ИдЧата = ДанныеСообщения["chat"]["id"]; + ПараметрыСообщения.Вставить("ИдЧата", ИдЧата); + + Возврат ПараметрыСообщения; + +КонецФункции + +Функция СтруктураКоллбэкЗапроса(Обновление) + + ДанныеСообщения = Обновление["callback_query"]; + + ПараметрыСообщения = Новый Структура; + ПараметрыСообщения.Вставить("ИдКоллбэкЗапроса", Обновление["update_id"]); + + Автор = АвторСообщения(ДанныеСообщения["from"]); + ПараметрыСообщения.Вставить("Автор", Автор); + + Если ДанныеСообщения.Получить("message") <> Неопределено Тогда + НовоеСообщение = ТелеграмСообщение(ДанныеСообщения["message"], Автор); + ПараметрыСообщения.Вставить("Сообщение", НовоеСообщение); + КонецЕсли; + + ПараметрыСообщения.Вставить("Дата", ТекущаяДатаСеанса()); + + ИдЧата = Автор.id; + ПараметрыСообщения.Вставить("ИдЧата", ИдЧата); + + ДанныеКоллбэка = ДанныеСообщения["data"]; + ПараметрыСообщения.Вставить("ДанныеКоллбэка", ДанныеКоллбэка); + + Возврат ПараметрыСообщения; + +КонецФункции + #КонецОбласти diff --git a/src/cf/CommonModules/ТелеграмПовторноеИспользование/Ext/Module.bsl b/src/cf/CommonModules/ТелеграмПовторноеИспользование/Ext/Module.bsl index b546a84..24974a3 100644 --- a/src/cf/CommonModules/ТелеграмПовторноеИспользование/Ext/Module.bsl +++ b/src/cf/CommonModules/ТелеграмПовторноеИспользование/Ext/Module.bsl @@ -1,4 +1,4 @@ -#Область ПрограммныйИнтерфейс +#Область СлужебныйПрограммныйИнтерфейс Функция ТелеграмТокен() Экспорт diff --git a/src/cf/DataProcessors/НачальноеЗаполнениеДанных/Forms/Форма/Ext/Form/Module.bsl b/src/cf/DataProcessors/НачальноеЗаполнениеДанных/Forms/Форма/Ext/Form/Module.bsl index 6a7477a..92aa5a3 100644 --- a/src/cf/DataProcessors/НачальноеЗаполнениеДанных/Forms/Форма/Ext/Form/Module.bsl +++ b/src/cf/DataProcessors/НачальноеЗаполнениеДанных/Forms/Форма/Ext/Form/Module.bsl @@ -10,11 +10,11 @@ СообщениеПользователю("Данные уже проинициализированы."); НачальноеЗаполнениеВыполненоУстановить(Истина); Возврат; + Иначе + ПровестиИнициализациюНаСервере(); + СообщениеПользователю("Данные проинициализированы успешно."); КонецЕсли; - ПровестиИнициализациюНаСервере(); - СообщениеПользователю("Данные проинициализированы успешно."); - КонецПроцедуры #КонецОбласти @@ -125,7 +125,7 @@ &НаСервереБезКонтекста -Процедура НачальноеЗаполнениеВыполненоУстановить(Признак) +Процедура НачальноеЗаполнениеВыполненоУстановить(Знач Признак) Константы.НачальноеЗаполнениеВыполнено.Установить(Признак); diff --git a/src/cf/VERSION b/src/cf/VERSION index 9d98c81..48add60 100644 --- a/src/cf/VERSION +++ b/src/cf/VERSION @@ -1,2 +1,2 @@  -26 +27