|   |   | 
| 
 | Ограничение выборки с даты "ТекущаяДата минус 2 года" | ☑ | ||
|---|---|---|---|---|
| 0
    
        TumenJan 29.09.19✎ 05:14 | 
        Подскажите есть код - который отправляет уведомления на почту. Он проверяет одинаковые названия. Где в коде указать чтобы делал выборку только за 2 года.
 Вот собственно код: Процедура ПриЗаписи(Отказ, Замещение) Если НЕ Отказ Тогда // Проверим лимиты категорий. ЛимитКоличестваКатегорий = 1000; КатегорииНабора = ЭтотОбъект.ВыгрузитьКолонку("Категория"); ТекстЗапроса = " |///////////////////////////////////////////////// |// вт_Данные |ВЫБРАТЬ | ПоследствияИСитуации.Категория.Родитель КАК Родитель, | ПоследствияИСитуации.Категория.Наименование КАК Категория, | КОЛИЧЕСТВО(*) КАК КоличествоЗаписей |ПОМЕСТИТЬ вт_Данные |ИЗ РегистрНакопления.ПоследствияИСитуации КАК ПоследствияИСитуации |ГДЕ | ПоследствияИСитуации.Категория В(&ИзменяемыеКатегории) |СГРУППИРОВАТЬ ПО | ПоследствияИСитуации.Категория.Родитель, | ПоследствияИСитуации.Категория.Наименование |ИМЕЮЩИЕ | КОЛИЧЕСТВО(*) > &ЛимитКоличестваКатегорий |; | |///////////////////////////////////////////////// |// Запрос-результат |ВЫБРАТЬ | вт_Данные.Родитель КАК Родитель, | вт_Данные.Категория КАК Категория, | вт_Данные.КоличествоЗаписей КАК КоличествоЗаписей |ИЗ вт_Данные КАК вт_Данные |ИТОГИ | СУММА(КоличествоЗаписей) |ПО | Родитель |; |///////////////////////////////////////////////// |УНИЧТОЖИТЬ вт_Данные |; |"; Запрос = Новый Запрос(ТекстЗапроса); Запрос.УстановитьПараметр("ИзменяемыеКатегории", КатегорииНабора); Запрос.УстановитьПараметр("ЛимитКоличестваКатегорий", ЛимитКоличестваКатегорий); ВыборкаГруппы = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); СписокКатегорий = ""; Пока ВыборкаГруппы.Следующий() Цикл СписокКатегорий = СписокКатегорий + " | <li><span style=""color:#0000FF""><strong>" + СокрЛП(ВыборкаГруппы.Родитель) + "</strong></span>, а именно: | <ul>"; Выборка = ВыборкаГруппы.Выбрать(ОбходРезультатаЗапроса.Прямой); Пока Выборка.Следующий() Цикл СписокКатегорий = СписокКатегорий + " | <li><span style=""color:#0000FF"">" + СокрЛП(Выборка.Категория) + "</span> достигло " + Выборка.КоличествоЗаписей + " случаев за последние 730 дней.</li>"; КонецЦикла; СписокКатегорий = СписокКатегорий + " | </ul> | </li>"; КонецЦикла; Если НЕ ПустаяСтрока(СписокКатегорий) Тогда Адресаты = Новый Массив; Адресаты.Добавить("********************"); ПараметрыСообщения = Новый Структура("Тема, Адресаты, Сообщение, ТипТекста"); ПараметрыСообщения.Тема = "Контроль последствий и ситуаций"; ПараметрыСообщения.Сообщение = "<html> |<head> |<meta http-equiv=""Content-type"" content=""text/html; charset=utf-8""> |</head> |<body> |<p> | Добрый день! |</p> |<ul> | Обращаю Ваше внимание, что количество выявленных опасных действий | и опасных условий по категории: |" + СписокКатегорий + " |</ul> |<p> | С уважением, | Руководитель рабочей группы ПАБ |</p> |</body> |</html> |"; ПараметрыСообщения.ТипТекста = ТипТекстаПочтовогоСообщения.HTML; ПараметрыСообщения.Адресаты = Адресаты; РаботаСПочтой.ОтправитьЭлектронноеПисьмо(ПараметрыСообщения); КонецЕсли; КонецЕсли; | |||
| 1
    
        Конструктор1С 29.09.19✎ 05:49 | 
        ДатаНачала = ДобавитьМесяц(ТекущаяДата(), -24);     | |||
| 2
    
        TumenJan 29.09.19✎ 06:23 | 
        (1) а где это строку в процедуре добавить, подскажите пожалуйста.
 -24 - это количество дней | |||
| 3
    
        yfylhjkjy 29.09.19✎ 09:03 | 
        (2) неужели название функции ДобавитьМесяц() ни о чем не говорит? Месяц КАРЛ!     | |||
| 4
    
        TumenJan 29.09.19✎ 09:32 | 
        (3) Да увидел, извините.
 А эту строку "ДатаНачала = ДобавитьМесяц(ТекущаяДата(), -24);" где подставить в процедуре. Помогите плиз с этим решением разобраться | |||
| 5
    
        Конструктор1С 29.09.19✎ 11:27 | 
        (2) вестимо, в запрос подставить, через параметры     | |||
| 6
    
        TumenJan 29.09.19✎ 11:55 | 
        (5) как запрос через параметры. 
 Я открыл конструктор запроса, а дальше куда и где подставить | |||
| 7
    
        TumenJan 29.09.19✎ 12:03 | 
        https://yadi.sk/i/kTZdvYp15YNKNA
 Вот я открыл на тексте - конструтктор запроса | |||
| 8
    
        Конструктор1С 29.09.19✎ 17:01 | 
        (6) на вкладке условия задавай
 ПоследствияИСитуации.Период >= &ДатаНачала в коде далее прописывай Запрос.УстановитьПараметр("ДатаНачала ", ДатаНачала); | |||
| 9
    
        TumenJan 12.11.19✎ 14:24 | 
        (8) Добрый вечер , можно вопрос     | |||
| 10
    
        d4rkmesa 12.11.19✎ 14:32 | 
        (0) Вот это в транзакции, имхо, порнография:
 РаботаСПочтой.ОтправитьЭлектронноеПисьмо(ПараметрыСообщения) | |||
| 11
    
        DrWatson 12.11.19✎ 14:49 | 
        (9) Это был вопрос?
 Если что-то не понятно по этой задаче - то можно. Не надо спрашивать разрешения. Если задача другая, то лучше сделать новую тему. | |||
| 12
    
        TumenJan 12.11.19✎ 15:06 | 
        (11) Этот код отправляет на почту о том сколько категорий, но берет полностью.
 Но нужно чтобы считал за два года. Сделал в коде период за два года. Но он не работает.Что не так в коде, можете помочь. Код: Процедура ПриЗаписи(Отказ, Замещение) Если НЕ Отказ Тогда // Проверим лимиты категорий. ЛимитКоличестваКатегорий = 1000; ТекущаяДата = 730; КатегорииНабора = ЭтотОбъект.ВыгрузитьКолонку("Категория"); ТекстЗапроса = "ВЫБРАТЬ | ПоследствияИСитуации.Категория.Родитель КАК Родитель, | ПоследствияИСитуации.Категория.Наименование КАК Категория, | КОЛИЧЕСТВО(*) КАК КоличествоЗаписей |ПОМЕСТИТЬ вт_Данные |ИЗ | РегистрНакопления.ПоследствияИСитуации КАК ПоследствияИСитуации |ГДЕ | ПоследствияИСитуации.Категория В(&ИзменяемыеКатегории) | И ПоследствияИСитуации.Период < ДОБАВИТЬКДАТЕ(&ТекущаяДата, ГОД, -2) | |СГРУППИРОВАТЬ ПО | ПоследствияИСитуации.Категория.Родитель, | ПоследствияИСитуации.Категория.Наименование | |ИМЕЮЩИЕ | КОЛИЧЕСТВО(*) > &ЛимитКоличестваКатегорий |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | вт_Данные.Родитель КАК Родитель, | вт_Данные.Категория КАК Категория, | вт_Данные.КоличествоЗаписей КАК КоличествоЗаписей |ИЗ | вт_Данные КАК вт_Данные |ИТОГИ | СУММА(КоличествоЗаписей) |ПО | Родитель |; | |//////////////////////////////////////////////////////////////////////////////// |УНИЧТОЖИТЬ вт_Данные"; Запрос = Новый Запрос(ТекстЗапроса); Запрос.УстановитьПараметр("ИзменяемыеКатегории", КатегорииНабора); Запрос.УстановитьПараметр("ЛимитКоличестваКатегорий", ЛимитКоличестваКатегорий); Запрос.УстановитьПараметр("ТекущаяДата", ТекущаяДата()); Запрос.УстановитьПараметр("ТекущаяДата", ТекущаяДата() - 86400 * 365 * 2); ВыборкаГруппы = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); СписокКатегорий = ""; Пока ВыборкаГруппы.Следующий() Цикл СписокКатегорий = СписокКатегорий + " | <li><span style=""color:#0000FF""><strong>" + СокрЛП(ВыборкаГруппы.Родитель) + "</strong></span>, а именно: | <ul>"; Выборка = ВыборкаГруппы.Выбрать(ОбходРезультатаЗапроса.Прямой); Пока Выборка.Следующий() Цикл СписокКатегорий = СписокКатегорий + " | <li><span style=""color:#0000FF"">" + СокрЛП(Выборка.Категория) + "</span> достигло " + Выборка.КоличествоЗаписей + " случаев за последние 730 дней.</li>"; КонецЦикла; СписокКатегорий = СписокКатегорий + " | </ul> | </li>"; КонецЦикла; Если НЕ ПустаяСтрока(СписокКатегорий) Тогда Адресаты = Новый Массив; Адресаты.Добавить("**************"); ПараметрыСообщения = Новый Структура("Тема, Адресаты, Сообщение, ТипТекста"); ПараметрыСообщения.Тема = "Контроль последствий и ситуаций"; ПараметрыСообщения.Сообщение = "<html> |<head> |<meta http-equiv=""Content-type"" content=""text/html; charset=utf-8""> |</head> |<body> |<p> | Добрый день! |</p> |<ul> | Обращаю Ваше внимание, что количество выявленных опасных действий | и опасных условий по категории: |" + СписокКатегорий + " |</ul> |<p> | С уважением, | Руководитель рабочей группы ПАБ |</p> |</body> |</html> |"; ПараметрыСообщения.ТипТекста = ТипТекстаПочтовогоСообщения.HTML; ПараметрыСообщения.Адресаты = Адресаты; РаботаСПочтой.ОтправитьЭлектронноеПисьмо(ПараметрыСообщения); КонецЕсли; КонецЕсли; | |||
| 13
    
        palpetrovich 12.11.19✎ 15:28 | 
        (12) КатегорииНабора = ЭтотОбъект.ВыгрузитьКолонку("Категория");
 ЭтотОбъект - это что? и замени ВыборкаГруппы = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); на РезультатЗапроса = Запрос.Выполнить(); Если РезультатЗапроса.Пустой() Тогда сообщить("вввввввввввввввв"); КонецЕсли; ВыборкаГруппы = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); | |||
| 14
    
        hhhh 12.11.19✎ 15:35 | 
        (12) ты 2 раза сделал
 Запрос.УстановитьПараметр("ТекущаяДата", ТекущаяДата() - 86400 * 365 * 2); здесь вычел 2 года | И ПоследствияИСитуации.Период < ДОБАВИТЬКДАТЕ(&ТекущаяДата, ГОД, -2) здесь еще 2 года. Всего 2+2 = 4. ну и еще | И ПоследствияИСитуации.Период < то есть ты берешь данные по меньше, то есть все данные до 2015-го года. Наверно, что-то тяжелое тебе в бошку стукнуло, зачем тебе данные 5-тилетней давности? | |||
| 15
    
        TumenJan 12.11.19✎ 16:22 | 
        (14) так как мне выставить период за года?     | |||
| 16
    
        hhhh 12.11.19✎ 16:28 | 
        (15) наверно меньше замени на больше. и не 4 года бери, а 2.     | |||
| 17
    
        TumenJan 12.11.19✎ 16:52 | 
        (16) поставил, но на почту ничего не приходит     | |||
| 18
    
        TumenJan 12.11.19✎ 17:01 | 
        (13)  мне нужно период задать за два года т.е. 730 дней, а так код работает, но выбирает полностью за все года     | |||
| 19
    
        palpetrovich 12.11.19✎ 17:15 | 
        (18) покажи доработанный запрос с параметрами     | |||
| 20
    
        TumenJan 12.11.19✎ 17:17 | 
        (19) Процедура ПриЗаписи(Отказ, Замещение)
 Если НЕ Отказ Тогда // Проверим лимиты категорий. ЛимитКоличестваКатегорий = 200; ТекущаяДата = -2; КатегорииНабора = ЭтотОбъект.ВыгрузитьКолонку("Категория"); ТекстЗапроса = "ВЫБРАТЬ | ПоследствияИСитуации.Категория.Родитель КАК Родитель, | ПоследствияИСитуации.Категория.Наименование КАК Категория, | КОЛИЧЕСТВО(*) КАК КоличествоЗаписей |ПОМЕСТИТЬ вт_Данные |ИЗ | РегистрНакопления.ПоследствияИСитуации КАК ПоследствияИСитуации |ГДЕ | ПоследствияИСитуации.Категория В(&ИзменяемыеКатегории) | И ПоследствияИСитуации.Период > ДОБАВИТЬКДАТЕ(&ТекущаяДата, ГОД, -2) | |СГРУППИРОВАТЬ ПО | ПоследствияИСитуации.Категория.Родитель, | ПоследствияИСитуации.Категория.Наименование | |ИМЕЮЩИЕ | КОЛИЧЕСТВО(*) > &ЛимитКоличестваКатегорий |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | вт_Данные.Родитель КАК Родитель, | вт_Данные.Категория КАК Категория, | вт_Данные.КоличествоЗаписей КАК КоличествоЗаписей |ИЗ | вт_Данные КАК вт_Данные |ИТОГИ | СУММА(КоличествоЗаписей) |ПО | Родитель |; | |//////////////////////////////////////////////////////////////////////////////// |УНИЧТОЖИТЬ вт_Данные"; Запрос = Новый Запрос(ТекстЗапроса); Запрос.УстановитьПараметр("ИзменяемыеКатегории", КатегорииНабора); Запрос.УстановитьПараметр("ЛимитКоличестваКатегорий", ЛимитКоличестваКатегорий); Запрос.УстановитьПараметр("ТекущаяДата", ТекущаяДата()); //Запрос.УстановитьПараметр("ТекущаяДата", ТекущаяДата() - 86400 * 365 * 2); ВыборкаГруппы = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); СписокКатегорий = ""; Пока ВыборкаГруппы.Следующий() Цикл СписокКатегорий = СписокКатегорий + " | <li><span style=""color:#0000FF""><strong>" + СокрЛП(ВыборкаГруппы.Родитель) + "</strong></span>, а именно: | <ul>"; Выборка = ВыборкаГруппы.Выбрать(ОбходРезультатаЗапроса.Прямой); Пока Выборка.Следующий() Цикл СписокКатегорий = СписокКатегорий + " | <li><span style=""color:#0000FF"">" + СокрЛП(Выборка.Категория) + "</span> достигло " + Выборка.КоличествоЗаписей + " случаев за последние 730 дней.</li>"; КонецЦикла; СписокКатегорий = СписокКатегорий + " | </ul> | </li>"; КонецЦикла; Если НЕ ПустаяСтрока(СписокКатегорий) Тогда Адресаты = Новый Массив; Адресаты.Добавить("**************"); ПараметрыСообщения = Новый Структура("Тема, Адресаты, Сообщение, ТипТекста"); ПараметрыСообщения.Тема = "Контроль последствий и ситуаций"; ПараметрыСообщения.Сообщение = "<html> |<head> |<meta http-equiv=""Content-type"" content=""text/html; charset=utf-8""> |</head> |<body> |<p> | Добрый день! |</p> |<ul> | Обращаю Ваше внимание, что количество выявленных опасных действий | и опасных условий по категории: |" + СписокКатегорий + " |</ul> |<p> | С уважением, | Руководитель рабочей группы ПАБ |</p> |</body> |</html> |"; ПараметрыСообщения.ТипТекста = ТипТекстаПочтовогоСообщения.HTML; ПараметрыСообщения.Адресаты = Адресаты; РаботаСПочтой.ОтправитьЭлектронноеПисьмо(ПараметрыСообщения); КонецЕсли; КонецЕсли; | |||
| 21
    
        vova1122 12.11.19✎ 17:23 | 
        В самом начале :   
 ТекущаяДата = -2; Зачем? | |||
| 22
    
        TumenJan 12.11.19✎ 17:29 | 
        (21) да уже незнаю, все перепробовал взял поставил 2 года.     | |||
| 23
    
        vova1122 12.11.19✎ 17:30 | 
        (22) Я о том что это лишнее. Или исправь на ТекущаяДата = ТекущаяДата();     | |||
| 24
    
        palpetrovich 12.11.19✎ 17:31 | 
        (20) результат запроса точно не пустой? 
 в ветку Если НЕ ПустаяСтрока(СписокКатегорий) Тогда точно заходишь? | |||
