8.х Как сохранить отчёт в фоновом режме?

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем mila1231, 30 май 2016.

  1. TopicStarter Overlay
    mila1231
    Offline

    mila1231

    Регистрация:
    25 июн 2015
    Сообщения:
    31
    Симпатии:
    0
    Баллы:
    1
    Ребят, как сохранить отчёт в фоновом режиме, если клиент обычное приложение?? по средствам регламентного задания и общего модуля или нет??
    Как пошла я .. создала общий модуль, галки поставила на сервер и по умолчанию стояло клиент(обычное приложение)..дальше создала регламентное задание...
    текст модуля такой.. возможно да и скорее всего не правильно т.к не работает.. Вопрос как правильно?? Заранее СПСБ.
    Код:
    Процедура СоздатьОтчет1() экспорт
     
       Дата_до= ТекущаяДата();
       Дата_от = ТекущаяДата()-24*60*60;
      ТабДок = Новый ТабличныйДокумент;
      Макет = Отчеты.Отчет_статус_прибора.ПолучитьМакет("Макет");
      ОбластьДанные = Макет.ПолучитьОбласть("Данные");
       ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
       ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
       ТабДок.Вывести(ОбластьЗаголовок);
      Запрос = Новый запрос;
       Запрос.текст = "ВЫБРАТЬ
        |   РеестрДвиженияПрибораСрезПоследних.Номер_прибора_регистр,
        ............................
          |ГДЕ
        |   РеестрДвиженияПрибораСрезПоследних.Дата_приёмки МЕЖДУ &Дата_от И &Дата_до
        ..................................
             
       Запрос.УстановитьПараметр("Дата_от", НачалоДня(Дата_от));   
       Запрос.УстановитьПараметр("Дата_до", КонецДня(Дата_до));
     
           
     
       ВыборкаДанные = Запрос.Выполнить().Выбрать();
     
     
     
       Пока выборкаДанные.Следующий() цикл
       
       ОбластьДанные.Параметры.Номер_прибора=  ВыборкаДанные.Номер_прибора_регистр;
       ОбластьДанные.Параметры.Тип_прибора= ВыборкаДанные.тип_СИ_регистр;
       ОбластьДанные.Параметры.Марка_си= ВыборкаДанные.Марка_СИ_регистр;
       ОбластьДанные.Параметры.Статус=  ВыборкаДанные.Статус_регистр; 
       ТабДок.вывести(ОбластьДанные);
     
       КонецЦикла;
     
       ТабДок.Вывести(ОбластьПодвал);
       ТабДок.Записать("C:\Таблица2.xls", ТипФайлаТабличногоДокумента.xls);
    КонецПроцедуры
  2. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.750
    Симпатии:
    509
    Баллы:
    204
    Можно без вывода табличного документа сохранить
  3. TopicStarter Overlay
    mila1231
    Offline

    mila1231

    Регистрация:
    25 июн 2015
    Сообщения:
    31
    Симпатии:
    0
    Баллы:
    1
    alexburn, т.е вы имеете в виду убрать ТабДок.вывести() или я не правильно поняла????

  4. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.750
    Симпатии:
    509
    Баллы:
    204
    Да, убрать Вывести()
  5. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.554
    Симпатии:
    716
    Баллы:
    204
    ээээ....тогда Табдок будет пустым :)
    ТабДок.Записать(); - спасет отца русской демократии :)
  6. TopicStarter Overlay
    mila1231
    Offline

    mila1231

    Регистрация:
    25 июн 2015
    Сообщения:
    31
    Симпатии:
    0
    Баллы:
    1
    я уже день бьюсь и не работает, я правда причину не пойму. Если я правильно поняла, вывод областей нужно убрать, соответственно я их убрала.. соответственно процедура выглядит так.. извиняюсь за повторение.
    Код:
    Процедура СоздатьОтчет1() экспорт
     
       Дата_до= ТекущаяДата();
       Дата_от = ТекущаяДата()-24*60*60;
       ТабДок = Новый ТабличныйДокумент;
      Макет = Отчеты.Отчет_статус_прибора.ПолучитьМакет("Макет");
      ОбластьДанные = Макет.ПолучитьОбласть("Данные");
       ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
       ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
    
      //ТабДок.Вывести(ОбластьЗаголовок);
    
      Запрос = Новый запрос;
       Запрос.текст = "ВЫБРАТЬ
        |   РеестрДвиженияПрибораСрезПоследних.Номер_прибора_регистр,
        |   РеестрДвиженияПрибораСрезПоследних.Тип_СИ_регистр,
              |  РеестрДвиженияПрибораСрезПоследних.Марка_СИ_регистр,
        |   РеестрДвиженияПрибораСрезПоследних.Статус_регистр КАК Статус_регистр,
        |   РеестрДвиженияПрибораСрезПоследних.Контрагент_регистр
        |ИЗ
        |   РегистрСведений.РеестрДвиженияПрибора.СрезПоследних КАК РеестрДвиженияПрибораСрезПоследних
              |ГДЕ
        |   РеестрДвиженияПрибораСрезПоследних.Дата_приёмки МЕЖДУ &Дата_от И &Дата_до
       |УПОРЯДОЧИТЬ ПО
        |   Статус_регистр"  ;
             
       Запрос.УстановитьПараметр("Дата_от", НачалоДня(Дата_от));   
       Запрос.УстановитьПараметр("Дата_до", КонецДня(Дата_до));
     
           
     
       ВыборкаДанные = Запрос.Выполнить().Выбрать();
     
     
     
       Пока выборкаДанные.Следующий() цикл
       
       ОбластьДанные.Параметры.Номер_прибора=  ВыборкаДанные.Номер_прибора_регистр;
       ОбластьДанные.Параметры.Тип_прибора= ВыборкаДанные.тип_СИ_регистр;
       ОбластьДанные.Параметры.Марка_си= ВыборкаДанные.Марка_СИ_регистр;
       ОбластьДанные.Параметры.Статус=  ВыборкаДанные.Статус_регистр; 
    //ТабДок.вывести(ОбластьДанные);
     
       КонецЦикла;
    
    //   ТабДок.Вывести(ОбластьПодвал);
    
    
    ТабДок.Записать("C:\Таблица2.xls", ТипФайлаТабличногоДокумента.xls);
    КонецПроцедуры
    --- Объединение сообщений, 30 май 2016 ---
    nomad_irk , ТабДок.Записать() есть .....ТабДок.Записать("C:\Таблица2.xls", ТипФайлаТабличногоДокумента.xls);
    --- Объединение сообщений, 30 май 2016 ---
    получается, что у меня даже отчёт не создаётся, соответственно функция совсем не выполняется.. или регламентное задание...
    Последнее редактирование модератором: 30 май 2016
  7. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.750
    Симпатии:
    509
    Баллы:
    204
    А отчет-то вообще выводит какие-то данные ?
    Отладчиком пользовались ?
  8. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.554
    Симпатии:
    716
    Баллы:
    204
    "C:\Таблица2.xls" - путь "C:\" на машине, на которой запущен 1С-сервер вообще существует? У пользователя, под которым запущен 1с-сервер, имеет доступ на запись в "C:\"?
    alexburn нравится это.
  9. TopicStarter Overlay
    mila1231
    Offline

    mila1231

    Регистрация:
    25 июн 2015
    Сообщения:
    31
    Симпатии:
    0
    Баллы:
    1
    путь и доступ есть... ещё один вопрос... в общем модуле я ставила галку сервер(т.к в противном случае, если стоит клиент()), в регламентированных заданиях процедуры нет ...хотя по сути база у меня встроенная, т.е файловый вариант. На сколько правильно и будет ли работать, ведь 1с я запускаю под пользователем?
  10. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.750
    Симпатии:
    509
    Баллы:
    204
    Вы с первым вопросом разобрались ?
  11. TopicStarter Overlay
    mila1231
    Offline

    mila1231

    Регистрация:
    25 июн 2015
    Сообщения:
    31
    Симпатии:
    0
    Баллы:
    1
    alexburn, не увидела ваше предыдущее сообщение , не разобралась.....сама процедура работает... если смотреть из отчёта.... но если ставить точку остановки в общем модуле, то тут к ней нет обращения.
  12. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.750
    Симпатии:
    509
    Баллы:
    204
    значит не работает у вас эта процедура. Вы с клиента ее вызываете ?
  13. TopicStarter Overlay
    mila1231
    Offline

    mila1231

    Регистрация:
    25 июн 2015
    Сообщения:
    31
    Симпатии:
    0
    Баллы:
    1
    alexburn, получается что да...т.е я запускаю программу под администратором ... и по сути как я понимаю должно выполнятся регламентное задание.... или не так?
  14. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.750
    Симпатии:
    509
    Баллы:
    204
    Будет ровно так, как вы сделаете. Т.е. настроили регл.задание по расписанию, задали пользователя - должно работать.
  15. TopicStarter Overlay
    mila1231
    Offline

    mila1231

    Регистрация:
    25 июн 2015
    Сообщения:
    31
    Симпатии:
    0
    Баллы:
    1
    тогда вопрос как написать, чтоб всё работало, если не сложно?? счас всё в таком виде.. что тут не правильно?

    Вложения:

    • 1.jpg
      1.jpg
      Размер файла:
      547,3 КБ
      Просмотров:
      4
    • 2.jpg
      2.jpg
      Размер файла:
      553,5 КБ
      Просмотров:
      4
  16. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.750
    Симпатии:
    509
    Баллы:
    204
    Ответил в личку
  17. TopicStarter Overlay
    mila1231
    Offline

    mila1231

    Регистрация:
    25 июн 2015
    Сообщения:
    31
    Симпатии:
    0
    Баллы:
    1
    помогло, но вопросы есть..
    ВыполнитьОбработкуЗаданий() как я поняла, необходимо ещё создать и непосредственно процедуру проверки невыполненных заданий, т.е что то такое..

    Процедура Проверка()
    ВыполнитьОбработкуЗаданий();
    КонецПроцедуры
    ПодключитьОбработчикОжидания("Проверка",60);

    я же правильно поняла можно поставить в мой существующий общий модуль??
  18. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.750
    Симпатии:
    509
    Баллы:
    204
    Да, правильно.
  19. TopicStarter Overlay
    mila1231
    Offline

    mila1231

    Регистрация:
    25 июн 2015
    Сообщения:
    31
    Симпатии:
    0
    Баллы:
    1
    спасибо, помогло... только
    ВыполнитьОбработкуЗаданий(); надо было в общий модуль обычного приложения закинуть)
  20. TopicStarter Overlay
    mila1231
    Offline

    mila1231

    Регистрация:
    25 июн 2015
    Сообщения:
    31
    Симпатии:
    0
    Баллы:
    1
    единственное счас неправильно сохраняет, может подскажите, что не правильно??
    ТабДок.Записать( "G:\" +"Данные на начало дня "+ Строка(ТекущаяДата())+".xls") получается, что вместо расширения 8.

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