mirror of
https://github.com/BlizD/Tasks.git
synced 2025-04-11 11:32:12 +02:00
Восстановление после слияния с Features
This commit is contained in:
parent
29b9c8bb4f
commit
80b0bc6fe4
src/cf
Catalogs
узВопросыОтветы
узЗадачи/Ext
узКонстанты/Ext
узКонфигурации/Forms/ФормаЭлемента/Ext/Form
узШаблоны/Forms/ФормаЭлемента/Ext/Form
CommonForms/узПрисоединенныеФайлыПисемПоЗадаче/Ext/Form
CommonModules
узОбновлениеИнформационнойБазы/Ext
узОбщийМодульКлиент/Ext
узТелеграммСервер/Ext
DataProcessors
узЗагрузкаИзмененийИзХранилища/Ext
узКанбанДоска/Forms/Удалить_Форма/Ext/Form
узПросмотрИсторииХранилища/Ext
узРаботаСТелеграм/Ext
Enums
InformationRegisters
@ -33,9 +33,39 @@
|
|||||||
СтрокаТЗСобытия.ВидСобытия = ПредопределенноеЗначение("Перечисление.узВидыСобытий.ЗакрытВопрос");
|
СтрокаТЗСобытия.ВидСобытия = ПредопределенноеЗначение("Перечисление.узВидыСобытий.ЗакрытВопрос");
|
||||||
Конецесли;
|
Конецесли;
|
||||||
|
|
||||||
|
Если ИзмененОтвет() Тогда
|
||||||
|
СтрокаТЗСобытия = ТЗСобытия.Добавить();
|
||||||
|
СтрокаТЗСобытия.ВидСобытия = ПредопределенноеЗначение("Перечисление.узВидыСобытий.ИзмененОтвет");
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если ИзмененВопрос() Тогда
|
||||||
|
СтрокаТЗСобытия = ТЗСобытия.Добавить();
|
||||||
|
СтрокаТЗСобытия.ВидСобытия = ПредопределенноеЗначение("Перечисление.узВидыСобытий.ИзмененВопрос");
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
Возврат ТЗСобытия;
|
Возврат ТЗСобытия;
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
Функция ИзмененОтвет()
|
||||||
|
пИзмененОтвет = Ложь;
|
||||||
|
|
||||||
|
Если Ссылка.Ответ <> Ответ Тогда
|
||||||
|
пИзмененОтвет = Истина;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Возврат пИзмененОтвет;
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
Функция ИзмененВопрос()
|
||||||
|
пИзмененВопрос = Ложь;
|
||||||
|
|
||||||
|
Если Ссылка.Вопрос <> Вопрос Тогда
|
||||||
|
пИзмененВопрос = Истина;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Возврат пИзмененВопрос;
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
Процедура ПриЗаписи(Отказ)
|
Процедура ПриЗаписи(Отказ)
|
||||||
|
|
||||||
Если ОбменДанными.Загрузка Тогда
|
Если ОбменДанными.Загрузка Тогда
|
||||||
@ -48,6 +78,10 @@
|
|||||||
|
|
||||||
РегистрацияАктивностиПользователя(ДополнительныеСвойства.ТЗСобытия,Отказ);
|
РегистрацияАктивностиПользователя(ДополнительныеСвойства.ТЗСобытия,Отказ);
|
||||||
|
|
||||||
|
// + #179 SZ 2020-06-07
|
||||||
|
ОтправитьУведомлениеНаПочту(ДополнительныеСвойства.ТЗСобытия);
|
||||||
|
// - #179 SZ 2020-06-07
|
||||||
|
|
||||||
ДополнительныеСвойства.Удалить("ТЗСобытия");
|
ДополнительныеСвойства.Удалить("ТЗСобытия");
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
@ -56,3 +90,196 @@
|
|||||||
ВТДопПараметры.Вставить("ТЗСобытия",ТЗСобытия);
|
ВТДопПараметры.Вставить("ТЗСобытия",ТЗСобытия);
|
||||||
РегистрыСведений.узАктивностиПользователей.ДобавитьАктивностьПользователя(ЭтотОбъект,ВТДопПараметры,Отказ);
|
РегистрыСведений.узАктивностиПользователей.ДобавитьАктивностьПользователя(ЭтотОбъект,ВТДопПараметры,Отказ);
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
|
// + #179 SZ 2020-06-07
|
||||||
|
Процедура ОтправитьУведомлениеНаПочту(СобытияВИстории) Экспорт
|
||||||
|
|
||||||
|
ВсегоСобытий = СобытияВИстории.Количество();
|
||||||
|
|
||||||
|
Если ВсегоСобытий = 0 Тогда
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Для Каждого СтрСобытияВИстории из СобытияВИстории Цикл
|
||||||
|
|
||||||
|
ОтправитьУведомлениеНаПочтуПоВидуСобытия(СобытияВИстории, СтрСобытияВИстории.ВидСобытия);
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
КонецПроцедуры // - #179 SZ 2020-06-07
|
||||||
|
|
||||||
|
// + #179 SZ 2020-06-07
|
||||||
|
Процедура ОтправитьУведомлениеНаПочтуПоВидуСобытия(СобытияВИстории, ВидСобытия)
|
||||||
|
|
||||||
|
ПараметрыПисьма = ПолучитьПараметрыПисьмаПоСобытию(ВидСобытия);
|
||||||
|
|
||||||
|
ДопПараметры = Новый Структура();
|
||||||
|
ДопПараметры.Вставить("ТекстПисьма",ПараметрыПисьма.ТекстПисьма);
|
||||||
|
ДопПараметры.Вставить("ТемаПисьма",ПараметрыПисьма.ТемаПисьма);
|
||||||
|
ДопПараметры.Вставить("ВажностьЗадачи",ПараметрыПисьма.ВажностьЗадачи);
|
||||||
|
|
||||||
|
ТекПользователь = Пользователи.ТекущийПользователь();
|
||||||
|
Исполнитель = ПредопределенноеЗначение("Справочник.Пользователи.ПустаяСсылка");
|
||||||
|
|
||||||
|
МассивНаблюдателей = Новый Массив();
|
||||||
|
Если ЗначениеЗаполнено(Задача) Тогда
|
||||||
|
МассивНаблюдателей = РегистрыСведений.узНаблюдателиЗаЗадачами.ПолучитьМассивНаблюдателей(Задача);
|
||||||
|
Исполнитель = Задача.Исполнитель;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
МассивПользователейКомуПредварительный = Новый Массив();
|
||||||
|
МассивПользователейКомуПредварительный.Добавить(Автор);
|
||||||
|
МассивПользователейКомуПредварительный.Добавить(Исполнитель);
|
||||||
|
МассивПользователейКомуПредварительный.Добавить(КтоМожетОтветить);
|
||||||
|
Для каждого пНаблюдатель из МассивНаблюдателей Цикл
|
||||||
|
МассивПользователейКомуПредварительный.Добавить(пНаблюдатель);
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
МассивПользователейКому = Новый Массив();
|
||||||
|
|
||||||
|
Для каждого пПользовательПредв из МассивПользователейКомуПредварительный Цикл
|
||||||
|
|
||||||
|
Если НЕ ЗначениеЗаполнено(пПользовательПредв) Тогда
|
||||||
|
Продолжить;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если пПользовательПредв.узНеОтправлятьУведомленияНаПочту Тогда
|
||||||
|
Продолжить;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если пПользовательПредв = ТекПользователь
|
||||||
|
И НЕ пПользовательПредв.узОтправлятьУведомленияОДействияхПользователяЕмуНаПочту Тогда
|
||||||
|
Продолжить;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
МассивПользователейКому.Добавить(пПользовательПредв);
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
ДопПараметры.Вставить("МассивПользователейКому",МассивПользователейКому);
|
||||||
|
|
||||||
|
узОбщийМодульСервер.ОтправитьПисьмо(ДопПараметры);
|
||||||
|
|
||||||
|
КонецПроцедуры // - #179 SZ 2020-06-07
|
||||||
|
|
||||||
|
Функция ПолучитьПараметрыПисьмаПоСобытию(ВидСобытия)
|
||||||
|
|
||||||
|
ТемаПисьма = "";
|
||||||
|
ТекстПисьма = "";
|
||||||
|
ВажностьЗадачи = ПредопределенноеЗначение("Справочник.узВариантыВажностиЗадачи.Обычная");
|
||||||
|
|
||||||
|
ПараметрыПисьма = Новый Структура();
|
||||||
|
ПараметрыПисьма.Вставить("ТемаПисьма",ТемаПисьма);
|
||||||
|
ПараметрыПисьма.Вставить("ТекстПисьма",ТекстПисьма);
|
||||||
|
ПараметрыПисьма.Вставить("ВажностьЗадачи",ВажностьЗадачи);
|
||||||
|
|
||||||
|
ЗаполненаЗадача = Ложь;
|
||||||
|
НомерЗадачи = "";
|
||||||
|
ПредставлениеЗадачи = "";
|
||||||
|
Если ЗначениеЗаполнено(Задача) Тогда
|
||||||
|
ЗаполненаЗадача = Истина;
|
||||||
|
ВажностьЗадачи = Задача.Важность;
|
||||||
|
НомерЗадачи = ""+Формат(Задача.Код,"ЧГ=0");
|
||||||
|
ПредставлениеЗадачи = "#" + НомерЗадачи + " " + Задача.Наименование;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ТемаПисьма = "Изменения по вопросу";
|
||||||
|
ТекстПисьма = "Изменения по вопросу ";
|
||||||
|
ДобавитьВТекстПисьмаВопрос(ТекстПисьма);
|
||||||
|
ДобавитьВТекстПисьмаОтвет(ТекстПисьма);
|
||||||
|
|
||||||
|
Если ВидСобытия = Перечисления.узВидыСобытий.ДобавленВопрос Тогда
|
||||||
|
|
||||||
|
ТемаПисьма = "Новый вопрос ";
|
||||||
|
|
||||||
|
ТекстПисьма = "" + Автор + " задал вопрос к " + КтоМожетОтветить;
|
||||||
|
ДобавитьВТекстПисьмаВопрос(ТекстПисьма);
|
||||||
|
|
||||||
|
Если ЗаполненаЗадача Тогда
|
||||||
|
|
||||||
|
ТемаПисьма = "Новый вопрос к задаче " + ПредставлениеЗадачи;
|
||||||
|
|
||||||
|
ТекстПисьма = "К задаче " + ПредставлениеЗадачи + " " + Автор + " задал вопрос " + КтоМожетОтветить;
|
||||||
|
ДобавитьВТекстПисьмаВопрос(ТекстПисьма);
|
||||||
|
|
||||||
|
КонецЕсли
|
||||||
|
|
||||||
|
ИначеЕсли ВидСобытия = Перечисления.узВидыСобытий.ИзмененОтвет Тогда
|
||||||
|
|
||||||
|
ТемаПисьма = "Изменен ответ ";
|
||||||
|
|
||||||
|
ТекстПисьма = "Изменен ответ ";
|
||||||
|
ДобавитьВТекстПисьмаВопрос(ТекстПисьма);
|
||||||
|
ДобавитьВТекстПисьмаОтвет(ТекстПисьма);
|
||||||
|
|
||||||
|
Если ЗаполненаЗадача Тогда
|
||||||
|
|
||||||
|
ТемаПисьма = "Изменен ответ по вопросу к задаче " + ПредставлениеЗадачи;
|
||||||
|
|
||||||
|
ТекстПисьма = "Изменен ответ по вопросу к задаче " + ПредставлениеЗадачи;
|
||||||
|
ДобавитьВТекстПисьмаВопрос(ТекстПисьма);
|
||||||
|
ДобавитьВТекстПисьмаОтвет(ТекстПисьма);
|
||||||
|
|
||||||
|
КонецЕсли
|
||||||
|
|
||||||
|
ИначеЕсли ВидСобытия = Перечисления.узВидыСобытий.ИзмененВопрос Тогда
|
||||||
|
|
||||||
|
ТемаПисьма = "Изменен вопрос ";
|
||||||
|
|
||||||
|
ТекстПисьма = "Изменен вопрос ";
|
||||||
|
ДобавитьВТекстПисьмаВопрос(ТекстПисьма);
|
||||||
|
ДобавитьВТекстПисьмаОтвет(ТекстПисьма);
|
||||||
|
|
||||||
|
Если ЗаполненаЗадача Тогда
|
||||||
|
|
||||||
|
ТемаПисьма = "Изменен вопрос к задаче " + ПредставлениеЗадачи;
|
||||||
|
|
||||||
|
ТекстПисьма = "Изменен вопрос к задаче " + ПредставлениеЗадачи;
|
||||||
|
ДобавитьВТекстПисьмаВопрос(ТекстПисьма);
|
||||||
|
ДобавитьВТекстПисьмаОтвет(ТекстПисьма);
|
||||||
|
|
||||||
|
КонецЕсли
|
||||||
|
|
||||||
|
ИначеЕсли ВидСобытия = Перечисления.узВидыСобытий.ЗакрытВопрос Тогда
|
||||||
|
|
||||||
|
ТемаПисьма = "Вопрос закрыт";
|
||||||
|
|
||||||
|
ТекстПисьма = "Вопрос закрыт";
|
||||||
|
ДобавитьВТекстПисьмаВопрос(ТекстПисьма);
|
||||||
|
ДобавитьВТекстПисьмаОтвет(ТекстПисьма);
|
||||||
|
|
||||||
|
Если ЗаполненаЗадача Тогда
|
||||||
|
|
||||||
|
ТемаПисьма = "Вопрос закрыт к задаче " + ПредставлениеЗадачи;
|
||||||
|
ТекстПисьма = "Вопрос закрыт к задаче " + ПредставлениеЗадачи;
|
||||||
|
|
||||||
|
ДобавитьВТекстПисьмаВопрос(ТекстПисьма);
|
||||||
|
ДобавитьВТекстПисьмаОтвет(ТекстПисьма);
|
||||||
|
|
||||||
|
КонецЕсли
|
||||||
|
|
||||||
|
Иначе
|
||||||
|
ТекстОшибки = "Ошибка! нет алгоритма для " + ВидСобытия;
|
||||||
|
ВызватьИсключение ТекстОшибки;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ПараметрыПисьма.ТемаПисьма = ТемаПисьма;
|
||||||
|
ПараметрыПисьма.ТекстПисьма = ТекстПисьма;
|
||||||
|
ПараметрыПисьма.ВажностьЗадачи = ВажностьЗадачи;
|
||||||
|
|
||||||
|
Возврат ПараметрыПисьма;
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
|
Процедура ДобавитьВТекстПисьмаВопрос(ТекстПисьма)
|
||||||
|
|
||||||
|
ТекстПисьма = ТекстПисьма + Символы.ПС + "Вопрос: "
|
||||||
|
+ Символы.ПС + Вопрос + Символы.ПС;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Процедура ДобавитьВТекстПисьмаОтвет(ТекстПисьма)
|
||||||
|
|
||||||
|
ТекстПисьма = ТекстПисьма + Символы.ПС + "Ответ: "
|
||||||
|
+ Символы.ПС + Ответ + Символы.ПС;
|
||||||
|
|
||||||
|
КонецПроцедуры
|
||||||
|
|
||||||
|
@ -27,8 +27,6 @@
|
|||||||
// Объект.Наименование = Объект.Вопрос;
|
// Объект.Наименование = Объект.Вопрос;
|
||||||
//КонецПроцедуры
|
//КонецПроцедуры
|
||||||
//}milanse 31.05.2020 20:46:11
|
//}milanse 31.05.2020 20:46:11
|
||||||
|
|
||||||
&НаСервере
|
|
||||||
//+ #201 Иванов А.Б. 2020-05-23 Изменения от Дениса Урянского @d-hurricane
|
//+ #201 Иванов А.Б. 2020-05-23 Изменения от Дениса Урянского @d-hurricane
|
||||||
&НаСервере
|
&НаСервере
|
||||||
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
|
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
|
||||||
|
@ -693,95 +693,98 @@
|
|||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
Функция ПолучитьМассивНаблюдателей()
|
Функция ПолучитьМассивНаблюдателей()
|
||||||
пЗадача = Ссылка;
|
|
||||||
|
|
||||||
МассивНаблюдателей = Новый Массив();
|
Возврат РегистрыСведений.узНаблюдателиЗаЗадачами.ПолучитьМассивНаблюдателей(Ссылка);
|
||||||
|
|
||||||
Запрос = Новый Запрос;
|
//пЗадача = Ссылка;
|
||||||
Запрос.Текст =
|
|
||||||
"ВЫБРАТЬ
|
|
||||||
| узНаблюдателиЗаЗадачами.Пользователь
|
|
||||||
|ИЗ
|
|
||||||
| РегистрСведений.узНаблюдателиЗаЗадачами КАК узНаблюдателиЗаЗадачами
|
|
||||||
|ГДЕ
|
|
||||||
| узНаблюдателиЗаЗадачами.Задача = &Задача
|
|
||||||
| И узНаблюдателиЗаЗадачами.Пользователь.узНеОтправлятьУведомленияНаПочту = ЛОЖЬ
|
|
||||||
| И узНаблюдателиЗаЗадачами.Пользователь <> &Исполнитель";
|
|
||||||
|
|
||||||
|
|
||||||
//+ #190 SZ 16.03.2020
|
|
||||||
// Убираем из запроса проверку на Текущего пользователя.
|
|
||||||
// Проверку сделаем в обработке результата запроса
|
|
||||||
//
|
//
|
||||||
// | И узНаблюдателиЗаЗадачами.Пользователь <> &ТекущийПользователь
|
//МассивНаблюдателей = Новый Массив();
|
||||||
//
|
//
|
||||||
//- #190 SZ 16.03.2020
|
//Запрос = Новый Запрос;
|
||||||
|
//Запрос.Текст =
|
||||||
|
//"ВЫБРАТЬ
|
||||||
ТекущийПользователь = Пользователи.ТекущийПользователь();
|
//| узНаблюдателиЗаЗадачами.Пользователь
|
||||||
//+ #190 SZ 16.03.2020
|
//|ИЗ
|
||||||
// Убираем из запроса проверку на Текущего пользователя.
|
//| РегистрСведений.узНаблюдателиЗаЗадачами КАК узНаблюдателиЗаЗадачами
|
||||||
|
//|ГДЕ
|
||||||
|
//| узНаблюдателиЗаЗадачами.Задача = &Задача
|
||||||
|
//| И узНаблюдателиЗаЗадачами.Пользователь.узНеОтправлятьУведомленияНаПочту = ЛОЖЬ
|
||||||
|
//| И узНаблюдателиЗаЗадачами.Пользователь <> &Исполнитель";
|
||||||
//
|
//
|
||||||
//Запрос.УстановитьПараметр("ТекущийПользователь", ТекущийПользователь);
|
|
||||||
//
|
//
|
||||||
// Проверку сделаем в обработке результата запроса
|
////+ #190 SZ 16.03.2020
|
||||||
//- #190 SZ 16.03.2020
|
//// Убираем из запроса проверку на Текущего пользователя.
|
||||||
|
//// Проверку сделаем в обработке результата запроса
|
||||||
Запрос.УстановитьПараметр("Исполнитель", Исполнитель);
|
////
|
||||||
Запрос.УстановитьПараметр("Задача", пЗадача);
|
//// | И узНаблюдателиЗаЗадачами.Пользователь <> &ТекущийПользователь
|
||||||
|
////
|
||||||
РезультатЗапроса = Запрос.Выполнить();
|
////- #190 SZ 16.03.2020
|
||||||
Если НЕ РезультатЗапроса.Пустой() Тогда
|
//
|
||||||
Выборка = РезультатЗапроса.Выбрать();
|
//
|
||||||
Пока Выборка.Следующий() Цикл
|
//ТекущийПользователь = Пользователи.ТекущийПользователь();
|
||||||
МассивНаблюдателей.Добавить(Выборка.Пользователь);
|
////+ #190 SZ 16.03.2020
|
||||||
КонецЦикла;
|
//// Убираем из запроса проверку на Текущего пользователя.
|
||||||
Конецесли;
|
////
|
||||||
|
////Запрос.УстановитьПараметр("ТекущийПользователь", ТекущийПользователь);
|
||||||
Для каждого СтрокаНаблюдатели из Статус.Наблюдатели цикл
|
////
|
||||||
Если МассивНаблюдателей.Найти(СтрокаНаблюдатели.Пользователь) <> Неопределено Тогда
|
//// Проверку сделаем в обработке результата запроса
|
||||||
Продолжить;
|
////- #190 SZ 16.03.2020
|
||||||
Конецесли;
|
//
|
||||||
|
//Запрос.УстановитьПараметр("Исполнитель", Исполнитель);
|
||||||
//+ #190 SZ 16.03.2020
|
//Запрос.УстановитьПараметр("Задача", пЗадача);
|
||||||
//Если СтрокаНаблюдатели.Пользователь = Пользователи.ТекущийПользователь() Тогда
|
//
|
||||||
// Продолжить;
|
//РезультатЗапроса = Запрос.Выполнить();
|
||||||
//Конецесли;
|
//Если НЕ РезультатЗапроса.Пустой() Тогда
|
||||||
Если СтрокаНаблюдатели.Пользователь = ТекущийПользователь
|
// Выборка = РезультатЗапроса.Выбрать();
|
||||||
И НЕ СтрокаНаблюдатели.Пользователь.узОтправлятьУведомленияОДействияхПользователяЕмуНаПочту Тогда
|
// Пока Выборка.Следующий() Цикл
|
||||||
Продолжить;
|
// МассивНаблюдателей.Добавить(Выборка.Пользователь);
|
||||||
Конецесли;
|
// КонецЦикла;
|
||||||
//- #190 SZ 16.03.2020
|
//Конецесли;
|
||||||
|
//
|
||||||
//Павлюков - отсеем ненужных наблюдателей, у которых явно задано, за кем наблюдать
|
//Для каждого СтрокаНаблюдатели из Статус.Наблюдатели цикл
|
||||||
Если Не СтрокаНаблюдатели.Контрагент.Пустая()
|
// Если МассивНаблюдателей.Найти(СтрокаНаблюдатели.Пользователь) <> Неопределено Тогда
|
||||||
И Не пЗадача.Контрагент.Пустая()
|
// Продолжить;
|
||||||
И Не СтрокаНаблюдатели.Контрагент = пЗадача.Контрагент Тогда
|
// Конецесли;
|
||||||
Продолжить;
|
//
|
||||||
КонецЕсли;
|
// //+ #190 SZ 16.03.2020
|
||||||
МассивНаблюдателей.Добавить(СтрокаНаблюдатели.Пользователь);
|
// //Если СтрокаНаблюдатели.Пользователь = Пользователи.ТекущийПользователь() Тогда
|
||||||
Конеццикла;
|
// // Продолжить;
|
||||||
|
// //Конецесли;
|
||||||
пНаблюдателиЗаОснЗадачей = пЗадача.ОсновнаяЗадача.НаблюдателиЗаОсновнойЗадачей;
|
// Если СтрокаНаблюдатели.Пользователь = ТекущийПользователь
|
||||||
Для каждого СтрокапНаблюдателиЗаОснЗадачей из пНаблюдателиЗаОснЗадачей цикл
|
// И НЕ СтрокаНаблюдатели.Пользователь.узОтправлятьУведомленияОДействияхПользователяЕмуНаПочту Тогда
|
||||||
пНаблюдатель = СтрокапНаблюдателиЗаОснЗадачей.Пользователь;
|
// Продолжить;
|
||||||
Если МассивНаблюдателей.Найти(пНаблюдатель) <> Неопределено Тогда
|
// Конецесли;
|
||||||
Продолжить;
|
// //- #190 SZ 16.03.2020
|
||||||
Конецесли;
|
//
|
||||||
//+ #190 SZ 16.03.2020
|
// //Павлюков - отсеем ненужных наблюдателей, у которых явно задано, за кем наблюдать
|
||||||
//Если пНаблюдатель = Пользователи.ТекущийПользователь() Тогда
|
// Если Не СтрокаНаблюдатели.Контрагент.Пустая()
|
||||||
// Продолжить;
|
// И Не пЗадача.Контрагент.Пустая()
|
||||||
//Конецесли;
|
// И Не СтрокаНаблюдатели.Контрагент = пЗадача.Контрагент Тогда
|
||||||
Если пНаблюдатель = ТекущийПользователь
|
// Продолжить;
|
||||||
И НЕ пНаблюдатель.узОтправлятьУведомленияОДействияхПользователяЕмуНаПочту Тогда
|
// КонецЕсли;
|
||||||
Продолжить;
|
// МассивНаблюдателей.Добавить(СтрокаНаблюдатели.Пользователь);
|
||||||
Конецесли;
|
//Конеццикла;
|
||||||
//- #190 SZ 16.03.2020
|
//
|
||||||
|
//пНаблюдателиЗаОснЗадачей = пЗадача.ОсновнаяЗадача.НаблюдателиЗаОсновнойЗадачей;
|
||||||
МассивНаблюдателей.Добавить(пНаблюдатель);
|
//Для каждого СтрокапНаблюдателиЗаОснЗадачей из пНаблюдателиЗаОснЗадачей цикл
|
||||||
Конеццикла;
|
// пНаблюдатель = СтрокапНаблюдателиЗаОснЗадачей.Пользователь;
|
||||||
|
// Если МассивНаблюдателей.Найти(пНаблюдатель) <> Неопределено Тогда
|
||||||
Возврат МассивНаблюдателей;
|
// Продолжить;
|
||||||
|
// Конецесли;
|
||||||
|
// //+ #190 SZ 16.03.2020
|
||||||
|
// //Если пНаблюдатель = Пользователи.ТекущийПользователь() Тогда
|
||||||
|
// // Продолжить;
|
||||||
|
// //Конецесли;
|
||||||
|
// Если пНаблюдатель = ТекущийПользователь
|
||||||
|
// И НЕ пНаблюдатель.узОтправлятьУведомленияОДействияхПользователяЕмуНаПочту Тогда
|
||||||
|
// Продолжить;
|
||||||
|
// Конецесли;
|
||||||
|
// //- #190 SZ 16.03.2020
|
||||||
|
//
|
||||||
|
// МассивНаблюдателей.Добавить(пНаблюдатель);
|
||||||
|
//Конеццикла;
|
||||||
|
//
|
||||||
|
//Возврат МассивНаблюдателей;
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
Функция ПолучитьТемаПисьмаСобытие(ДопПараметры,СобытияВИстории)
|
Функция ПолучитьТемаПисьмаСобытие(ДопПараметры,СобытияВИстории)
|
||||||
|
@ -86,11 +86,11 @@
|
|||||||
Возврат мЗначениеКонстанты;
|
Возврат мЗначениеКонстанты;
|
||||||
КонецФункции //ПолучитьЗначениеКонстанты(ИмяКонстанты,ТипКонстанты)
|
КонецФункции //ПолучитьЗначениеКонстанты(ИмяКонстанты,ТипКонстанты)
|
||||||
|
|
||||||
Функция УстановитьЗначениеКонстанты(ИмяКонстанты,ЗначениеКонстанты) Экспорт
|
Процедура УстановитьЗначениеКонстанты(ИмяКонстанты,ЗначениеКонстанты) Экспорт
|
||||||
|
|
||||||
пКонстанта = ПредопределенноеЗначение("Справочник.узКонстанты."+ИмяКонстанты);
|
пКонстанта = ПредопределенноеЗначение("Справочник.узКонстанты."+ИмяКонстанты);
|
||||||
пКонстантаОбъект = пКонстанта.ПолучитьОбъект();
|
пКонстантаОбъект = пКонстанта.ПолучитьОбъект();
|
||||||
пКонстантаОбъект.Значение = ЗначениеКонстанты;
|
пКонстантаОбъект.Значение = ЗначениеКонстанты;
|
||||||
пКонстантаОбъект.Записать();
|
пКонстантаОбъект.Записать();
|
||||||
|
|
||||||
КонецФункции
|
КонецПроцедуры
|
@ -160,46 +160,6 @@
|
|||||||
ДиалогВыбораФайла.Показать (Оповещение);
|
ДиалогВыбораФайла.Показать (Оповещение);
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
&НаКлиенте
|
|
||||||
Процедура КомандаСоздатьVBSФайлДляПланировщикаЗаданий(Команда)
|
|
||||||
//Если НЕ ЗначениеЗаполнено(Объект.КаталогДляЗагрузкиИзмененийИзХранилща) Тогда
|
|
||||||
// Сообщение = Новый СообщениеПользователю;
|
|
||||||
// Сообщение.Текст = "Ошибка! Необходимо заполнить реквизит КаталогДляЗагрузкиИзмененийИзХранилща";
|
|
||||||
// Сообщение.Поле = "Объект.КаталогДляЗагрузкиИзмененийИзХранилща";
|
|
||||||
// Сообщение.Сообщить();
|
|
||||||
// Возврат;
|
|
||||||
//Конецесли;
|
|
||||||
//Если Объект.Ссылка.Пустая() Тогда
|
|
||||||
// Сообщение = Новый СообщениеПользователю;
|
|
||||||
// Сообщение.Текст = "Ошибка! необходиом сначала записать элемент";
|
|
||||||
// Сообщение.Сообщить();
|
|
||||||
// Возврат;
|
|
||||||
//Конецесли;
|
|
||||||
//
|
|
||||||
//ТекстКоманды = ПолучитьТекстКомандыНаСервере();
|
|
||||||
//VBSФайл = Новый ТекстовыйДокумент();
|
|
||||||
//VBSФайл.УстановитьТекст(
|
|
||||||
//"
|
|
||||||
//|Set WshShell = CreateObject(""WScript.Shell"")
|
|
||||||
//|
|
|
||||||
//|TekDate = date
|
|
||||||
//|TekTime = Time
|
|
||||||
//|FileName = ""StorageHistory_"" & Replace(TekDate,""."","""") & ""_"" & Replace(TekTime,"":"","""") & "".mxl""
|
|
||||||
// |
|
|
||||||
//|WshShell.Run """ + ТекстКоманды + ",0,0
|
|
||||||
//|");
|
|
||||||
//ИмяСкриптФайла = Объект.КаталогДляЗагрузкиИзмененийИзХранилща + "DumpStorage.vbs";
|
|
||||||
//VBSФайл.Записать(ИмяСкриптФайла,КодировкаТекста.ANSI);
|
|
||||||
КонецПроцедуры
|
|
||||||
|
|
||||||
&НаСервере
|
|
||||||
Функция ПолучитьТекстКомандыНаСервере()
|
|
||||||
//ОбрОбъект = Обработки.узЗагрузкаИзмененийИзХранилища.Создать();
|
|
||||||
//ОбрОбъект.Конфигурация = Объект.Ссылка;
|
|
||||||
//ФайлВыгрузкиИзменений = ""+Объект.КаталогДляЗагрузкиИзмененийИзХранилща + "\"" & FileName &";
|
|
||||||
//РезультатФункции = ОбрОбъект.ПолучитьНастройкиЗапускаКонфигуратора(ФайлВыгрузкиИзменений);
|
|
||||||
//Возврат РезультатФункции.ТекстКоманды;
|
|
||||||
КонецФункции
|
|
||||||
|
|
||||||
&НаКлиенте
|
&НаКлиенте
|
||||||
Процедура ИспользоватьАльтернативнуюЗагрузкуДанныхИзХранилищаПриИзменении(Элемент)
|
Процедура ИспользоватьАльтернативнуюЗагрузкуДанныхИзХранилищаПриИзменении(Элемент)
|
||||||
|
@ -48,6 +48,8 @@
|
|||||||
ДвоичныеДанные = Новый ДвоичныеДанные(АдресНаСервере);
|
ДвоичныеДанные = Новый ДвоичныеДанные(АдресНаСервере);
|
||||||
ТекущийОбъект.ФайлШаблонаХранилищеЗначений = Новый ХранилищеЗначения(ДвоичныеДанные, Новый СжатиеДанных(9));
|
ТекущийОбъект.ФайлШаблонаХранилищеЗначений = Новый ХранилищеЗначения(ДвоичныеДанные, Новый СжатиеДанных(9));
|
||||||
|
|
||||||
|
УдалитьФайлы(АдресНаСервере);
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
&НаКлиенте
|
&НаКлиенте
|
||||||
|
@ -1756,6 +1756,7 @@
|
|||||||
|
|
||||||
//++ УправлениеЗадачами: типовой код приводит к ошибке, т.к. опирается на основную таблицу списка.
|
//++ УправлениеЗадачами: типовой код приводит к ошибке, т.к. опирается на основную таблицу списка.
|
||||||
// Основной таблицы у нас нет, поэтому всегда прячем все поля, связанные с криптографией.
|
// Основной таблицы у нас нет, поэтому всегда прячем все поля, связанные с криптографией.
|
||||||
|
//РаботаСФайламиСлужебный.КриптографияПриСозданииФормыНаСервере(ЭтотОбъект);
|
||||||
Элементы.СписокНомерКартинкиПодписанЗашифрован.Видимость = Ложь;
|
Элементы.СписокНомерКартинкиПодписанЗашифрован.Видимость = Ложь;
|
||||||
Элементы.ФормаГруппаКомандЭлектроннаяПодписьИШифрование.Видимость = Ложь;
|
Элементы.ФормаГруппаКомандЭлектроннаяПодписьИШифрование.Видимость = Ложь;
|
||||||
Элементы.СписокКонтекстноеМенюГруппаКомандЭлектроннаяПодписьИШифрование.Видимость = Ложь;
|
Элементы.СписокКонтекстноеМенюГруппаКомандЭлектроннаяПодписьИШифрование.Видимость = Ложь;
|
||||||
@ -1763,7 +1764,7 @@
|
|||||||
Возврат;
|
Возврат;
|
||||||
//-- УправлениеЗадачами
|
//-- УправлениеЗадачами
|
||||||
|
|
||||||
РаботаСФайламиСлужебный.КриптографияПриСозданииФормыНаСервере(ЭтотОбъект);
|
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
Процедура ПриДобавленииПодсистемы(Описание) Экспорт
|
Процедура ПриДобавленииПодсистемы(Описание) Экспорт
|
||||||
Описание.Имя = "УправлениеЗадачами";
|
Описание.Имя = "УправлениеЗадачами";
|
||||||
Описание.Версия = "1.0.5.003";
|
Описание.Версия = "1.0.5.004";
|
||||||
|
|
||||||
//+ УрянскийД 2020-06-22 (начало)
|
//+ УрянскийД 2020-06-22 (начало)
|
||||||
Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
|
Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
|
||||||
|
@ -1,11 +1,4 @@
|
|||||||
Функция Удалить_ПолучитьТекстHTMLMarkdown(ТекстСодержания) Экспорт
|
|
||||||
|
|
||||||
//РезультатФункции = узОбщийМодульСервер.ПолучитьМакетыMardown(ТекстСодержания);
|
|
||||||
//
|
|
||||||
//ТекстHTMLМакет = РезультатФункции.ТекстHTMLМакет;
|
|
||||||
//Возврат ТекстHTMLМакет;
|
|
||||||
КонецФункции
|
|
||||||
|
|
||||||
Функция УстановитьТекстВБуферОбмена(ТекстДляКопирования) Экспорт
|
Функция УстановитьТекстВБуферОбмена(ТекстДляКопирования) Экспорт
|
||||||
пОбъект = Новый COMОбъект("htmlfile");
|
пОбъект = Новый COMОбъект("htmlfile");
|
||||||
пОбъект.ParentWindow.ClipboardData.Setdata("Text", ТекстДляКопирования);
|
пОбъект.ParentWindow.ClipboardData.Setdata("Text", ТекстДляКопирования);
|
||||||
|
@ -95,7 +95,7 @@
|
|||||||
|
|
||||||
Ресурс = "bot" + ТокенБота + "/sendMessage?chat_id=" + Формат(элемПолучатель.ИД, "ЧГ=") + "&text=" + ТекстПисьма+"&parse_mode=Markdown&disable_web_page_preview=true";
|
Ресурс = "bot" + ТокенБота + "/sendMessage?chat_id=" + Формат(элемПолучатель.ИД, "ЧГ=") + "&text=" + ТекстПисьма+"&parse_mode=Markdown&disable_web_page_preview=true";
|
||||||
//Ресурс = "bot" + ТокенБота + "/sendMessage?chat_id=" + Формат(элемПолучатель.ИД, "ЧГ=") + "&text=" + ТекстПисьма+"&disable_web_page_preview=true";
|
//Ресурс = "bot" + ТокенБота + "/sendMessage?chat_id=" + Формат(элемПолучатель.ИД, "ЧГ=") + "&text=" + ТекстПисьма+"&disable_web_page_preview=true";
|
||||||
Соединение = Новый HTTPСоединение("api.telegram.org", 443,,,,,Новый ЗащищенноеСоединениеOpenSSL());
|
Соединение = Новый HTTPСоединение("api.telegram.org", 443,,,,30,Новый ЗащищенноеСоединениеOpenSSL());
|
||||||
ЗапросHTTP = Новый HTTPЗапрос(Ресурс);
|
ЗапросHTTP = Новый HTTPЗапрос(Ресурс);
|
||||||
Ответ = Соединение.Получить(ЗапросHTTP);
|
Ответ = Соединение.Получить(ЗапросHTTP);
|
||||||
|
|
||||||
|
@ -49,7 +49,7 @@
|
|||||||
<xr:Item xsi:type="xr:MDObjectRef">Role.ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок</xr:Item>
|
<xr:Item xsi:type="xr:MDObjectRef">Role.ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок</xr:Item>
|
||||||
</DefaultRoles>
|
</DefaultRoles>
|
||||||
<Vendor>Управление задачами</Vendor>
|
<Vendor>Управление задачами</Vendor>
|
||||||
<Version>1.0.5.003</Version>
|
<Version>1.0.5.004</Version>
|
||||||
<UpdateCatalogAddress/>
|
<UpdateCatalogAddress/>
|
||||||
<IncludeHelpInContents>false</IncludeHelpInContents>
|
<IncludeHelpInContents>false</IncludeHelpInContents>
|
||||||
<UseManagedFormInOrdinaryApplication>true</UseManagedFormInOrdinaryApplication>
|
<UseManagedFormInOrdinaryApplication>true</UseManagedFormInOrdinaryApplication>
|
||||||
|
@ -750,6 +750,8 @@
|
|||||||
НастройкиЗапускаКонфигуратора = ПолучитьНастройкиЗапускаКонфигуратора();
|
НастройкиЗапускаКонфигуратора = ПолучитьНастройкиЗапускаКонфигуратора();
|
||||||
ТекстКоманды = НастройкиЗапускаКонфигуратора.ТекстКоманды;
|
ТекстКоманды = НастройкиЗапускаКонфигуратора.ТекстКоманды;
|
||||||
Сообщить(ТекстКоманды);
|
Сообщить(ТекстКоманды);
|
||||||
|
|
||||||
|
Возврат ТекстКоманды;
|
||||||
Конецфункции
|
Конецфункции
|
||||||
|
|
||||||
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -123,7 +123,7 @@
|
|||||||
УдалитьВременныеФайлы(РезультатВыгрузки);
|
УдалитьВременныеФайлы(РезультатВыгрузки);
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
Функция ЗаполнитьТЧОбработки()
|
Процедура ЗаполнитьТЧОбработки()
|
||||||
ИсторияХранилища.Очистить();
|
ИсторияХранилища.Очистить();
|
||||||
ИзмененныеОбъекты.Очистить();
|
ИзмененныеОбъекты.Очистить();
|
||||||
|
|
||||||
@ -176,7 +176,7 @@
|
|||||||
|
|
||||||
Конеццикла;
|
Конеццикла;
|
||||||
ИсторияХранилища.Сортировать("Версия");
|
ИсторияХранилища.Сортировать("Версия");
|
||||||
КонецФункции
|
КонецПроцедуры
|
||||||
|
|
||||||
Функция ПолучитьПолноеИмяМетаданных(ПолноеИмяМетаданных,СтрокамТЗHistory)
|
Функция ПолучитьПолноеИмяМетаданных(ПолноеИмяМетаданных,СтрокамТЗHistory)
|
||||||
ИмяОбъекта = СтрокамТЗHistory.OBJNAME;
|
ИмяОбъекта = СтрокамТЗHistory.OBJNAME;
|
||||||
|
@ -18,9 +18,11 @@
|
|||||||
|
|
||||||
пМассивНастроекПроксиСерверов = РегистрыСведений.узПроксиСерверы.ПолучитьМассивНастроекПроксиСерверов();
|
пМассивНастроекПроксиСерверов = РегистрыСведений.узПроксиСерверы.ПолучитьМассивНастроекПроксиСерверов();
|
||||||
пМассивНастроекПроксиСерверовКоличество = пМассивНастроекПроксиСерверов.Количество();
|
пМассивНастроекПроксиСерверовКоличество = пМассивНастроекПроксиСерверов.Количество();
|
||||||
Если пМассивНастроекПроксиСерверовКоличество = 0 Тогда
|
// + #232 Ruflex @RomanUpworksTeam
|
||||||
пВсеНастройкиПолучены = Ложь;
|
//Если пМассивНастроекПроксиСерверовКоличество = 0 Тогда
|
||||||
КонецЕсли;
|
// пВсеНастройкиПолучены = Ложь;
|
||||||
|
//КонецЕсли;
|
||||||
|
// - #232 Ruflex @RomanUpworksTeam
|
||||||
|
|
||||||
пНастройкиДляРаботыСТелеграм.Вставить("ТокенТелеграмБота", пТокенТелеграмБота);
|
пНастройкиДляРаботыСТелеграм.Вставить("ТокенТелеграмБота", пТокенТелеграмБота);
|
||||||
пНастройкиДляРаботыСТелеграм.Вставить("МассивНастроекПроксиСерверов", пМассивНастроекПроксиСерверов);
|
пНастройкиДляРаботыСТелеграм.Вставить("МассивНастроекПроксиСерверов", пМассивНастроекПроксиСерверов);
|
||||||
@ -85,6 +87,8 @@
|
|||||||
МассивResult = ОтветСоответсвие["result"];
|
МассивResult = ОтветСоответсвие["result"];
|
||||||
ИДПоследнегоПринятогоСообщения = Неопределено;
|
ИДПоследнегоПринятогоСообщения = Неопределено;
|
||||||
|
|
||||||
|
ТЗПользователиТелеграмм = ПолучитьТЗПользователиТелеграмм();
|
||||||
|
|
||||||
Для Каждого СоответсвиеMessange Из МассивResult Цикл
|
Для Каждого СоответсвиеMessange Из МассивResult Цикл
|
||||||
|
|
||||||
ИДПоследнегоПринятогоСообщения = Формат(СоответсвиеMessange["update_id"] + 1, "ЧГ=");
|
ИДПоследнегоПринятогоСообщения = Формат(СоответсвиеMessange["update_id"] + 1, "ЧГ=");
|
||||||
@ -100,33 +104,70 @@
|
|||||||
Если СоответсвиеMessange_message.Получить("text") <> Неопределено Тогда
|
Если СоответсвиеMessange_message.Получить("text") <> Неопределено Тогда
|
||||||
MessageText = СоответсвиеMessange_message.Получить("text");
|
MessageText = СоответсвиеMessange_message.Получить("text");
|
||||||
|
|
||||||
Если Найти(MessageText, "/addwork") <> 0 Тогда
|
// + Иванов А.Б. 2020-07-11
|
||||||
Запрос = Новый Запрос;
|
// Если Найти(MessageText, "/addwork") <> 0 Тогда
|
||||||
Запрос.Текст =
|
// Запрос = Новый Запрос;
|
||||||
"ВЫБРАТЬ ПЕРВЫЕ 1
|
// Запрос.Текст =
|
||||||
| Пользователи.Ссылка КАК Пользователь
|
// "ВЫБРАТЬ ПЕРВЫЕ 1
|
||||||
|ИЗ
|
// | Пользователи.Ссылка КАК Пользователь
|
||||||
| Справочник.Пользователи КАК Пользователи
|
// |ИЗ
|
||||||
|ГДЕ
|
// | Справочник.Пользователи КАК Пользователи
|
||||||
| Пользователи.узИДПользователяТелеграмм = &узИДПользователяТелеграмм";
|
// |ГДЕ
|
||||||
|
// | Пользователи.узИДПользователяТелеграмм = &узИДПользователяТелеграмм";
|
||||||
Запрос.УстановитьПараметр("узИДПользователяТелеграмм", Число(пСhatИД));
|
//
|
||||||
|
// Запрос.УстановитьПараметр("узИДПользователяТелеграмм", Число(пСhatИД));
|
||||||
РезультатЗапроса = Запрос.Выполнить();
|
//
|
||||||
Если РезультатЗапроса.Пустой() Тогда
|
// РезультатЗапроса = Запрос.Выполнить();
|
||||||
Продолжить;
|
// Если РезультатЗапроса.Пустой() Тогда
|
||||||
КонецЕсли;
|
// Продолжить;
|
||||||
|
// КонецЕсли;
|
||||||
Выборка = РезультатЗапроса.Выбрать();
|
//
|
||||||
Пока Выборка.Следующий() Цикл
|
// Выборка = РезультатЗапроса.Выбрать();
|
||||||
ТекущиеДелаОбъект = Справочники.узТекущиеДела.СоздатьЭлемент();
|
// Пока Выборка.Следующий() Цикл
|
||||||
ТекущиеДелаОбъект.Автор = Выборка.Пользователь;
|
// ТекущиеДелаОбъект = Справочники.узТекущиеДела.СоздатьЭлемент();
|
||||||
ТекущиеДелаОбъект.ТекстСодержания = СтрЗаменить(MessageText, "/addwork", "");
|
// ТекущиеДелаОбъект.Автор = Выборка.Пользователь;
|
||||||
ТекущиеДелаОбъект.Записать();
|
// ТекущиеДелаОбъект.ТекстСодержания = СтрЗаменить(MessageText, "/addwork", "");
|
||||||
КонецЦикла;
|
// ТекущиеДелаОбъект.Записать();
|
||||||
|
// КонецЦикла;
|
||||||
|
//
|
||||||
|
// КонецЕсли;
|
||||||
|
|
||||||
|
Если Найти(MessageText, "/addwork") = 0 Тогда
|
||||||
|
Продолжить;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
|
пузИДПользователяТелеграмм = Число(пСhatИД);
|
||||||
|
|
||||||
|
ПараметрыОтбора=Новый Структура();
|
||||||
|
ПараметрыОтбора.Вставить("узИДПользователяТелеграмм",пузИДПользователяТелеграмм);
|
||||||
|
НайденныеСтроки = ТЗПользователиТелеграмм.НайтиСтроки(ПараметрыОтбора);
|
||||||
|
ВсегоНайденныеСтроки = НайденныеСтроки.Количество();
|
||||||
|
ТекстОшибки = "";
|
||||||
|
Если ВсегоНайденныеСтроки = 1 тогда
|
||||||
|
СтрокаТЗПользователиТелеграмм = НайденныеСтроки[0];
|
||||||
|
ИначеЕсли ВсегоНайденныеСтроки > 1 Тогда
|
||||||
|
ТекстОшибки = "Ошибка! Найдено более 1 строки";
|
||||||
|
Иначе
|
||||||
|
ТекстОшибки = "Ошибка! Не найдена строка";
|
||||||
|
Конецесли;
|
||||||
|
|
||||||
|
Если ЗначениеЗаполнено(ТекстОшибки) Тогда
|
||||||
|
ТекстОшибки = ТекстОшибки
|
||||||
|
+" в ""ТЗПользователиТелеграмм"" для ";
|
||||||
|
Для каждого ЭлементОтбора из ПараметрыОтбора цикл
|
||||||
|
ТекстОшибки = ТекстОшибки
|
||||||
|
+" "+ ЭлементОтбора.Ключ + " = ["+ЭлементОтбора.Значение+"]";
|
||||||
|
Конеццикла;
|
||||||
|
ВызватьИсключение ТекстОшибки;
|
||||||
|
Конецесли;
|
||||||
|
|
||||||
|
ТекущиеДелаОбъект = Справочники.узТекущиеДела.СоздатьЭлемент();
|
||||||
|
ТекущиеДелаОбъект.Автор = СтрокаТЗПользователиТелеграмм.Пользователь;
|
||||||
|
ТекущиеДелаОбъект.ТекстСодержания = СтрЗаменить(MessageText, "/addwork", "");
|
||||||
|
ТекущиеДелаОбъект.Записать();
|
||||||
|
// - Иванов А.Б. 2020-07-11
|
||||||
|
|
||||||
|
|
||||||
ИначеЕсли СоответсвиеMessange_message.Получить("photo") <> Неопределено Тогда
|
ИначеЕсли СоответсвиеMessange_message.Получить("photo") <> Неопределено Тогда
|
||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
@ -141,6 +182,26 @@
|
|||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Функция ПолучитьТЗПользователиТелеграмм()
|
||||||
|
|
||||||
|
Запрос = Новый Запрос;
|
||||||
|
Запрос.Текст = "ВЫБРАТЬ
|
||||||
|
| МАКСИМУМ(Пользователи.Ссылка) КАК Пользователь,
|
||||||
|
| Пользователи.узИДПользователяТелеграмм КАК узИДПользователяТелеграмм
|
||||||
|
|ИЗ
|
||||||
|
| Справочник.Пользователи КАК Пользователи
|
||||||
|
|ГДЕ
|
||||||
|
| Пользователи.узИДПользователяТелеграмм <> 0
|
||||||
|
|
|
||||||
|
|СГРУППИРОВАТЬ ПО
|
||||||
|
| Пользователи.узИДПользователяТелеграмм";
|
||||||
|
|
||||||
|
ТЗПользователиТелеграмм = Запрос.Выполнить().Выгрузить();
|
||||||
|
|
||||||
|
Возврат ТЗПользователиТелеграмм;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
Процедура ОтправитьСообщениеTelegram(ТекстСообщения, МассивПользователейДляОтправки, УведомлятьОРезультате = Ложь) Экспорт
|
Процедура ОтправитьСообщениеTelegram(ТекстСообщения, МассивПользователейДляОтправки, УведомлятьОРезультате = Ложь) Экспорт
|
||||||
|
|
||||||
Если МассивПользователейДляОтправки.Количество() = 0 Тогда
|
Если МассивПользователейДляОтправки.Количество() = 0 Тогда
|
||||||
@ -265,15 +326,31 @@
|
|||||||
Процедура ВыполнитьЗапросHTTP_Telegram(Ответ, ЗапросHTTP, МассивНастроекПроксиСерверов, НомерТекущейНастройкиПрокси, ВОтветОжидаемJSON = Ложь)
|
Процедура ВыполнитьЗапросHTTP_Telegram(Ответ, ЗапросHTTP, МассивНастроекПроксиСерверов, НомерТекущейНастройкиПрокси, ВОтветОжидаемJSON = Ложь)
|
||||||
|
|
||||||
Ответ = Неопределено;
|
Ответ = Неопределено;
|
||||||
Если НомерТекущейНастройкиПрокси >= МассивНастроекПроксиСерверов.Количество() Тогда
|
|
||||||
Возврат;
|
// + #232 Ruflex @RomanUpworksTeam
|
||||||
|
///+Ruflex
|
||||||
|
///-Ruflex
|
||||||
|
//Если (НомерТекущейНастройкиПрокси >= МассивНастроекПроксиСерверов.Количество()) ) Тогда
|
||||||
|
// Возврат;
|
||||||
|
//КонецЕсли;
|
||||||
|
|
||||||
|
Если (МассивНастроекПроксиСерверов.Количество()>0) Тогда
|
||||||
|
|
||||||
|
Если (НомерТекущейНастройкиПрокси >= МассивНастроекПроксиСерверов.Количество()) Тогда
|
||||||
|
Возврат;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
НастройкиПрокси = МассивНастроекПроксиСерверов[НомерТекущейНастройкиПрокси];
|
||||||
|
ИнтернетПрокси = Новый ИнтернетПрокси(Ложь);
|
||||||
|
ИнтернетПрокси.Установить("https",НастройкиПрокси.Адрес,НастройкиПрокси.Порт,НастройкиПрокси.Логин,НастройкиПрокси.Пароль,Ложь);
|
||||||
|
Соединение = Новый HTTPСоединение("api.telegram.org", 443,,,ИнтернетПрокси,30,Новый ЗащищенноеСоединениеOpenSSL());
|
||||||
|
|
||||||
|
Иначе
|
||||||
|
|
||||||
|
Соединение = Новый HTTPСоединение("api.telegram.org", 443,,,,30,Новый ЗащищенноеСоединениеOpenSSL());
|
||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
// + #232 Ruflex @RomanUpworksTeam
|
||||||
НастройкиПрокси = МассивНастроекПроксиСерверов[НомерТекущейНастройкиПрокси];
|
|
||||||
ИнтернетПрокси = Новый ИнтернетПрокси(Ложь);
|
|
||||||
ИнтернетПрокси.Установить("https",НастройкиПрокси.Адрес,НастройкиПрокси.Порт,НастройкиПрокси.Логин,НастройкиПрокси.Пароль,Ложь);
|
|
||||||
|
|
||||||
Соединение = Новый HTTPСоединение("api.telegram.org", 443,,,ИнтернетПрокси,,Новый ЗащищенноеСоединениеOpenSSL());
|
|
||||||
|
|
||||||
Попытка
|
Попытка
|
||||||
|
|
||||||
@ -305,9 +382,20 @@
|
|||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Исключение
|
Исключение
|
||||||
НомерТекущейНастройкиПрокси = НомерТекущейНастройкиПрокси + 1;
|
|
||||||
РегистрыСведений.узПроксиСерверы.ИзменитьОценкуРаботоспособностиПроксиСервера(НастройкиПрокси.Адрес, НастройкиПрокси.Порт, -1);
|
// + #232 Ruflex @RomanUpworksTeam
|
||||||
ВыполнитьЗапросHTTP_Telegram(Ответ, ЗапросHTTP, МассивНастроекПроксиСерверов, НомерТекущейНастройкиПрокси, ВОтветОжидаемJSON);
|
//НомерТекущейНастройкиПрокси = НомерТекущейНастройкиПрокси + 1;
|
||||||
|
//РегистрыСведений.узПроксиСерверы.ИзменитьОценкуРаботоспособностиПроксиСервера(НастройкиПрокси.Адрес, НастройкиПрокси.Порт, -1);
|
||||||
|
//ВыполнитьЗапросHTTP_Telegram(Ответ, ЗапросHTTP, МассивНастроекПроксиСерверов, НомерТекущейНастройкиПрокси, ВОтветОжидаемJSON);
|
||||||
|
|
||||||
|
Если (МассивНастроекПроксиСерверов.Количество()>0) Тогда
|
||||||
|
|
||||||
|
НомерТекущейНастройкиПрокси = НомерТекущейНастройкиПрокси + 1;
|
||||||
|
РегистрыСведений.узПроксиСерверы.ИзменитьОценкуРаботоспособностиПроксиСервера(НастройкиПрокси.Адрес, НастройкиПрокси.Порт, -1);
|
||||||
|
ВыполнитьЗапросHTTP_Telegram(Ответ, ЗапросHTTP, МассивНастроекПроксиСерверов, НомерТекущейНастройкиПрокси, ВОтветОжидаемJSON);
|
||||||
|
|
||||||
|
Конецесли;
|
||||||
|
// - #232 Ruflex @RomanUpworksTeam
|
||||||
КонецПопытки
|
КонецПопытки
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
@ -282,6 +282,38 @@
|
|||||||
<Comment/>
|
<Comment/>
|
||||||
</Properties>
|
</Properties>
|
||||||
</EnumValue>
|
</EnumValue>
|
||||||
|
<EnumValue uuid="143f2600-1803-4f6d-a8fd-cd27d38321df">
|
||||||
|
<Properties>
|
||||||
|
<Name>ИзмененОтвет</Name>
|
||||||
|
<Synonym>
|
||||||
|
<v8:item>
|
||||||
|
<v8:lang>ru</v8:lang>
|
||||||
|
<v8:content>Изменен ответ</v8:content>
|
||||||
|
</v8:item>
|
||||||
|
<v8:item>
|
||||||
|
<v8:lang>en</v8:lang>
|
||||||
|
<v8:content>Add question</v8:content>
|
||||||
|
</v8:item>
|
||||||
|
</Synonym>
|
||||||
|
<Comment/>
|
||||||
|
</Properties>
|
||||||
|
</EnumValue>
|
||||||
|
<EnumValue uuid="5a3fab7e-5452-4a8e-8b30-9d531fa9839b">
|
||||||
|
<Properties>
|
||||||
|
<Name>ИзмененВопрос</Name>
|
||||||
|
<Synonym>
|
||||||
|
<v8:item>
|
||||||
|
<v8:lang>ru</v8:lang>
|
||||||
|
<v8:content>Изменен вопрос</v8:content>
|
||||||
|
</v8:item>
|
||||||
|
<v8:item>
|
||||||
|
<v8:lang>en</v8:lang>
|
||||||
|
<v8:content>Add question</v8:content>
|
||||||
|
</v8:item>
|
||||||
|
</Synonym>
|
||||||
|
<Comment/>
|
||||||
|
</Properties>
|
||||||
|
</EnumValue>
|
||||||
</ChildObjects>
|
</ChildObjects>
|
||||||
</Enum>
|
</Enum>
|
||||||
</MetaDataObject>
|
</MetaDataObject>
|
@ -25,6 +25,60 @@
|
|||||||
</Synonym>
|
</Synonym>
|
||||||
<Comment/>
|
<Comment/>
|
||||||
<UseStandardCommands>false</UseStandardCommands>
|
<UseStandardCommands>false</UseStandardCommands>
|
||||||
|
<StandardAttributes>
|
||||||
|
<xr:StandardAttribute name="Order">
|
||||||
|
<xr:LinkByType/>
|
||||||
|
<xr:FillChecking>DontCheck</xr:FillChecking>
|
||||||
|
<xr:MultiLine>false</xr:MultiLine>
|
||||||
|
<xr:FillFromFillingValue>false</xr:FillFromFillingValue>
|
||||||
|
<xr:CreateOnInput>Auto</xr:CreateOnInput>
|
||||||
|
<xr:MaxValue xsi:nil="true"/>
|
||||||
|
<xr:ToolTip/>
|
||||||
|
<xr:ExtendedEdit>false</xr:ExtendedEdit>
|
||||||
|
<xr:Format/>
|
||||||
|
<xr:ChoiceForm/>
|
||||||
|
<xr:QuickChoice>Auto</xr:QuickChoice>
|
||||||
|
<xr:ChoiceHistoryOnInput>Auto</xr:ChoiceHistoryOnInput>
|
||||||
|
<xr:EditFormat/>
|
||||||
|
<xr:PasswordMode>false</xr:PasswordMode>
|
||||||
|
<xr:DataHistory>Use</xr:DataHistory>
|
||||||
|
<xr:MarkNegatives>false</xr:MarkNegatives>
|
||||||
|
<xr:MinValue xsi:nil="true"/>
|
||||||
|
<xr:Synonym/>
|
||||||
|
<xr:Comment/>
|
||||||
|
<xr:FullTextSearch>Use</xr:FullTextSearch>
|
||||||
|
<xr:ChoiceParameterLinks/>
|
||||||
|
<xr:FillValue xsi:nil="true"/>
|
||||||
|
<xr:Mask/>
|
||||||
|
<xr:ChoiceParameters/>
|
||||||
|
</xr:StandardAttribute>
|
||||||
|
<xr:StandardAttribute name="Ref">
|
||||||
|
<xr:LinkByType/>
|
||||||
|
<xr:FillChecking>DontCheck</xr:FillChecking>
|
||||||
|
<xr:MultiLine>false</xr:MultiLine>
|
||||||
|
<xr:FillFromFillingValue>false</xr:FillFromFillingValue>
|
||||||
|
<xr:CreateOnInput>Auto</xr:CreateOnInput>
|
||||||
|
<xr:MaxValue xsi:nil="true"/>
|
||||||
|
<xr:ToolTip/>
|
||||||
|
<xr:ExtendedEdit>false</xr:ExtendedEdit>
|
||||||
|
<xr:Format/>
|
||||||
|
<xr:ChoiceForm/>
|
||||||
|
<xr:QuickChoice>Auto</xr:QuickChoice>
|
||||||
|
<xr:ChoiceHistoryOnInput>Auto</xr:ChoiceHistoryOnInput>
|
||||||
|
<xr:EditFormat/>
|
||||||
|
<xr:PasswordMode>false</xr:PasswordMode>
|
||||||
|
<xr:DataHistory>Use</xr:DataHistory>
|
||||||
|
<xr:MarkNegatives>false</xr:MarkNegatives>
|
||||||
|
<xr:MinValue xsi:nil="true"/>
|
||||||
|
<xr:Synonym/>
|
||||||
|
<xr:Comment/>
|
||||||
|
<xr:FullTextSearch>Use</xr:FullTextSearch>
|
||||||
|
<xr:ChoiceParameterLinks/>
|
||||||
|
<xr:FillValue xsi:nil="true"/>
|
||||||
|
<xr:Mask/>
|
||||||
|
<xr:ChoiceParameters/>
|
||||||
|
</xr:StandardAttribute>
|
||||||
|
</StandardAttributes>
|
||||||
<Characteristics/>
|
<Characteristics/>
|
||||||
<QuickChoice>true</QuickChoice>
|
<QuickChoice>true</QuickChoice>
|
||||||
<ChoiceMode>BothWays</ChoiceMode>
|
<ChoiceMode>BothWays</ChoiceMode>
|
||||||
|
@ -132,10 +132,14 @@
|
|||||||
|
|
||||||
ВидыСобытий_ДобавленВопрос = ПредопределенноеЗначение("Перечисление.узВидыСобытий.ДобавленВопрос");
|
ВидыСобытий_ДобавленВопрос = ПредопределенноеЗначение("Перечисление.узВидыСобытий.ДобавленВопрос");
|
||||||
ВидыСобытий_ЗакрытВопрос = ПредопределенноеЗначение("Перечисление.узВидыСобытий.ЗакрытВопрос");
|
ВидыСобытий_ЗакрытВопрос = ПредопределенноеЗначение("Перечисление.узВидыСобытий.ЗакрытВопрос");
|
||||||
|
ВидыСобытий_ИзмененОтвет = ПредопределенноеЗначение("Перечисление.узВидыСобытий.ИзмененОтвет");
|
||||||
|
ВидыСобытий_ИзмененВопрос = ПредопределенноеЗначение("Перечисление.узВидыСобытий.ИзмененВопрос");
|
||||||
|
|
||||||
МассивВидовСобытияДляРегистрацииАктивности = Новый Массив();
|
МассивВидовСобытияДляРегистрацииАктивности = Новый Массив();
|
||||||
МассивВидовСобытияДляРегистрацииАктивности.Добавить(ВидыСобытий_ДобавленВопрос);
|
МассивВидовСобытияДляРегистрацииАктивности.Добавить(ВидыСобытий_ДобавленВопрос);
|
||||||
МассивВидовСобытияДляРегистрацииАктивности.Добавить(ВидыСобытий_ЗакрытВопрос);
|
МассивВидовСобытияДляРегистрацииАктивности.Добавить(ВидыСобытий_ЗакрытВопрос);
|
||||||
|
МассивВидовСобытияДляРегистрацииАктивности.Добавить(ВидыСобытий_ИзмененОтвет);
|
||||||
|
МассивВидовСобытияДляРегистрацииАктивности.Добавить(ВидыСобытий_ИзмененВопрос);
|
||||||
|
|
||||||
Для каждого СтрокаТЗСобытия из ТЗСобытия цикл
|
Для каждого СтрокаТЗСобытия из ТЗСобытия цикл
|
||||||
пВидСобытия = СтрокаТЗСобытия.ВидСобытия;
|
пВидСобытия = СтрокаТЗСобытия.ВидСобытия;
|
||||||
|
@ -70,3 +70,71 @@
|
|||||||
Функция ЕстьЛиСлежениеЗаЗадачейУТекущегоПользователя(Задача) Экспорт
|
Функция ЕстьЛиСлежениеЗаЗадачейУТекущегоПользователя(Задача) Экспорт
|
||||||
Возврат ЕстьЛиСлежениеЗаЗадачейУПользователя(Задача, Пользователи.ТекущийПользователь());
|
Возврат ЕстьЛиСлежениеЗаЗадачейУПользователя(Задача, Пользователи.ТекущийПользователь());
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
Функция ПолучитьМассивНаблюдателей(Задача) Экспорт
|
||||||
|
|
||||||
|
МассивНаблюдателей = Новый Массив();
|
||||||
|
|
||||||
|
Запрос = Новый Запрос;
|
||||||
|
Запрос.Текст =
|
||||||
|
"ВЫБРАТЬ
|
||||||
|
| узНаблюдателиЗаЗадачами.Пользователь
|
||||||
|
|ИЗ
|
||||||
|
| РегистрСведений.узНаблюдателиЗаЗадачами КАК узНаблюдателиЗаЗадачами
|
||||||
|
|ГДЕ
|
||||||
|
| узНаблюдателиЗаЗадачами.Задача = &Задача
|
||||||
|
| И узНаблюдателиЗаЗадачами.Пользователь.узНеОтправлятьУведомленияНаПочту = ЛОЖЬ
|
||||||
|
| И узНаблюдателиЗаЗадачами.Пользователь <> &Исполнитель";
|
||||||
|
|
||||||
|
|
||||||
|
ТекущийПользователь = Пользователи.ТекущийПользователь();
|
||||||
|
|
||||||
|
Запрос.УстановитьПараметр("Исполнитель", Задача.Исполнитель);
|
||||||
|
Запрос.УстановитьПараметр("Задача", Задача);
|
||||||
|
|
||||||
|
РезультатЗапроса = Запрос.Выполнить();
|
||||||
|
Если НЕ РезультатЗапроса.Пустой() Тогда
|
||||||
|
Выборка = РезультатЗапроса.Выбрать();
|
||||||
|
Пока Выборка.Следующий() Цикл
|
||||||
|
МассивНаблюдателей.Добавить(Выборка.Пользователь);
|
||||||
|
КонецЦикла;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ТЧСтатусНаблюдатели = Задача.Статус.Наблюдатели;
|
||||||
|
|
||||||
|
Для каждого СтрокаНаблюдатели из ТЧСтатусНаблюдатели цикл
|
||||||
|
Если МассивНаблюдателей.Найти(СтрокаНаблюдатели.Пользователь) <> Неопределено Тогда
|
||||||
|
Продолжить;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если СтрокаНаблюдатели.Пользователь = ТекущийПользователь
|
||||||
|
И НЕ СтрокаНаблюдатели.Пользователь.узОтправлятьУведомленияОДействияхПользователяЕмуНаПочту Тогда
|
||||||
|
Продолжить;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если НЕ СтрокаНаблюдатели.Контрагент.Пустая()
|
||||||
|
И НЕ Задача.Контрагент.Пустая()
|
||||||
|
И НЕ СтрокаНаблюдатели.Контрагент = Задача.Контрагент Тогда
|
||||||
|
Продолжить;
|
||||||
|
КонецЕсли;
|
||||||
|
МассивНаблюдателей.Добавить(СтрокаНаблюдатели.Пользователь);
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
пНаблюдателиЗаОснЗадачей = Задача.ОсновнаяЗадача.НаблюдателиЗаОсновнойЗадачей;
|
||||||
|
Для каждого СтрокапНаблюдателиЗаОснЗадачей из пНаблюдателиЗаОснЗадачей цикл
|
||||||
|
пНаблюдатель = СтрокапНаблюдателиЗаОснЗадачей.Пользователь;
|
||||||
|
Если МассивНаблюдателей.Найти(пНаблюдатель) <> Неопределено Тогда
|
||||||
|
Продолжить;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если пНаблюдатель = ТекущийПользователь
|
||||||
|
И НЕ пНаблюдатель.узОтправлятьУведомленияОДействияхПользователяЕмуНаПочту Тогда
|
||||||
|
Продолжить;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
МассивНаблюдателей.Добавить(пНаблюдатель);
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Возврат МассивНаблюдателей;
|
||||||
|
|
||||||
|
КонецФункции
|
Loading…
x
Reference in New Issue
Block a user