|
Обработкой будет формироваться 5000 задач .УПП 1.3 СКЛ | ☑ | ||
---|---|---|---|---|
0
yavasya
27.08.15
✎
16:52
|
База не умрет ? Сколько по времени займет данная процедура ?
|
|||
1
ДенисЧ
27.08.15
✎
16:53
|
анафехоа?
|
|||
2
yavasya
27.08.15
✎
16:53
|
Процедура СоздатьЗадачиПользователям() Экспорт
ГорячийТеплый=новый Массив; ГорячийТеплый.Добавить(Справочники.доработкаСтатусКонтрагента.НайтиПоКоду("000000009")); ГорячийТеплый.Добавить(Справочники.доработкаСтатусКонтрагента.НайтиПоКоду("000000010")); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ПоследниеДокументыКонтрагентов.Ссылка, | ПоследниеДокументыКонтрагентов.Контрагент КАК Контрагент, | ПоследниеДокументыКонтрагентов.Дата |ПОМЕСТИТЬ ПоследниеДокументыСобытие |ИЗ | Документ.Событие КАК ПоследниеДокументыКонтрагентов | ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ | Доки.Контрагент КАК Контрагент, | МАКСИМУМ(Доки.Дата) КАК ДатаПоследнегоДокумента | ИЗ | Документ.Событие КАК Доки | | СГРУППИРОВАТЬ ПО | Доки.Контрагент) КАК ДатыПоследнихДокументовКонтрагентов | ПО ПоследниеДокументыКонтрагентов.Контрагент = ДатыПоследнихДокументовКонтрагентов.Контрагент | И ПоследниеДокументыКонтрагентов.Дата = ДатыПоследнихДокументовКонтрагентов.ДатаПоследнегоДокумента |ГДЕ | ПоследниеДокументыКонтрагентов.ВидСобытия = ЗНАЧЕНИЕ(Перечисление.ВидыСобытий.ТелефонныйЗвонок) |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | Контрагенты.Ссылка КАК СправочникКонтрагент, | ПоследниеДокументыСобытие.Ссылка КАК ДокументКонтрагент, | ПоследниеДокументыСобытие.Дата КАК Дата, | РАЗНОСТЬДАТ(ПоследниеДокументыСобытие.Дата, &СегодняДень, ДЕНЬ) КАК РазностьДТ |ИЗ | Справочник.Контрагенты КАК Контрагенты | ЛЕВОЕ СОЕДИНЕНИЕ ПоследниеДокументыСобытие КАК ПоследниеДокументыСобытие | ПО (ПоследниеДокументыСобытие.Контрагент = Контрагенты.Ссылка) |ГДЕ | Контрагенты.СтатусКонтрагента В(&ГорячийТеплый) | И (РАЗНОСТЬДАТ(ПоследниеДокументыСобытие.Дата, &СегодняДень, ДЕНЬ) >= 7 | ИЛИ ПоследниеДокументыСобытие.Ссылка ЕСТЬ NULL ) | |УПОРЯДОЧИТЬ ПО | СправочникКонтрагент |АВТОУПОРЯДОЧИВАНИЕ"; Запрос.УстановитьПараметр("ГорячийТеплый", ГорячийТеплый); Запрос.УстановитьПараметр("СегодняДень", НачалоДня(ТекущаяДата())); ТЗ_Итоговая=Запрос.Выполнить().Выгрузить(); ТабличнаяЧасть.Загрузить(ТЗ_Итоговая); ВыборкаЗапроса=Запрос.Выполнить().Выбрать(); // //Пока ВыборкаЗапроса.Следующий() цикл // СоздатьЗадачиПользователям(ВыборкаЗапроса); КонецПроцедуры Процедура СоздатьЗадачиПользователям(ВыборкаЗапроса) Счетчик=0; ЭтаОрганизация=Справочники.Организации.НайтиПоКоду(000000001); Пока ВыборкаЗапроса.Следующий() цикл если не значениеЗаполнено(ВыборкаЗапроса.СправочникКонтрагент.ОсновнойМенеджерПокупателя) тогда возврат; конецЕсли; //Счетчик=Счетчик+1; //Если Счетчик>10 Тогда // Сообщить("10"); // Возврат; //КонецЕсли; СозданнаяЗадача=Задачи.ЗадачаИсполнителя.СоздатьЗадачу(); СозданнаяЗадача.Исполнитель=ВыборкаЗапроса.СправочникКонтрагент.ОсновнойМенеджерПокупателя; СозданнаяЗадача.Дата=ТекущаяДата(); СозданнаяЗадача.ОбъектЗадачи=ВыборкаЗапроса.СправочникКонтрагент; СозданнаяЗадача.ВидЗадачи=Справочники.ВидыЗадачПользователей.ТелефонныйЗвонок; СозданнаяЗадача.Организация=ЭтаОрганизация; СозданнаяЗадача.Программно=Истина; СозданнаяЗадача.Наименование="Перезвонить клиенту " +ВыборкаЗапроса.СправочникКонтрагент.Наименование + Символы.ПС+ "Последний контакт "+ ВыборкаЗапроса.Дата+ Символы.ПС+СформироватьКОнтактнуюИнформацию(ВыборкаЗапроса.СправочникКонтрагент); СозданнаяЗадача.Записать(); //СозданнаяЗадача.ПолучитьФорму("ФормаЗадачи").Открыть(); КонецЦикла; КонецПроцедуры Функция СформироватьКОнтактнуюИнформацию(Контрагент) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | КонтактнаяИнформация.Представление, | КонтактнаяИнформация.Поле3 |ИЗ | РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация |ГДЕ | КонтактнаяИнформация.Объект = &Объект | И КонтактнаяИнформация.Тип.Ссылка = &Телефонный"; Запрос.УстановитьПараметр("Объект", Контрагент); Запрос.УстановитьПараметр("Телефонный", Перечисления.ТипыКонтактнойИнформации.Телефон); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Телефоны=""; Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Если ЗначениеЗаполнено(ВыборкаДетальныеЗаписи.Представление) тогда Телефоны=Телефоны+ВыборкаДетальныеЗаписи.Представление+ " , "; ИначеЕсли ЗначениеЗаполнено(ВыборкаДетальныеЗаписи.Поле3) тогда Телефоны=Телефоны+ВыборкаДетальныеЗаписи.Поле3; КонецЕсли; КонецЦикла; Возврат Телефоны; КонецФункции; // - Василий |
|||
3
yavasya
27.08.15
✎
16:53
|
напоминалки менагерам пусть звонят
|
|||
4
yukon
27.08.15
✎
16:54
|
Если диск 80Gb то может и умрет. Хотя это ожидаемо вроде бы.
|
|||
5
yavasya
27.08.15
✎
16:55
|
(4) Почему ? Задачи будут храниться месяц
|
|||
6
yavasya
27.08.15
✎
16:56
|
в первый раз 5000 , потом по 1000 в день
|
|||
7
yavasya
27.08.15
✎
16:56
|
Диск вроде ничего
|
|||
8
Бубка Гоп
27.08.15
✎
16:57
|
(0) Запусти создание для 500 задач.
Отследи время выполнения и загрузку сервера. Умножь на 10. Сделай вывод. |
|||
9
yavasya
27.08.15
✎
17:10
|
500 за 2 минуты . 2*10 = 20 минут )
|
|||
10
Бубка Гоп
27.08.15
✎
17:14
|
(9) видишь, не трудно оказалось.
П.С. я бы все таки регламентное по ночам запускал |
|||
11
yavasya
27.08.15
✎
17:18
|
(10) благодарю за совет
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |