Переключение на Главную Страницу Страницы: [1] 2  ОтправитьПечать
Очень популярная тема (более 25 ответов) Автоматическое выполнение набора отчетов (число прочтений - 7928 )
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Автоматическое выполнение набора отчетов
31. Октября 2006 :: 06:57
Печать  
Хочется:
Открыть несколько отчетов, указать в каждом нужные реквизиты, что-нибудь нажать, для того, чтобы эти отчеты выполнились последовательно. Т.е. хочется запустить их на ночь и пойти домой.

Идея реализации:
В каждом отчете добавить кнопку  "Добавить в список автоматов" с процедурой пуска)
в глобальнике это процедура будет создавать заполнять глТЗ_АвтоматОтчетов соответствующими колонками.
Далее открывается отчет АвтоматическоеВыполнениеОтчетов, который перебирает строки глТЗ_АвтоматОтчетов и по каждой строке выполняет такой код:
Код
Выбрать все
Сервис.ВыполнитьПроцедуру(Конт, ИмяПроцедурыЗапуска, СписокПараметровПроуедурыЗапуска); 



Недостатки метода:
1) В каждый отчет нужно добавлять такую кнопку
2) Добавлять строки в глобальник

Может быть кто-то уже сталкивался с такой задачей? Может есть другие пути решения?
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Автоматическое выполнение набора отчетов
Ответ #1 - 31. Октября 2006 :: 08:13
Печать  
Конечно, сталкивались.
Например, система автоматического тестирования Фанктест/Functest работает по подобной схеме.

Одно отличие - тестовый отчет для Фанктеста должен возвращать таблицу значений с результатами.

Самое главное - реализовано автоматическое получение данных из формы и заполнение формы собственными данными.

Тебе можно скопировать код по заполнению оттуда и добавить только вызов необходимой процедуры - или взять вызов из формулы кнопки "Сформировать"
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Автоматическое выполнение набора отчетов
Ответ #2 - 31. Октября 2006 :: 10:55
Печать  
artbear писал(а) 31. Октября 2006 :: 08:13:
Конечно, сталкивались.
Например, система автоматического тестирования Фанктест/Functest работает по подобной схеме.

Да, набыченная система.
Но мне надо для польхователей делать, поэтому надо делать так, чтобы все было возможности проще. Поэтому останавлюсь скорее всего на варианте (0).
Интересует такой момент: как узнать, что отчет закончился, т.е. можно приступать к выполнению нового?

P.S. Только, пожалуйста, не пишите см. как в FuncTest. Там много всего, а разбираться, как всегда, нет времени.
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Автоматическое выполнение набора отчетов
Ответ #3 - 31. Октября 2006 :: 11:45
Печать  
Если ты будешь использовать вариант с запуском процедуры через Сервис или ВыполняемыйМодуль, то все будет запускаться последовательно, и после выполнения процедуры нужно будет закрывать отчет и далее опять возвращаться к циклу

ЗЫ Ты так мелко написал PS, что я сначала и не заметил Улыбка
В принципе, там все довольно просто - особенно, если разбираешься в классах 1С++ Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Автоматическое выполнение набора отчетов
Ответ #4 - 31. Октября 2006 :: 11:48
Печать  
JohnyDeath писал(а) 31. Октября 2006 :: 10:55:
Но мне надо для польхователей делать, поэтому надо делать так, чтобы все было возможности проще.


Я же не говорю, сделай интерфейс как в Фанктесте, я тебе предлагал позаимствовать именно внутренности реализации.

Между прочим, у Фанктеста есть и простой запускатель тестов с очень простым интерфейсом - типа открыл папку с тестами и просто ее тестируешь.
А ты увидел браузер тестов - навороченную и удобную обработку для ввода и изменения тестов, а не только для тестирования. Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Автоматическое выполнение набора отчетов
Ответ #5 - 01. Ноября 2006 :: 14:55
Печать  
Млин, а как отработать ситуации, когда в отчете стоит процедура по типу "глПроверкаАктуальностиОтчета", т.е. может выдасться вопрос (или предупреждение)? Можно как-нибудь указать, чтобы "он нажимал "нет"".
Или это в каждом модуле отчета придется проверять условие типа такого:
Код
Выбрать все
Если флВызванАвтоматизатором = 1 тогда
   //не задавать глупых вопросов
КонецЕсли 


?
  
Наверх
 
IP записан
 
sedmin
1c++ developer
Отсутствует


I Hate Fat YaBB 2!

Сообщений: 862
Зарегистрирован: 24. Мая 2006
Re: Автоматическое выполнение набора отчетов
Ответ #6 - 01. Ноября 2006 :: 15:11
Печать  
JohnyDeath писал(а) 01. Ноября 2006 :: 14:55:
Можно как-нибудь указать, чтобы "он нажимал "нет"".

Нет, нельзя. Вернее так: можно использовать AutoIt и через него послать нажатие клавиши, но этот вариант не очень надежный.
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Автоматическое выполнение набора отчетов
Ответ #7 - 01. Ноября 2006 :: 15:37
Печать  
sedmin писал(а) 01. Ноября 2006 :: 15:11:
JohnyDeath писал(а) 01. Ноября 2006 :: 14:55:
Можно как-нибудь указать, чтобы "он нажимал "нет"".

Нет, нельзя. Вернее так: можно использовать AutoIt и через него послать нажатие клавиши, но этот вариант не очень надежный.

Ну да, я про тоже. Имел ввиду не буквальное понимание "нажать", а возможный обход...(ну или как в ехеле: DisplayAlerts=0  Подмигивание)

В общем каждый отчет, который потребуется периодически запускать "ночью", нужно сначала внимательно изучить на возможные подводные камни, так?
  
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Автоматическое выполнение набора отчетов
Ответ #8 - 01. Ноября 2006 :: 20:09
Печать  
JohnyDeath писал(а) 31. Октября 2006 :: 10:55:
Интересует такой момент: как узнать, что отчет закончился, т.е. можно приступать к выполнению нового?


У меня ночью работает куча обработок.
В модальном режиме; управление возвращается после возврата из ПриОткрытии() (СтатусВозврата(0));

Цитата:
Млин, а как отработать ситуации, когда в отчете стоит процедура по типу "глПроверкаАктуальностиОтчета", т.е. может выдасться вопрос (или предупреждение)? Можно как-нибудь указать, чтобы "он нажимал "нет"".


Можно переделать Предупреждение("текст") на Предупреждение("текст", таймаут).
ИМХО в последних типовых 1С сама везде переделала (давно, правда, не смотрел).
  

De quelle planète es-tu?
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Автоматическое выполнение набора отчетов
Ответ #9 - 02. Ноября 2006 :: 08:24
Печать  
А может быть, добавить в 1С или ФормЕкс подобную фичу-настройку
типа
УстановитьТаймаутПоУмолчаниюДляПредупрежденияСистемы(Таймаут);
СброситьТаймаутПоУмолчаниюДляПредупрежденияСистемы();


ИМХО фича достаточно полезная для тех, кто сопровождает типовые (например, я) и вынужден использовать кучу отчетов в авторежиме.
Это позволит минимизировать количество изменений в нужном отчете.

ЗЫ Думаю, для АльФ-а данная задача не будет сложной Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Автоматическое выполнение набора отчетов
Ответ #10 - 02. Ноября 2006 :: 08:33
Печать  
artbear писал(а) 02. Ноября 2006 :: 08:24:
Это позволит минимизировать количество изменений в нужном отчете.

Баба яга против увеличения процента неявных решений.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Автоматическое выполнение набора отчетов
Ответ #11 - 02. Ноября 2006 :: 11:03
Печать  
ИМХО в классах и так можно инкапсулировать/спрятать кучу всего.
Например, тупое и суровое Удалить() также нельзя использовать, но без него никак!!

ИМХО это дело пользователя - выбирать средства, которые ему нужно использовать.

Для типовых очень сложно обеспечить нормальный код, поддающийся автоматизации, с условием постоянного обновления типовых.
Даже кдифф3 и 3сторонний мерж не так спасает Печаль
Поэтому и мы и расширяем 1С Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Автоматическое выполнение набора отчетов
Ответ #12 - 02. Ноября 2006 :: 11:38
Печать  
artbear писал(а) 02. Ноября 2006 :: 11:03:
Для типовых очень сложно обеспечить нормальный код, поддающийся автоматизации, с условием постоянного обновления типовых.

Позволь поинтересоваться, а какая кнопка будет нажата по истечению таймаута в вопросах типа "Да" и "Нет"?
  

De quelle planète es-tu?
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Автоматическое выполнение набора отчетов
Ответ #13 - 02. Ноября 2006 :: 11:42
Печать  
Женщины всегда нажимают Да Улыбка
Наверное, мы поступим также или строго наоборот Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Автоматическое выполнение набора отчетов
Ответ #14 - 02. Ноября 2006 :: 11:45
Печать  
kms писал(а) 02. Ноября 2006 :: 11:38:
artbear писал(а) 02. Ноября 2006 :: 11:03:
Для типовых очень сложно обеспечить нормальный код, поддающийся автоматизации, с условием постоянного обновления типовых.

Позволь поинтересоваться, а какая кнопка будет нажата по истечению таймаута в вопросах типа "Да" и "Нет"?


Ну там же будет возвращаться -1, а эту ситуацию в АвтоматизатореОтчетов можно отловить и устанавливать нужное действие.
Но всё равно придется подправлять отчет
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 
ОтправитьПечать