1
0
mirror of https://github.com/BlizD/Tasks.git synced 2025-03-19 21:07:53 +02:00

Убрал использование запроса в цикле. Работа с телеграмм.

This commit is contained in:
Anton Ivanov 2020-07-11 12:55:55 +03:00
parent ef930f3fc4
commit 02d78bcf6f

View File

@ -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
| Пользователи.Ссылка КАК Пользователь
|ИЗ
| Справочник.Пользователи КАК Пользователи
|ГДЕ
| Пользователи.узИДПользователяТелеграмм = &узИДПользователяТелеграмм";
// + Иванов А.Б. 2020-07-11
// Если Найти(MessageText, "/addwork") <> 0 Тогда
// Запрос = Новый Запрос;
// Запрос.Текст =
// "ВЫБРАТЬ ПЕРВЫЕ 1
// | Пользователи.Ссылка КАК Пользователь
// |ИЗ
// | Справочник.Пользователи КАК Пользователи
// |ГДЕ
// | Пользователи.узИДПользователяТелеграмм = &узИДПользователяТелеграмм";
//
// Запрос.УстановитьПараметр("узИДПользователяТелеграмм", Число(пСhatИД));
//
// РезультатЗапроса = Запрос.Выполнить();
// Если РезультатЗапроса.Пустой() Тогда
// Продолжить;
// КонецЕсли;
//
// Выборка = РезультатЗапроса.Выбрать();
// Пока Выборка.Следующий() Цикл
// ТекущиеДелаОбъект = Справочники.узТекущиеДела.СоздатьЭлемент();
// ТекущиеДелаОбъект.Автор = Выборка.Пользователь;
// ТекущиеДелаОбъект.ТекстСодержания = СтрЗаменить(MessageText, "/addwork", "");
// ТекущиеДелаОбъект.Записать();
// КонецЦикла;
//
// КонецЕсли;
Запрос.УстановитьПараметр("узИДПользователяТелеграмм", Число(пСhatИД));
РезультатЗапроса = Запрос.Выполнить();
Если РезультатЗапроса.Пустой() Тогда
Если Найти(MessageText, "/addwork") = 0 Тогда
Продолжить;
КонецЕсли;
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
пузИДПользователяТелеграмм = Число(пСhatИД);
ПараметрыОтбора=Новый Структура();
ПараметрыОтбора.Вставить("узИДПользователяТелеграмм",пузИДПользователяТелеграмм);
НайденныеСтроки = ТЗПользователиТелеграмм.НайтиСтроки(ПараметрыОтбора);
ВсегоНайденныеСтроки = НайденныеСтроки.Количество();
ТекстОшибки = "";
Если ВсегоНайденныеСтроки = 1 тогда
СтрокаТЗПользователиТелеграмм = НайденныеСтроки[0];
ИначеЕсли ВсегоНайденныеСтроки > 1 Тогда
ТекстОшибки = "Ошибка! Найдено более 1 строки";
Иначе
ТекстОшибки = "Ошибка! Не найдена строка";
Конецесли;
Если ЗначениеЗаполнено(ТекстОшибки) Тогда
ТекстОшибки = ТекстОшибки
+" в ""ТЗПользователиТелеграмм"" для ";
Для каждого ЭлементОтбора из ПараметрыОтбора цикл
ТекстОшибки = ТекстОшибки
+" "+ ЭлементОтбора.Ключ + " = ["+ЭлементОтбора.Значение+"]";
Конеццикла;
ВызватьИсключение ТекстОшибки;
Конецесли;
ТекущиеДелаОбъект = Справочники.узТекущиеДела.СоздатьЭлемент();
ТекущиеДелаОбъект.Автор = Выборка.Пользователь;
ТекущиеДелаОбъект.Автор = СтрокаТЗПользователиТелеграмм.Пользователь;
ТекущиеДелаОбъект.ТекстСодержания = СтрЗаменить(MessageText, "/addwork", "");
ТекущиеДелаОбъект.Записать();
КонецЦикла;
// - Иванов А.Б. 2020-07-11
КонецЕсли;
ИначеЕсли СоответсвиеMessange_message.Получить("photo") <> Неопределено Тогда
@ -143,6 +182,26 @@
КонецПроцедуры
Функция ПолучитьТЗПользователиТелеграмм()
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| МАКСИМУМ(Пользователи.Ссылка) КАК Пользователь,
| Пользователи.узИДПользователяТелеграмм КАК узИДПользователяТелеграмм
|ИЗ
| Справочник.Пользователи КАК Пользователи
|ГДЕ
| Пользователи.узИДПользователяТелеграмм <> 0
|
|СГРУППИРОВАТЬ ПО
| Пользователи.узИДПользователяТелеграмм";
ТЗПользователиТелеграмм = Запрос.Выполнить().Выгрузить();
Возврат ТЗПользователиТелеграмм;
КонецФункции
Процедура ОтправитьСообщениеTelegram(ТекстСообщения, МассивПользователейДляОтправки, УведомлятьОРезультате = Ложь) Экспорт
Если МассивПользователейДляОтправки.Количество() = 0 Тогда