Имя: Пароль:
1C
1С v8
Ограничение выборки с даты "ТекущаяДата минус 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) Подскажите, из этой процедуры при записи код
Как правильно в общий модуль перенести. Чтобы регламентное задание на знало что отправлять. помогите плиз