Имя: Пароль:
1C
1С v8
Как автоматически выполнять внешний отчет по расписанию?
,
0 Elf56
 
07.07.14
13:38
Всем доброго времени суток.

Имеется 1с 8.3 УТ 11.

Необходимо запускать по расписанию внешний отчет. Т.е. каждые два часа чтобы выполнялся нужный отчет. Т.е. в 9.00 в 11.00 в 13.00 в 15.00 и в 17.00. Понятно что нужно создать регламентное задание и начзначить реквизиту регламентного задания "Имя метода" Процедуру общего модуля. В принцепе так и сделал создал тествое регламентное задание с расписанием "Выполнять: c 1 июля 2014 г. каждый  день; с 9:00:00 по 18:00:00 каждые 20 сек." нужной функции в общем модуле назначил значение реквизита "Имя метода". сама процедура выглядет вот так.

Процедура ЗапускОтчетаСчетаВРаботу() Экспорт
    
    Сообщить("Регалментное задание работает");

КонецПроцедуры

Опять же тестовая. Запустил 1с как в файловом варианте так и в клиент серверном, но сообщение не там не там не вылезло. Что я делаю не так? почему регламентное задание не срабатывает?

И еще вопрос как из процедуры ЗапускОтчетаСчетаВРаботу() запустить внешний отчет на выполнение?

Всем заранее спасибо.
1 Maxus43
 
07.07.14
13:40
смысл отчет то делать по расписанию? кто его увидеть должен? сохранять в файл хочешь?
2 Elf56
 
07.07.14
13:41
Просто нужно чтобы у одно конкретного пользователя он запускал каждые два часа потому что сам он это забывает делать
3 Greeen
 
07.07.14
13:41
1) Регламентное задание выполняется на сервере от серверного же пользователя. Поэтому сообщение вылезает ему
2) Чтобы определить - работает или нет регламентное задание воспользуйтесь обработкой Консоль заданий
3) Чтобы работало на сервере, нужно проверить, включены ли задания на сервере 1С
4 Elf56
 
07.07.14
13:43
(3) а если в файловом варианте?
5 Maxus43
 
07.07.14
13:44
(2) обработка ожидания в помощь,  ане извращения с регламентыми заданиями, к которым сеанс пользователся отношения не имеет
6 Elf56
 
07.07.14
13:46
(5) Обработка ожидания что это такое и где ее взять?
7 Maxus43
 
07.07.14
13:51
(6) это при открытии формы отчета подключи обработку ожидания, а в её процедуре - жмакай програмно на кнопку сформировать
8 Maxus43
 
07.07.14
13:56
ПодключитьОбработчикОжидания(<ИмяПроцедуры>, <Интервал>, <Однократно>)
9 Elf56
 
07.07.14
14:47
В сам внешний отчет в процедуру при открытии добавил ПодключитьОбработчикОжидания вот так

&НаКлиенте
Процедура Сформировать(Команда)
    Отчет.ДатаНачала         = Период.ДатаНачала;
    Отчет.ДатаОкончания     = КонецДня(Период.ДатаОкончания);
    Если Отчет.ДатаНачала = '00010101' ИЛИ Отчет.ДатаОкончания = '00010101' Тогда
        Предупреждение("Необходимо указать период формирования отчета");
        Возврат;
    КонецЕсли;
    
    
    Обновить(Отчет.ТабДок);    
КонецПроцедуры

&НаКлиенте
Процедура ПриОткрытии(Отказ)
    
    ПодключитьОбработчикОжидания("Сформировать", 10, Ложь)
    
КонецПроцедуры

Выдает вот такую ошибку
{Форма.ФормаОтчета.Форма(42)}: Ошибка при вызове метода контекста (ПодключитьОбработчикОжидания)
    ПодключитьОбработчикОжидания("Сформировать", 10, Ложь)
по причине:
Недопустимое значение параметра (параметр номер '1')

Хотя все правильно сделал Клиентская функция вызывается
10 Elf56
 
07.07.14
14:48
Что не так сделал?
11 Elf56
 
07.07.14
14:51
По сути правильно же с клиента запускаю клиентскую процедуру почему ругается не пойму?
12 Azverin
 
07.07.14
14:54
(2) спасибо, поржал)))))
13 Elf56
 
07.07.14
14:56
(12) че смешно подсказал бы лучше как сделать
14 Elf56
 
07.07.14
15:04
Ну так может кто намекнет или подскажет в чем проблема
15 hhhh
 
07.07.14
15:07
(14) ну может буква С английская в слове Сформировать??
16 hhhh
 
07.07.14
15:10
еще попробуйте

ЭтаФорма.ПодключитьОбработчикОжидания("Сформировать", 10, Ложь)
17 Elf56
 
07.07.14
15:15
Все разобрался просто в строке
ПодключитьОбработчикОжидания("Сформировать", 10, Ложь)

вызывается процедура

&НаКлиенте
Процедура Сформировать(Команда)

с входящим параметром команда а в строке
ПодключитьОбработчикОжидания("Сформировать", 10, Ложь)
нельзя вызвать с параметром поэтому пришлось делать новую процедуру которая вызывается без параметра а потом уже из нее вызывать сформировать