- Добавил доработки

This commit is contained in:
2025-05-27 18:16:38 +03:00
parent 694e06f836
commit 0172c538be
9 changed files with 397 additions and 53 deletions

View File

@@ -52,6 +52,50 @@
КонецФункции
Функция СписокКонфигураций(ИдЧата) Экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| ОтслеживаниеВерсийКонфигураций.Конфигурация КАК Конфигурация,
| ОтслеживаниеВерсийКонфигураций.Конфигурация.Наименование КАК КонфигурацияНаименование,
| ОтслеживаниеВерсийКонфигураций.Конфигурация.Имя КАК КонфигурацияИмя,
| ИСТИНА КАК Подписка
|ПОМЕСТИТЬ ВТ_ОтслеживаемыеКонфигурации
|ИЗ
| РегистрСведений.ОтслеживаниеВерсийКонфигураций КАК ОтслеживаниеВерсийКонфигураций
|ГДЕ
| ОтслеживаниеВерсийКонфигураций.ИдЧата = &ИдЧата
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| Конфигурации.Наименование КАК Наименование,
| Конфигурации.Имя КАК Имя,
| ЕСТЬNULL(ВТ_ОтслеживаемыеКонфигурации.Подписка, ЛОЖЬ) КАК Подписка
|ИЗ
| Справочник.Конфигурации КАК Конфигурации
| ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ОтслеживаемыеКонфигурации КАК ВТ_ОтслеживаемыеКонфигурации
| ПО (ВТ_ОтслеживаемыеКонфигурации.Конфигурация = Конфигурации.Ссылка)
|
|УПОРЯДОЧИТЬ ПО
| Подписка УБЫВ";
Запрос.УстановитьПараметр("ИдЧата", ИдЧата);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
МассивКонфигураций = Новый Массив;
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Конфигурация = Новый Структура("Наименование, Имя, Подписка", ВыборкаДетальныеЗаписи.Наименование,
ВыборкаДетальныеЗаписи.Имя, ВыборкаДетальныеЗаписи.Подписка);
МассивКонфигураций.Добавить(Конфигурация);
КонецЦикла;
Возврат МассивКонфигураций;
КонецФункции
Функция АктуализироватьВерсииКонфигураций()Экспорт
@@ -101,6 +145,87 @@
КонецФункции
Функция КонфигурацияПоИмени(ИмяКонфигурации) Экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Конфигурации.Ссылка КАК Конфигурация
|ИЗ
| Справочник.Конфигурации КАК Конфигурации
|ГДЕ
| Конфигурации.Имя = &Имя";
Запрос.УстановитьПараметр("Имя", ИмяКонфигурации);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Если ВыборкаДетальныеЗаписи.Следующий() Тогда
Возврат ВыборкаДетальныеЗаписи.Конфигурация;
КонецЕсли;
Возврат Неопределено;
КонецФункции
Процедура УстановитьСтатусДиалога(ИдЧата, НовыйСтатус, ДополнительнаяИнформация) Экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ТелеграмПользователь.Ссылка КАК Ссылка,
| ТелеграмПользователь.СтатусДиалога КАК СтатусДиалога
|ИЗ
| Справочник.ТелеграмПользователь КАК ТелеграмПользователь
|ГДЕ
| ТелеграмПользователь.id = &ИдЧата";
Запрос.УстановитьПараметр("ИдЧата", ИдЧата);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Если ВыборкаДетальныеЗаписи.Следующий() Тогда
ПользовательОбъект = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект();
Если ПользовательОбъект <> Неопределено Тогда
ПользовательОбъект.СтатусДиалога = НовыйСтатус;
ПользовательОбъект.ДополнительнаяИнформация = ДополнительнаяИнформация;
ПользовательОбъект.Записать();
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Функция ПолучитьДанныеПользователя(ИдЧата) Экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ТелеграмПользователь.СтатусДиалога КАК СтатусДиалога,
| ТелеграмПользователь.ДополнительнаяИнформация КАК ДополнительнаяИнформация
|ИЗ
| Справочник.ТелеграмПользователь КАК ТелеграмПользователь
|ГДЕ
| ТелеграмПользователь.id = &ИдЧата";
Запрос.УстановитьПараметр("ИдЧата", ИдЧата);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Если ВыборкаДетальныеЗаписи.Следующий() Тогда
Возврат Новый Структура("СтатусДиалога, ДополнительнаяИнформация", ВыборкаДетальныеЗаписи.СтатусДиалога,
ВыборкаДетальныеЗаписи.ДополнительнаяИнформация);
КонецЕсли;
Возврат Неопределено;
КонецФункции
#КонецОбласти
#Область СлужебныеПроцедурыИФункции

View File

@@ -66,7 +66,11 @@
МассивСообщенийТелеграм.Добавить(ПараметрыСообщения)
КонецЦикла;
ИначеЕсли ЭтоОдиночноеОбновление(ДанныеОбновления) Тогда
ПараметрыСообщения = СтруктураСообщенияТелеграм(Обновление);
Если ДанныеОбновления.Получить("message") <> Неопределено Тогда
ПараметрыСообщения = СтруктураСообщенияТелеграм(ДанныеОбновления);
ИначеЕсли ДанныеОбновления.Получить("callback_query") <> Неопределено Тогда
ПараметрыСообщения = СтруктураКоллбэкЗапроса(ДанныеОбновления);
КонецЕсли;
МассивСообщенийТелеграм.Добавить(ПараметрыСообщения)
КонецЕсли;
@@ -96,6 +100,33 @@
КонецФункции
Функция СтруктураКоллбэкЗапроса(Обновление)
ДанныеСообщения = Обновление["callback_query"];
ПараметрыСообщения = Новый Структура;
ПараметрыСообщения.Вставить("ИдКоллбэкЗапроса", Обновление["update_id"]);
Автор = АвторСообщения(ДанныеСообщения["from"]);
ПараметрыСообщения.Вставить("Автор", Автор);
Если ДанныеСообщения.Получить("message") <> Неопределено Тогда
НовоеСообщение = ТелеграмСообщение(ДанныеСообщения["message"], Автор);
ПараметрыСообщения.Вставить("Сообщение", НовоеСообщение);
КонецЕсли;
ПараметрыСообщения.Вставить("Дата", ТекущаяДатаСеанса());
ИдЧата = Автор.id;
ПараметрыСообщения.Вставить("ИдЧата", ИдЧата);
ДанныеКоллбэка = ДанныеСообщения["data"];
ПараметрыСообщения.Вставить("ДанныеКоллбэка", ДанныеКоллбэка);
Возврат ПараметрыСообщения;
КонецФункции
Процедура СохранитьСообщениеВБазу(СтруктураСообщения) Экспорт
МенеджерЗаписи = РегистрыСведений.ТелеграмСообщения.СоздатьМенеджерЗаписи();
@@ -144,8 +175,9 @@
ИдОбновления = СоответствиеОбновления.Получить("update_id");
Сообщение = СоответствиеОбновления.Получить("message");
КоллбэкЗапрос = СоответствиеОбновления.Получить("callback_query");
Если ИдОбновления <> Неопределено И Сообщение <> Неопределено Тогда
Если ИдОбновления <> Неопределено И (Сообщение <> Неопределено ИЛИ КоллбэкЗапрос <> Неопределено) Тогда
Возврат Истина;
КонецЕсли;

View File

@@ -16,7 +16,35 @@
КонецФункции
Функция КнопкаКлавиатуры(Надпись) Экспорт
Функция КлавиатураВстроенная(Клавиатура) Экспорт
СоответствиеКлавиатуры = Новый Соответствие();
СоответствиеКлавиатуры.Вставить("inline_keyboard", Клавиатура);
Возврат СоответствиеКлавиатуры;
КонецФункции
Функция КнопкаКлавиатурыВстроенной(Надпись, Url = Неопределено, CallbackData = Неопределено) Экспорт
СоответствиеКнопка = Новый Соответствие;
СоответствиеКнопка.Вставить("text", ?(НЕ ЗначениеЗаполнено(Надпись), "<?>", Надпись));
Если Url <> Неопределено Тогда
СоответствиеКнопка.Вставить("url", Url);
КонецЕсли;
Если CallbackData <> Неопределено Тогда
СоответствиеКнопка.Вставить("callback_data", CallbackData);
КонецЕсли;
Возврат СоответствиеКнопка;
КонецФункции
Функция КнопкаКлавиатурыОтвета(Надпись) Экспорт
СоответствиеКнопка = Новый Соответствие;
СоответствиеКнопка.Вставить("text", ?(НЕ ЗначениеЗаполнено(Надпись), "<?>", Надпись));
@@ -34,7 +62,7 @@
КонецЕсли;
Для каждого НадписьКнопки Из МассивНаименованийКнопок Цикл
Результат.Добавить(КнопкаКлавиатуры(НадписьКнопки));
Результат.Добавить(КнопкаКлавиатурыОтвета(НадписьКнопки));
КонецЦикла;
Возврат Результат;