| 25
    
        TumenJan 12.11.19✎ 17:51 | 
        (23) (21) (23) (24) Ребята извините, здесь забыл адрес поставить: Адресаты.Добавить("**************");
 Поставил, все приходит, но не правильно считает. Не два года , а больше, в чем подвох | |||
| 26
    
        palpetrovich 12.11.19✎ 17:53 | 
        (25) как опеределил что неправильно считает?
 комбинация | И ПоследствияИСитуации.Период > ДОБАВИТЬКДАТЕ(&ТекущаяДата, ГОД, -2) Запрос.УстановитьПараметр("ТекущаяДата", ТекущаяДата()); вполне корректна | |||
| 27
    
        vova1122 12.11.19✎ 17:59 | 
        (26) можешь точно определить на сколько дней/лет больше?     | |||
| 28
    
        TumenJan 12.11.19✎ 18:00 | 
        (26) мне на почту приходит количество:"Знает, но не соблюдает инструкцию" - достигло 1 476 случаев за последние 730 дней.  
 у меня данные собираются в Регистре Накопления. Делаю фильтр именно по этой категории и ставлю период 12.11.2017 - 12.11.2019 и где 300 позиций больше получается | |||
| 29
    
        unenu 12.11.19✎ 18:01 | 
        консолью запросов сейчас пользоваться не учат - это же долго.
 гораздо быстрее копирнуть код и накалякать шопопало, а если будут ошибки, то вопить на форумах "плиз". что тут помогать когда человек даже не пытался начать мыслить системно | |||
| 30
    
        TumenJan 13.11.19✎ 09:27 | 
        (26) Все получилось. Подскажите как в этом коде, сделать чтобы он отправлял 1 раз в 10 дней. Возможно ли это?     | |||
| 31
    
        Fram 13.11.19✎ 09:42 | 
        (30) Отправлять = "1 раз в 10 дней"     | |||
| 32
    
        TumenJan 13.11.19✎ 09:53 | 
        (31) где нужно прописать     | |||
| 33
    
        Fram 13.11.19✎ 09:55 | 
        Закрывайте нафиг ветку. Случай совсем запущенный     | |||
| 34
    
        TumenJan 14.11.19✎ 05:07 | 
        (33) знаю что очень слаб в 1с, но все же учусь. В запросе нужно указать, или в коде. И как правильно     | |||
| 35
    
        Simod 14.11.19✎ 06:55 | 
        (26) Не вполне корректно. Для регистра накопления индекс по периоду создается всегда и при такой конструкции использоваться не будет. Да и без индекса это тоже лишние вычисления.     | |||
| 36
    
        Admin_Net_1C 14.11.19✎ 06:59 | 
        (34) нужно регламентное задание с необходимым расписанием     | |||
| 37
    
        Simod 14.11.19✎ 06:59 | 
        (34) Чтобы рассылка выполнялась раз в 10 дней, надо чтобы процедура рассылки запускалась с периодичность в 10 дней от какого-то момента. Обычно для этого используют регламентные задания. Но у тебя формирование отправления и отправка выполняются из обработчика ПриЗаписи() (что уже неправильно) и непонятно откуда этот обработчик вызывается.     | |||
| 38
    
        TumenJan 19.11.19✎ 10:09 | 
        (37) да уведолемния формируются при записи (обработка) но отправляется при помощи Общего модуля - Работа с почтой: Процедура ОтправитьЭлектронноеПисьмо(ПараметрыСообщения).     | |||
| 39
    
        TumenJan 19.11.19✎ 10:09 | 
        Может в этом модуле нужно прописать     | |||
| 40
    
        TumenJan 19.11.19✎ 10:10 | 
        (37) Могу код этого модуля показать     | |||
| 41
    
        DrWatson 19.11.19✎ 11:11 | 
        Расскажи или покажи как у тебя стартует отправка.
 Ты понял что написали в (36)? | |||
| 42
    
        DrWatson 19.11.19✎ 11:14 | 
        Хотя не надо показывать. Из (20) видно, что отправка стартует при каждой записи.
 Делай отправку отдельно, как написали в (36), (37). | |||
| 43
    
        TumenJan 19.11.19✎ 14:37 | 
        (37) Вот сама процедура: ПриЗаписи
 Процедура ПриЗаписи(Отказ, Замещение) Если НЕ Отказ Тогда // Проверим лимиты категорий. ЛимитКоличестваКатегорий = 10; ТекущаяДата = 702; КатегорииНабора = ЭтотОбъект.ВыгрузитьКолонку("Категория"); ТекстЗапроса = "ВЫБРАТЬ | ПоследствияИСитуации.Категория.Родитель КАК Родитель, | ПоследствияИСитуации.Категория.Наименование КАК Категория, | КОЛИЧЕСТВО(*) КАК КоличествоЗаписей |ПОМЕСТИТЬ вт_Данные |ИЗ | РегистрНакопления.ПоследствияИСитуации КАК ПоследствияИСитуации |ГДЕ | ПоследствияИСитуации.Категория В(&ИзменяемыеКатегории) | И ПоследствияИСитуации.Период > ДОБАВИТЬКДАТЕ(&ТекущаяДата, ДЕНЬ, -702) | |СГРУППИРОВАТЬ ПО | ПоследствияИСитуации.Категория.Родитель, | ПоследствияИСитуации.Категория.Наименование | |ИМЕЮЩИЕ | КОЛИЧЕСТВО(*) = &ЛимитКоличестваКатегорий |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | вт_Данные.Родитель КАК Родитель, | вт_Данные.Категория КАК Категория, | вт_Данные.КоличествоЗаписей КАК КоличествоЗаписей |ИЗ | вт_Данные КАК вт_Данные |ИТОГИ | СУММА(КоличествоЗаписей) |ПО | Родитель |; | |//////////////////////////////////////////////////////////////////////////////// |УНИЧТОЖИТЬ вт_Данные"; Запрос = Новый Запрос(ТекстЗапроса); Запрос.УстановитьПараметр("ИзменяемыеКатегории", КатегорииНабора); Запрос.УстановитьПараметр("ЛимитКоличестваКатегорий", ЛимитКоличестваКатегорий); Запрос.УстановитьПараметр("ТекущаяДата", ТекущаяДата()); //Запрос.УстановитьПараметр("ТекущаяДата", ТекущаяДата() - 86400 * 365 * 2); ВыборкаГруппы = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); СписокКатегорий = ""; Пока ВыборкаГруппы.Следующий() Цикл СписокКатегорий = СписокКатегорий + " | <li><span style=""color:#0000FF""><strong>" + СокрЛП(ВыборкаГруппы.Родитель) + "</strong></span>, а именно: | <ul>"; Выборка = ВыборкаГруппы.Выбрать(ОбходРезультатаЗапроса.Прямой); Пока Выборка.Следующий() Цикл СписокКатегорий = СписокКатегорий + " | <li><span style=""color:#0000FF"">" + СокрЛП(Выборка.Категория) + "</span> достигло " + Выборка.КоличествоЗаписей + " случаев за последние 730 дней.</li>"; КонецЦикла; СписокКатегорий = СписокКатегорий + " | </ul> | </li>"; КонецЦикла; Если НЕ ПустаяСтрока(СписокКатегорий) Тогда Адресаты = Новый Массив; Адресаты.Добавить("********************"); ПараметрыСообщения1 = Новый Структура("Тема, Адресаты, Сообщение, ТипТекста"); ПараметрыСообщения1.Тема = "Контроль последствий и ситуаций"; ПараметрыСообщения1.Сообщение = "<html> |<head> |<meta http-equiv=""Content-type"" content=""text/html; charset=utf-8""> |</head> |<body> |<p> | Добрый день! |</p> |<ul> | Обращаю Ваше внимание, что количество выявленных опасных действий | и опасных условий по категории: |" + СписокКатегорий + " |</ul> |<p> | С уважением, | Руководитель рабочей группы ПАБ |</p> |</body> |</html> |"; ПараметрыСообщения1.ТипТекста = ТипТекстаПочтовогоСообщения.HTML; ПараметрыСообщения1.Адресаты = Адресаты; РаботаСПочтой.ОтправитьЭлектронноеПисьмо1(ПараметрыСообщения1); КонецЕсли; КонецЕсли; А Вот Процедура Отправки: Процедура ОтправитьЭлектронноеПисьмо1(ПараметрыСообщения1) Экспорт Если ПараметрыСообщения1.Свойство("ТипТекста") Тогда ТипТекста = ПараметрыСообщения1.ТипТекста; Иначе ТипТекста = ТипТекстаПочтовогоСообщения.ПростойТекст; КонецЕсли; Профиль = Новый ИнтернетПочтовыйПрофиль; Профиль.АдресСервераSMTP = "**********************************"; Профиль.АутентификацияSMTP = СпособSMTPАутентификации.БезАутентификации; Почта = Новый ИнтернетПочта; Письмо = Новый ИнтернетПочтовоеСообщение; Письмо.Отправитель = "******************"; Письмо.ИмяОтправителя = "ПАБ"; Письмо.Тема = ПараметрыСообщения1.Тема; Для каждого Адрес Из ПараметрыСообщения1.Адресаты Цикл Письмо.Получатели.Добавить(Адрес); КонецЦикла; Письмо.Тексты.Добавить(ПараметрыСообщения1.Сообщение, ТипТекста); Попытка Почта.Подключиться(Профиль); Сообщить("Подключено"); Почта.Послать(Письмо); Сообщить("Письма отправлены"); Исключение ЗаписьЖурналаРегистрации("Ошибка", УровеньЖурналаРегистрации.Ошибка, Метаданные.РегламентныеЗадания.ОтправкаУведомленийОСрокахВыполненияПлана , , ОписаниеОшибки()); Сообщить(ОписаниеОшибки()); Возврат; КонецПопытки; ЗаписьЖурналаРегистрации("Отправка уведомления", УровеньЖурналаРегистрации.Информация, Метаданные.РегламентныеЗадания.ОтправкаУведомленийОСрокахВыполненияПлана); Сообщить("Соединение отключено"); Почта.Отключиться(); КонецПроцедуры Что нужно сделать чтобы 1 раз в 10 дней отправлялось. Пробовал закомментирровать строки отправки в процедуре ПриЗаписи. А дальше не могу понять. Создам регламетное задание, а на какую процедуру его направить. Подскажите плиз | |||
