7.7 Как запустить отчет с параметрами на форме по расписанию
Здравстувйте!
хотелось бы запускать одному пользователю отчет в определенное время,
с параметрами, которые сохранены через настройки
ну или пусть задать программно.
Отчет можно включить в состав конфигурации, а можно сделать внешним.
Но я не сильна в "скриптах" (?) вроде есть путь с bat файлом чтоли?
В конфигурации есть Блокнот, который запускает напоминания.
хотелось бы запускать одному пользователю отчет в определенное время,
с параметрами, которые сохранены через настройки
ну или пусть задать программно.
Отчет можно включить в состав конфигурации, а можно сделать внешним.
Но я не сильна в "скриптах" (?) вроде есть путь с bat файлом чтоли?
В конфигурации есть Блокнот, который запускает напоминания.
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Самое простое - через батник.
В батнике прописываешь запуск программы от имени пользователя, лучше специально для этого созданного.
Если можно, вставляй обработку в конфигурацию.
В глобальном модуле в процедуре ПриНачалеРаботыСистемы пишешь:
В батнике прописываешь запуск программы от имени пользователя, лучше специально для этого созданного.
Если можно, вставляй обработку в конфигурацию.
В глобальном модуле в процедуре ПриНачалеРаботыСистемы пишешь:
Если глТекущийПользователь = Твой пользователь Тогда
ОткрытьФорму("ТвояОбработка");
КонецЕсли;
(2) желательно, не через батник. Батник надо от администратора запускать? для меня это почти темный лес.
Потом, надо запускать по расписанию, в 14 дня например. А это при входе "Моего пользователя"...
И еще. Открыть форму - это ж не получить уже готовый отчет...
Что с параметрами?
Потом, надо запускать по расписанию, в 14 дня например. А это при входе "Моего пользователя"...
И еще. Открыть форму - это ж не получить уже готовый отчет...
Что с параметрами?
(9) 1. батник по расписанию
2. доработать конфу
3. открыть отчет
3.1. с выполнением сразу
3.2. просто открыть с параметрами, чтобы Петя сам жмакнул "Выполнить"
просто в батнике прописать запуск 1С под пользователем Петя
варианты:
3.1. в глобальном модуле ПриНачалеРаботыСистемы() проверять просто на пользователя
Если ИмяПользователя = Петя Тогда
// открыть отчет, ПриОткрытии() заполнить параметры СтатусВозврата(0) - отчет выполняется, результат можно показать, можно куда-то положить
КонецЕсли;
3.2. в глобальном модуле ПриНачалеРаботыСистемы() проверять просто на пользователя
те же варианты но с определением времени выполнения
те же варианты но с обработчиком ожидания для Пети
Если ИмяПользователя = Петя Тогда
ОбработкаОжидания("ЗапуститьОтчетДляПетиВ1400");
КонецЕсли;
есть вариант с доработкой конфы, добавляется несколько объектов, справочник заданий с указанием отчета, расписанием начала и повтора и параметрами отчета\обработка выполнения проверки заданий
в глобальном модуле ПриНачалеРаботыСистемы вешается обработчик ожидания для Пети, который пинает обработку проверки выполнения заданий, которая бегает по справочнику заданий и проверяет расписание и повтор - когда наступает время выполнения, открывает отчет, передает в него параметры и выполняет
2. доработать конфу
3. открыть отчет
3.1. с выполнением сразу
3.2. просто открыть с параметрами, чтобы Петя сам жмакнул "Выполнить"
просто в батнике прописать запуск 1С под пользователем Петя
варианты:
3.1. в глобальном модуле ПриНачалеРаботыСистемы() проверять просто на пользователя
Если ИмяПользователя = Петя Тогда
// открыть отчет, ПриОткрытии() заполнить параметры СтатусВозврата(0) - отчет выполняется, результат можно показать, можно куда-то положить
КонецЕсли;
3.2. в глобальном модуле ПриНачалеРаботыСистемы() проверять просто на пользователя
Если ИмяПользователя = Петя Тогда
// открыть отчет, ПриОткрытии() заполнить параметры - отчет открывается (можно монопольно), жедм пока Петя не жмакнет "Выполнить"
КонецЕсли;
те же варианты но с определением времени выполнения
Если ИмяПользователя = Петя Тогда
Если ТекущееВремя = Заданное время выполнения Тогда
// открыть отчет
Иначе
// проверить выполнение отчета
// если отчета не выполнялся, поругаться на Петю
КонецЕсли;
КонецЕсли;
те же варианты но с обработчиком ожидания для Пети
Если ИмяПользователя = Петя Тогда
ОбработкаОжидания("ЗапуститьОтчетДляПетиВ1400");
КонецЕсли;
есть вариант с доработкой конфы, добавляется несколько объектов, справочник заданий с указанием отчета, расписанием начала и повтора и параметрами отчета\обработка выполнения проверки заданий
в глобальном модуле ПриНачалеРаботыСистемы вешается обработчик ожидания для Пети, который пинает обработку проверки выполнения заданий, которая бегает по справочнику заданий и проверяет расписание и повтор - когда наступает время выполнения, открывает отчет, передает в него параметры и выполняет
(10)
допустим.
вопроса два, в глобальном уже есть ОбработкаОжидания для Блокнота. Могут ли ДВЕ обработки ожидания работать?
Второй вопрос. Я заслешила //ОбработкаОжидания для Блокнота, поставила запуск своего отчета. а он не запустился.
Наверное, должна быть какая то в нем специальная процедура?!
те же варианты но с обработчиком ожидания для Пети
Если ИмяПользователя = Петя Тогда
ОбработкаОжидания("ЗапуститьОтчетДляПетиВ1400");
КонецЕсли;
Если ИмяПользователя = Петя Тогда
ОбработкаОжидания("ЗапуститьОтчетДляПетиВ1400");
КонецЕсли;
допустим.
вопроса два, в глобальном уже есть ОбработкаОжидания для Блокнота. Могут ли ДВЕ обработки ожидания работать?
Второй вопрос. Я заслешила //ОбработкаОжидания для Блокнота, поставила запуск своего отчета. а он не запустился.
Наверное, должна быть какая то в нем специальная процедура?!
(12) разные обработчики ожидания выполняют разные процедуры, они независимы, поэтому могут работать вместе, хоть с десяток
тут главное с интервалом повтора не угадать так, чтобы выполнение разных заданий не наложились для одного пользователя, иначе будет конфликт и один из обработчиков ожидания не выполнится
в обработчике ожидания вы указываете процедуру, которая выполняется с интервалом повтора
если вы прописали ОбработчикОжидания("ВыполнитьОтчетДляПети"), но при этом в глобальном модуле нет самой процедуры ВыполнитьОтчетДляПети(), то конечно, ничего не выполнится
тут главное с интервалом повтора не угадать так, чтобы выполнение разных заданий не наложились для одного пользователя, иначе будет конфликт и один из обработчиков ожидания не выполнится
в обработчике ожидания вы указываете процедуру, которая выполняется с интервалом повтора
если вы прописали ОбработчикОжидания("ВыполнитьОтчетДляПети"), но при этом в глобальном модуле нет самой процедуры ВыполнитьОтчетДляПети(), то конечно, ничего не выполнится
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот