Имя: Пароль:
1C
1С v8
Непонятное поведение регламентного задания
0 TeMochkiN
 
03.11.17
10:09
Здравствуйте!
Помогите, пожалуйста, разобраться.
Вроде регламентное задание настроено на выполнение 1 раз в день, а оно за один вызов умудряется выполнить свой код 2 раза, или я чего-то не понимаю.
Вот консоль заданий, где видно, что выполнилось задание 1 раз.
На этой же картинке журнал документов с электронными письмами, формированием и рассылкой которых и занимается регламентное задание.
http://s019.radikal.ru/i633/1711/ca/64b364299168.png

А вот код метода регламентного задания:

Процедура ОповещениеОНепереданныхВБухгалтериюДоговоровПоНедвижимости() Экспорт
    
    Период = ТекущаяДата();
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
                   |    УПН_ДоговорПоНедвижимости.Ссылка,
                   |    УПН_ДоговорПоНедвижимости.ОбъектНедвижимости,
                   |    УПН_ДоговорПоНедвижимости.ДоговорКонтрагента,
                   |    УПН_ДоговорПоНедвижимости.ДатаРегистрации КАК ДатаРегистрации
                   |ИЗ
                   |    Документ.УПН_ДоговорПоНедвижимости КАК УПН_ДоговорПоНедвижимости
                   |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.УПН_РасторжениеСделкиПоНедвижимости КАК УПН_РасторжениеСделкиПоНедвижимости
                   |        ПО УПН_ДоговорПоНедвижимости.Ссылка = УПН_РасторжениеСделкиПоНедвижимости.ДоговорПоНедвижимости
                   |ГДЕ
                   |    УПН_ДоговорПоНедвижимости.Проведен
                   |    И НЕ УПН_ДоговорПоНедвижимости.ПереданВБухгалтерию
                   |    И УПН_ДоговорПоНедвижимости.ДатаРегистрации <> ДАТАВРЕМЯ(1, 1, 1)
                   |    И РАЗНОСТЬДАТ(УПН_ДоговорПоНедвижимости.ДатаРегистрации, &Период, ДЕНЬ) > 7
                   |    И УПН_ДоговорПоНедвижимости.СтатусДокумента = ЗНАЧЕНИЕ(Перечисление.УПН_СтатусыДокументовПоСделке.Зарегистрировано)
                   |    И НЕ ВЫБОР
                   |                КОГДА УПН_РасторжениеСделкиПоНедвижимости.Ссылка ЕСТЬ NULL
                   |                    ТОГДА ЛОЖЬ
                   |                ИНАЧЕ УПН_РасторжениеСделкиПоНедвижимости.Ссылка.Проведен
                   |            КОНЕЦ
                   |
                   |УПОРЯДОЧИТЬ ПО
                   |    ДатаРегистрации,
                   |    УПН_ДоговорПоНедвижимости.ОбъектНедвижимости.Номер";
    
    Запрос.УстановитьПараметр("Период", Период);
    
    Результат = Запрос.Выполнить();
    
    Если Результат.Пустой() Тогда
        Возврат;
    КонецЕсли;
    
    Выборка = Результат.Выбрать();
    
    НомерПоПорядку = 0;
    Таблица = "                <tr>"
    + "<th>№ п/п</th>"
    + "<th>Объект недвижимости</th>"
    + "<th>Договор покупателя</th>"
    + "<th>Дата регистрации</th>"
    + "</tr>";
    
    Пока Выборка.Следующий() Цикл
        НомерПоПорядку = НомерПоПорядку + 1;
        Таблица = Таблица + СтрШаблон("                <tr><td align=""right"">%1</td><td>%2</td><td>%3</td><td>%4</td></tr>",
        НомерПоПорядку, Выборка.ОбъектНедвижимости, Выборка.ДоговорКонтрагента, Формат(Выборка.ДатаРегистрации, "ДЛФ=D")) + Символы.ПС;
    КонецЦикла;
    
    Письмо = Документы.ЭлектронноеПисьмо.СоздатьДокумент();
    Письмо.Дата = Период;
    Письмо.Ответственный = глЗначениеПеременной("глТекущийПользователь");
    Письмо.УчетнаяЗапись = Справочники.УчетныеЗаписиЭлектроннойПочты.СистемнаяУчетнаяЗаписьЭлектроннойПочты;
    
    Если Письмо.УчетнаяЗапись.ДоступКУчетнойЗаписи.Найти(Письмо.Ответственный, "Пользователь") = Неопределено Тогда
        Учетнаязапись = Письмо.УчетнаяЗапись.ПолучитьОбъект();
        СтрокаТЧ = Учетнаязапись.ДоступКУчетнойЗаписи.Добавить();
        СтрокаТЧ.Пользователь = Письмо.Ответственный;
        СтрокаТЧ.Запись = Истина;
        Учетнаязапись.Записать();
    КонецЕсли;
    
    Письмо.ВидТекстаПисьма = Перечисления.ВидыТекстовЭлектронныхПисем.HTML;
    Письмо.Тема = "Непереданные в бухгалтерию договоры";
    Письмо.ТекстПисьма = "<HTML>
    |<HEAD>
    |    <META http-equiv=Content-Type content=""text/html; charset=utf-8"">
    |</HEAD>
    |    <BODY>
    |        <DIV>
    |            <table border=""1""><caption>Непереданные в бухгалтерию договоры</caption>
    |" + Таблица + "            </table>
    |        </DIV>
    |    </BODY>
    |</HTML>";
    
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    КонтактнаяИнформация.Объект,
    |    КонтактнаяИнформация.Объект КАК Представление,
    |    КонтактнаяИнформация.Представление КАК АдресЭлектроннойПочты
    |ИЗ
    |    РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
    |ГДЕ
    |    КонтактнаяИнформация.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.СлужебныйАдресЭлектроннойПочтыПользователя)
    |    И КонтактнаяИнформация.Объект В
    |            (ВЫБРАТЬ
    |                СоставГруппРассылкиЭлектроннойПочты.ОбъектРассылки
    |            ИЗ
    |                РегистрСведений.СоставГруппРассылкиЭлектроннойПочты КАК СоставГруппРассылкиЭлектроннойПочты
    |            ГДЕ
    |                СоставГруппРассылкиЭлектроннойПочты.ГруппаРассылки = ЗНАЧЕНИЕ(Справочник.ГруппыПочтовойРассылки.ДоговорыПоНедвижимостиНепереданныеВБухгалтерию))";
    
    ВыборкаПолучателей = Запрос.Выполнить().Выбрать();
    
    Пока ВыборкаПолучателей.Следующий() Цикл
        Если ЗначениеЗаполнено(ВыборкаПолучателей.АдресЭлектроннойПочты) Тогда
            Если Не ПустаяСтрока(Письмо.Кому) Тогда
                Письмо.Кому = Письмо.Кому + ", ";
            КонецЕсли;
            Письмо.Кому = Письмо.Кому + ВыборкаПолучателей.Представление + " <" + ВыборкаПолучателей.АдресЭлектроннойПочты + ">";
            ЗаполнитьЗначенияСвойств(Письмо.КомуТЧ.Добавить(), ВыборкаПолучателей);
        КонецЕсли;
    КонецЦикла;
        
    Письмо.ОтправитьПисьмо();
    
КонецПроцедуры

Платформа 8.3.10.2561
Конфигурация Риэлтор. Управление продажами недвижимости для "1С:Управление производственным предприятием 8", редакция 1.3 (1.3.95.1/2.7.4.88)
1 TeMochkiN
 
03.11.17
10:12
Вроде создание документа нигде не зациклено, почему оно создается и отправляется 2 раза - не могу понять
2 mehfk
 
03.11.17
10:13
(0) Смотри настройки рег. задание - сколько оно раз запускается, если не оно завершилось с ошибкой. + смотри ЖР с ошибками выполнения.
3 mehfk
 
03.11.17
10:13
*настройки рег. задания
4 TeMochkiN
 
03.11.17
10:23
Странно. В журнале регистрации зафиксирован запуск и успешное завершение задания 2 раза...
http://s016.radikal.ru/i334/1711/f6/6621bcd5898b.png

Так а какие настройки рег задания посмотреть?
На первом скриншоте же консоли заданий видно расписание: каждый день; с 9:00:00 один раз в день
5 TeMochkiN
 
03.11.17
10:59
ап :(