Автоматический запуск отчета в 1С УТ (по расписанию)

Тема в разделе "1C и всё что с ней связано", создана пользователем Exo, 23 янв 2009.

  1. Exo

    Exo New Member

    Регистрация:
    23 янв 2009
    Сообщения:
    1
    Симпатии:
    0
    Доброго времени суток, вопрос к знатокам.

    Бизнес требует организации в 1С УТ (8.0.17.25) автоматического формирования отчета в определенное время и день.
    Скажите, возможно ли такое и если да, каким средством этого можно достичь.

    Возможно, существуют какие-то утилиты (программы) для этого, ибо не хотелось бы напрягать администратора нашей 1С решением этой проблемы, очень занятой человек.

    Может ли простой пользователь справиться с этой задачей?
     
  2. krenk

    krenk Гость

    Могу сказать за 7.7 (а в 8 думаю тем более): можно... сам недавно делал такой автоотчет.... :(

    все зависит от того куда он должен потом деваться (мож сразу в файл запихивать), скольким пользователям он нужен...
     
  3. KiR

    KiR НЕ шибка опытный програмер)
    1C Team

    Регистрация:
    11 сен 2007
    Сообщения:
    1.581
    Симпатии:
    0
    сделать автоотчет теоретически можно. а вот насчет может ли его сделать простой пользователь - думаю что ответ отрицательный
     
  4. puh14

    puh14 Well-Known Member
    1C Team

    Регистрация:
    11 июл 2008
    Сообщения:
    1.412
    Симпатии:
    0
    Самый простой путь - через Task Shelduer - Задаешь заход в 1с под конкретным пользователем в конкретное время , в процедуре ПриНачалеРаботыСистемы() пишешь вызов процедуры отчета под условием захода этого пользователя, в процедуре отчета дописываешь кусок для создания и отправки итогового файла по мылу. Ой - просмотрел, это как в 7.7 реализовалось, в восьмерке можно сделать так-же, насчет внутренних настроек для такого - не знаю.
     
  5. KiR

    KiR НЕ шибка опытный програмер)
    1C Team

    Регистрация:
    11 сен 2007
    Сообщения:
    1.581
    Симпатии:
    0
    puh14, скажи плиз, а как сделать так чтобы можно было передавать параметр? Т.е. нужно чтобы по расписанию запускалась прога (по идее через bat файл можно прописать запуск проги и базы и юзверя и кинуть в шедулер), выполнялся отчет и потом все закрывалось. причем желательно так чтобы можно было передать проге какой-то параметр - написать к примеру в файл текстовый.
    Буду благодарен за подобную инфу! 1C 7.7 буха
     
  6. puh14

    puh14 Well-Known Member
    1C Team

    Регистрация:
    11 июл 2008
    Сообщения:
    1.412
    Симпатии:
    0
    взял с http://1cblog.ru/2007/10/31/parametry-koma...lja-zapuska-1s/

    в процедуре ПриНачалеРаботыСистемы() прописываешь условие

    Если ИмяПользователя() = "Отчет" Тогда
    СформироватьОтчет();
    КонецЕсли;

    а насчет текстового файла.... - как видишь параметра для передачи какого-то файла в командах нету... Проще наклепать разных пользователей 1с, либо прописать это в процедуре СФормироватьОтчет(), либо запускать из под разных пользователей системы(задается в TAskShelduer). как имя пользователей системы вытаскивается к сожалению не помню ;-(

    А под конец вызываешь ЗавершитьРаботуСистемы();
     
  7. KiR

    KiR НЕ шибка опытный програмер)
    1C Team

    Регистрация:
    11 сен 2007
    Сообщения:
    1.581
    Симпатии:
    0
    не понял что ты имеешь ввиду под этим...
     
  8. puh14

    puh14 Well-Known Member
    1C Team

    Регистрация:
    11 июл 2008
    Сообщения:
    1.412
    Симпатии:
    0
    Когда запускаешь файло из taskShelduer он просит сказать из-под какого ПОЛЬЗОВАТЕЛЯ ОПЕРАЦИОННОЙ СИСТЕМЫ надо запустить файл. Когда программа запущена ( например с ПОЛЬЗОВАТЕЛЕМ 1С "отчет") - через ИмяПользователя() ты вытаскиваешь ПОЛЬЗОВАТЕЛЯ 1С, каким-то образом ты можешь вытащить и ПОЛЬЗОВАТЕЛЯ ОПЕРАЦИОННОЙ СИСТЕМЫ, от имени которого был запущен батник в taskshelduer
     
  9. KiR

    KiR НЕ шибка опытный програмер)
    1C Team

    Регистрация:
    11 сен 2007
    Сообщения:
    1.581
    Симпатии:
    0
    ну ясно. я так понял СформироватьОтчет() - пишеться ручками. как мне записать туда вызов внешней обработки + заполнить ее параметрами, которые я могу взять из констант, а также как именнно выполнит эту внешнюю обработку?
     
  10. puh14

    puh14 Well-Known Member
    1C Team

    Регистрация:
    11 июл 2008
    Сообщения:
    1.412
    Симпатии:
    0
    Можешь СформироватьОтчет() в глобальнике записать, можешь внешнюю. Если внешнюю пишешь ОТкрытьФорму(), передаешь в неё контекст (константы, пользователь), там в ПриОТкрытии() выполняешь нужные действия, пишешь результат в файл отправляешь по мылу через dll и ЗавершитьРаботуСистемы()
     
  11. KiR

    KiR НЕ шибка опытный програмер)
    1C Team

    Регистрация:
    11 сен 2007
    Сообщения:
    1.581
    Симпатии:
    0
    а как получить эту внешнюю обработку - где и как указать в ней путь и параметры для запуска? Просто для нескольких баз нада - решили во внешеней чтобы глобальный не засорять...
     
  12. puh14

    puh14 Well-Known Member
    1C Team

    Регистрация:
    11 июл 2008
    Сообщения:
    1.412
    Симпатии:
    0
    Могу только в семерке подсказать. Прмерно так :

    Процедура Материалка()
    ИмяФайла = КаталогИБ() + "\extforms\материалка.ert";
    открытьФорму("Отчет",Тз,ИмяФайла); // ТЗ - это таблица значений, передающаяся в обработку
    КонецПРоцедуры

    в внешней обработке

    Процедура приОткрытии()// а вот тут собсно пишешь формирование отчета
    Если ПустоеЗначение (Форма.Параметр) = 0 ТОгда
    Док = Форма.Параметр;
    Док.ВыбратьСтроки();
    Пока Док.ПолучитьСтроку() = 1 Цикл
    Спр = СоздатьОбъект("Справочник.Номенклатура");
    Спр.НайтиЭлемент(Док.Товар);
    Сообщить(Док.Товар);
    ВыбТовар.ДобавитьЗначение(Док.ТОвар);
    КонецЦикла;
    КонецЕсли;

    КонецПроцедуры
     
  13. KiR

    KiR НЕ шибка опытный програмер)
    1C Team

    Регистрация:
    11 сен 2007
    Сообщения:
    1.581
    Симпатии:
    0
    спасибо большое! ща буду маньячить. если еще будут вопросы - напишу. лови пока свой плюс, бэтмэн)
     
Загрузка...

Поделиться этой страницей