| 44
    
        D_E_S_131 19.11.19✎ 15:01 | 
        "Что нужно сделать чтобы 1 раз в 10 дней отправлялось" - создать расписание с такими настройками для РЗ.
 "Создам регламетное задание, а на какую процедуру его направить." - на процедуру общего модуля. | |||
| 45
    
        TumenJan 20.11.19✎ 10:53 | 
        (44) Это ясно. А вот если на процедуру общего модуля. Так у меня там только процедура отправки:
 А Вот Процедура Отправки: Процедура ОтправитьЭлектронноеПисьмо1(ПараметрыСообщения1) Экспорт Если ПараметрыСообщения1.Свойство("ТипТекста") Тогда ТипТекста = ПараметрыСообщения1.ТипТекста; Иначе ТипТекста = ТипТекстаПочтовогоСообщения.ПростойТекст; КонецЕсли; Профиль = Новый ИнтернетПочтовыйПрофиль; Профиль.АдресСервераSMTP = "**********************************"; Профиль.АутентификацияSMTP = СпособSMTPАутентификации.БезАутентификации; Почта = Новый ИнтернетПочта; Письмо = Новый ИнтернетПочтовоеСообщение; Письмо.Отправитель = "******************"; Письмо.ИмяОтправителя = "ПАБ"; Письмо.Тема = ПараметрыСообщения1.Тема; Для каждого Адрес Из ПараметрыСообщения1.Адресаты Цикл Письмо.Получатели.Добавить(Адрес); КонецЦикла; Письмо.Тексты.Добавить(ПараметрыСообщения1.Сообщение, ТипТекста); Попытка Почта.Подключиться(Профиль); Сообщить("Подключено"); Почта.Послать(Письмо); Сообщить("Письма отправлены"); Исключение ЗаписьЖурналаРегистрации("Ошибка", УровеньЖурналаРегистрации.Ошибка, Метаданные.РегламентныеЗадания.ОтправкаУведомленийОСрокахВыполненияПлана , , ОписаниеОшибки()); Сообщить(ОписаниеОшибки()); Возврат; КонецПопытки; ЗаписьЖурналаРегистрации("Отправка уведомления", УровеньЖурналаРегистрации.Информация, Метаданные.РегламентныеЗадания.ОтправкаУведомленийОСрокахВыполненияПлана); Сообщить("Соединение отключено"); Почта.Отключиться(); КонецПроцедуры Это правильно будет | |||
| 46
    
        TumenJan 20.11.19✎ 11:19 | 
        (44) Подскажите, из этой процедуры при записи код 
 Как правильно в общий модуль перенести. Чтобы регламентное задание на знало что отправлять. помогите плиз | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |