From 02d78bcf6f01f739ca80d41ff5853bb80129df52 Mon Sep 17 00:00:00 2001 From: Anton Ivanov Date: Sat, 11 Jul 2020 12:55:55 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A3=D0=B1=D1=80=D0=B0=D0=BB=20=D0=B8=D1=81?= =?UTF-8?q?=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8?= =?UTF-8?q?=D0=B5=20=D0=B7=D0=B0=D0=BF=D1=80=D0=BE=D1=81=D0=B0=20=D0=B2=20?= =?UTF-8?q?=D1=86=D0=B8=D0=BA=D0=BB=D0=B5.=20=D0=A0=D0=B0=D0=B1=D0=BE?= =?UTF-8?q?=D1=82=D0=B0=20=D1=81=20=D1=82=D0=B5=D0=BB=D0=B5=D0=B3=D1=80?= =?UTF-8?q?=D0=B0=D0=BC=D0=BC.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../узРаботаСТелеграм/Ext/ObjectModule.bsl | 109 ++++++++++++++---- 1 file changed, 84 insertions(+), 25 deletions(-) diff --git a/src/cf/DataProcessors/узРаботаСТелеграм/Ext/ObjectModule.bsl b/src/cf/DataProcessors/узРаботаСТелеграм/Ext/ObjectModule.bsl index 1bb99c4f7..1ef0a942e 100644 --- a/src/cf/DataProcessors/узРаботаСТелеграм/Ext/ObjectModule.bsl +++ b/src/cf/DataProcessors/узРаботаСТелеграм/Ext/ObjectModule.bsl @@ -87,6 +87,8 @@ МассивResult = ОтветСоответсвие["result"]; ИДПоследнегоПринятогоСообщения = Неопределено; + ТЗПользователиТелеграмм = ПолучитьТЗПользователиТелеграмм(); + Для Каждого СоответсвиеMessange Из МассивResult Цикл ИДПоследнегоПринятогоСообщения = Формат(СоответсвиеMessange["update_id"] + 1, "ЧГ="); @@ -102,32 +104,69 @@ Если СоответсвиеMessange_message.Получить("text") <> Неопределено Тогда MessageText = СоответсвиеMessange_message.Получить("text"); - Если Найти(MessageText, "/addwork") <> 0 Тогда - Запрос = Новый Запрос; - Запрос.Текст = - "ВЫБРАТЬ ПЕРВЫЕ 1 - | Пользователи.Ссылка КАК Пользователь - |ИЗ - | Справочник.Пользователи КАК Пользователи - |ГДЕ - | Пользователи.узИДПользователяТелеграмм = &узИДПользователяТелеграмм"; - - Запрос.УстановитьПараметр("узИДПользователяТелеграмм", Число(пСhatИД)); - - РезультатЗапроса = Запрос.Выполнить(); - Если РезультатЗапроса.Пустой() Тогда - Продолжить; - КонецЕсли; - - Выборка = РезультатЗапроса.Выбрать(); - Пока Выборка.Следующий() Цикл - ТекущиеДелаОбъект = Справочники.узТекущиеДела.СоздатьЭлемент(); - ТекущиеДелаОбъект.Автор = Выборка.Пользователь; - ТекущиеДелаОбъект.ТекстСодержания = СтрЗаменить(MessageText, "/addwork", ""); - ТекущиеДелаОбъект.Записать(); - КонецЦикла; - + // + Иванов А.Б. 2020-07-11 + // Если Найти(MessageText, "/addwork") <> 0 Тогда + // Запрос = Новый Запрос; + // Запрос.Текст = + // "ВЫБРАТЬ ПЕРВЫЕ 1 + // | Пользователи.Ссылка КАК Пользователь + // |ИЗ + // | Справочник.Пользователи КАК Пользователи + // |ГДЕ + // | Пользователи.узИДПользователяТелеграмм = &узИДПользователяТелеграмм"; + // + // Запрос.УстановитьПараметр("узИДПользователяТелеграмм", Число(пСhatИД)); + // + // РезультатЗапроса = Запрос.Выполнить(); + // Если РезультатЗапроса.Пустой() Тогда + // Продолжить; + // КонецЕсли; + // + // Выборка = РезультатЗапроса.Выбрать(); + // Пока Выборка.Следующий() Цикл + // ТекущиеДелаОбъект = Справочники.узТекущиеДела.СоздатьЭлемент(); + // ТекущиеДелаОбъект.Автор = Выборка.Пользователь; + // ТекущиеДелаОбъект.ТекстСодержания = СтрЗаменить(MessageText, "/addwork", ""); + // ТекущиеДелаОбъект.Записать(); + // КонецЦикла; + // + // КонецЕсли; + + Если Найти(MessageText, "/addwork") = 0 Тогда + Продолжить; КонецЕсли; + + пузИДПользователяТелеграмм = Число(пСhatИД); + + ПараметрыОтбора=Новый Структура(); + ПараметрыОтбора.Вставить("узИДПользователяТелеграмм",пузИДПользователяТелеграмм); + НайденныеСтроки = ТЗПользователиТелеграмм.НайтиСтроки(ПараметрыОтбора); + ВсегоНайденныеСтроки = НайденныеСтроки.Количество(); + ТекстОшибки = ""; + Если ВсегоНайденныеСтроки = 1 тогда + СтрокаТЗПользователиТелеграмм = НайденныеСтроки[0]; + ИначеЕсли ВсегоНайденныеСтроки > 1 Тогда + ТекстОшибки = "Ошибка! Найдено более 1 строки"; + Иначе + ТекстОшибки = "Ошибка! Не найдена строка"; + Конецесли; + + Если ЗначениеЗаполнено(ТекстОшибки) Тогда + ТекстОшибки = ТекстОшибки + +" в ""ТЗПользователиТелеграмм"" для "; + Для каждого ЭлементОтбора из ПараметрыОтбора цикл + ТекстОшибки = ТекстОшибки + +" "+ ЭлементОтбора.Ключ + " = ["+ЭлементОтбора.Значение+"]"; + Конеццикла; + ВызватьИсключение ТекстОшибки; + Конецесли; + + ТекущиеДелаОбъект = Справочники.узТекущиеДела.СоздатьЭлемент(); + ТекущиеДелаОбъект.Автор = СтрокаТЗПользователиТелеграмм.Пользователь; + ТекущиеДелаОбъект.ТекстСодержания = СтрЗаменить(MessageText, "/addwork", ""); + ТекущиеДелаОбъект.Записать(); + // - Иванов А.Б. 2020-07-11 + ИначеЕсли СоответсвиеMessange_message.Получить("photo") <> Неопределено Тогда @@ -143,6 +182,26 @@ КонецПроцедуры +Функция ПолучитьТЗПользователиТелеграмм() + + Запрос = Новый Запрос; + Запрос.Текст = "ВЫБРАТЬ + | МАКСИМУМ(Пользователи.Ссылка) КАК Пользователь, + | Пользователи.узИДПользователяТелеграмм КАК узИДПользователяТелеграмм + |ИЗ + | Справочник.Пользователи КАК Пользователи + |ГДЕ + | Пользователи.узИДПользователяТелеграмм <> 0 + | + |СГРУППИРОВАТЬ ПО + | Пользователи.узИДПользователяТелеграмм"; + + ТЗПользователиТелеграмм = Запрос.Выполнить().Выгрузить(); + + Возврат ТЗПользователиТелеграмм; + +КонецФункции + Процедура ОтправитьСообщениеTelegram(ТекстСообщения, МассивПользователейДляОтправки, УведомлятьОРезультате = Ложь) Экспорт Если МассивПользователейДляОтправки.Количество() = 0 Тогда