8.х Интервал времени

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем xxx949, 7 ноя 2014.

  1. TopicStarter Overlay
    xxx949
    Offline

    xxx949 Опытный в 1С

    Регистрация:
    29 июл 2010
    Сообщения:
    309
    Симпатии:
    1
    Баллы:
    29
    Подскажите пожалуйста, не могу сообразить, никак не доходит.

    У меня в обработке раньше определенная функция выполнялась только если на часах время с 13:00 до 15:00. Так было настроено, вот код:

    Код:
    Если Час(ТекущаяДата()) > 13 И Час(ТекущаяДата()) < 15 Тогда
         КнопкаВыполнитьНажатие(ЭлементыФормы.ОсновныеДействияФормы.Кнопки.ОсновныеДействияФормыВыполнить);
    КонецЕсли;
    Ну а сейчас мне нужно сделать с 13:30 до 15:30. Но не могу придумать как. :( Спасибо.
    Последнее редактирование: 7 ноя 2014
  2. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    9.896
    Симпатии:
    1.034
    Баллы:
    204
    Код:
    Если ТекущаяДата() - НачалоДня(ТекущаяДата()) > 48600 И ТекущаяДата() - НачалоДня(ТекущаяДата()) < 55800 Тогда
    КнопкаВыполнитьНажатие(ЭлементыФормы.ОсновныеДействияФормы.Кнопки.ОсновныеДействияФормыВыполнить);
    КонецЕсли;
  3. PetrGordeev
    Offline

    PetrGordeev

    Регистрация:
    12 ноя 2019
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    nomad_irk, Можно вам вопрос задать
  4. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    9.896
    Симпатии:
    1.034
    Баллы:
    204
    Задавайте
  5. PetrGordeev
    Offline

    PetrGordeev

    Регистрация:
    12 ноя 2019
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    nomad_irk,
    Добрый день!
    Подскажите пожалуйста у меня уходят уведомления на почту из 1С при записи. А можно сделать, чтобы они приходили не каждый раз при записи, а один раз в 10 дней.
    Вот сама процедура: ПриЗаписи
    Процедура ПриЗаписи(Отказ, Замещение)
    Если НЕ Отказ Тогда
    // Проверим лимиты категорий.
    ЛимитКоличестваКатегорий = 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 дней отправлялось.
    Пробовал закомментирровать строки отправки в процедуре ПриЗаписи. А дальше не могу понять. Создам регламетное задание, а на какую процедуру его направить. Подскажите плиз
  6. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    9.896
    Симпатии:
    1.034
    Баллы:
    204
    На процедуру, формирующую и отправляющую письма.

    p.s. Отправлять письма в транзакции записи объекта в ИБ - моветон.