7.7 Автосохранение в файл.

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем helena30, 17 дек 2014.

  1. TopicStarter Overlay
    helena30
    Offline

    helena30

    Регистрация:
    17 дек 2014
    Сообщения:
    4
    Симпатии:
    0
    Баллы:
    1
    Добрый день! Подскажите пожалуйста кто знает.
    Сохраняю отчёт из конфигурации:
    ТАБ.Записать("C:\Временный\ведомость.mxl");

    А можно сделать, что бы он сам записывался в файл. Где-то раз в полчаса без моего участия.
  2. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Формировался сам и записывался? Через обработку ожидания
  3. TopicStarter Overlay
    helena30
    Offline

    helena30

    Регистрация:
    17 дек 2014
    Сообщения:
    4
    Симпатии:
    0
    Баллы:
    1
    Нет, я наж. кнопку сформировать, затем решили писать в файл раз в полчаса. Был вариант команда ТАБ.Записать("C:\Временный\ведомость.mxl"); Но ей нужно пользоваться в ручную. А хочется что бы записывался сам.

    Код:
    //_____________________________________________________________________________
    Процедура ПриОткрытии()
        сзСтатусы.УдалитьВсе();
        Пер = Перечисление.ПолучитьАтрибут("СтатусЗаявки");
        Для Ном = 1 По Пер.КоличествоЗначений() Цикл
            сзСтатусы.ДобавитьЗначение(Пер.ЗначениеПоНомеру(Ном));
        КонецЦикла;
        сзСтатусы.Пометка(2,1);
        сзСтатусы.Пометка(3,1);
        сзСтатусы.Пометка(4,1);
        ВыбВыполнитьДоДата = ТекущаяДата() + 7;
        Если ПустоеЗначение(Форма.Параметр) = 1 Тогда
              ВыбНачПериода = НачМесяца(ТекущаяДата());
            ВыбКонПериода = ТекущаяДата();
        КонецЕсли;                 
        Если НазваниеНабораПрав() = "Пользователь" Тогда
           ВыбКонтактноеЛицо = глПользователь.Сотрудник;
            ВыбИсполнитель = "";
            ВыбПриоритет = "";
            ВыбТипЗапроса = "";
            Форма.ВыбКонтактноеЛицо.Доступность(0);
            сзСтатусы.Пометка(5,1); 
        Иначе
            ВыбИсполнитель = глПользователь.Сотрудник;
            ВыбКонтактноеЛицо = "";
        КонецЕсли;
    КонецПроцедуры    // ПриОткрытии
    //_____________________________________________________________________________
    Процедура Сформировать(ЭкспортВЭксель = 0)
        Перем Запрос, ТекстЗапроса, Таб;
      
        Если ВыбНачПериода > ВыбКонПериода Тогда
            ВыбНачПериода = ВыбКонПериода; 
            Предупреждение("Начальная дата не может быть больше
            |конечной даты формирования отчета!");
            Сообщить("Произведено корректирование дат", "!");
        КонецЕсли;
        сзСтатусЗаявки = СоздатьОбъект("СписокЗначений");
        //фильтр по статусам (перечисление)
        Для Инд  =  1 По сзСтатусы.РазмерСписка() Цикл
            Если сзСтатусы.Пометка(Инд) = 1 Тогда
                сзСтатусЗаявки.ДобавитьЗначение(сзСтатусы.ПолучитьЗначение(Инд));    
            КонецЕсли;
        КонецЦикла;
        //Создание объекта типа Запрос
        Запрос = СоздатьОбъект("Запрос");
        ТекстЗапроса =
        "//{{ЗАПРОС(Сформировать)
        |Период с ВыбНачПериода по ВыбКонПериода;
        |Обрабатывать НеПомеченныеНаУдаление;
        |Заявка = Документ.Заявка.ТекущийДокумент;
        |Исполнитель = Документ.Заявка.ТекущийИсполнитель;
        |КонтактноеЛицо = Документ.Заявка.КонтактноеЛицо;
        |Сервис = Документ.Заявка.Сервис;
        |Приоритет = Документ.Заявка.Приоритет;
        |ТипЗапроса = Документ.Заявка.ТипЗапроса;
        |Статус = Документ.Заявка.СтатусЗаявки;
        |ВыполнитьДоДата = Документ.Заявка.ВыполнитьДоДата;
        |Функция Счётчик = Счётчик();
        |Группировка Исполнитель без групп;
        |Группировка Приоритет упорядочить по Приоритет.НижняяГраница;
        |Группировка ВыполнитьДоДата;
        |Группировка Статус;
        |Группировка КонтактноеЛицо упорядочить по КонтактноеЛицо.Наименование;
        |Группировка Сервис упорядочить по Сервис.Наименование;
        |Группировка ТипЗапроса;
        |Условие(ВыполнитьДоДата <= ВыбВыполнитьДоДата);
        |Условие(Исполнитель в ВыбИсполнитель);
        |Условие(КонтактноеЛицо в ВыбКонтактноеЛицо);
        |Условие(ТипЗапроса в ВыбТипЗапроса);
        |Условие(Статус в сзСтатусЗаявки);
        |Условие(Приоритет в ВыбПриоритет);
        |"//}}ЗАПРОС
        ;
        // Если ошибка в запросе, то выход из процедуры
        Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
            Возврат;
        КонецЕсли;
        // Подготовка к заполнению выходных форм данными запроса
        Таб = СоздатьОбъект("Таблица");
        Таб.ИсходнаяТаблица("Сформировать");
        // Заполнение полей "Заголовок"
        Таб.ВывестиСекцию("Заголовок");
        Состояние("Заполнение выходной таблицы...");
        Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
        Пока Запрос.Группировка(1) = 1 Цикл
            Таб.ВывестиСекцию("Исполнитель");
            Пока Запрос.Группировка(2) = 1 Цикл
               Таб.ВывестиСекцию("Приоритет");
                
                Пока Запрос.Группировка(3) = 1 Цикл
                    Пока Запрос.Группировка(4) = 1 Цикл
                        Пока Запрос.Группировка(5) = 1 Цикл
                            Пока Запрос.Группировка(6) = 1 Цикл
                                Пока Запрос.Группировка(7) = 1 Цикл
                                ВыполнитьДоВремя = Лев(Запрос.Заявка.ВыполнитьДоВремя, 5);
                                Таб.ВывестиСекцию("Строка");
                                КонецЦикла;
                            КонецЦикла;
                        КонецЦикла;
                    КонецЦикла;
                КонецЦикла;
            КонецЦикла;
        КонецЦикла;
        // Заполнение полей "Итого"
        Таб.ВывестиСекцию("Итого");
        // Вывод заполненной формы
        Если ЭкспортВЭксель = 0 Тогда
            Таб.ТолькоПросмотр(1);
            Таб.Показать("Отчет по исполнителям службы поддержки  пользователей");
        Иначе    
            глОткрытьТаблицуВExcel(Таб, "Отчет по исполнителям службы поддержки  пользователей", 1, 0, 0, 0);
        КонецЕсли;
    КонецПроцедуры
    Последнее редактирование модератором: 17 дек 2014
  4. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Зачем вам одна и та же форма д.б. сохранена?
    Поясните суть задачи
  5. TopicStarter Overlay
    helena30
    Offline

    helena30

    Регистрация:
    17 дек 2014
    Сообщения:
    4
    Симпатии:
    0
    Баллы:
    1
    Я написал
    Я написала часть кода. Данные по отчёту меняются, забиваются часто.
  6. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Так я вам и ответил... Нужно переформировывать и сохранять.. Вызывайте отчет через обработку ожидания.
  7. TopicStarter Overlay
    helena30
    Offline

    helena30

    Регистрация:
    17 дек 2014
    Сообщения:
    4
    Симпатии:
    0
    Баллы:
    1
    Спасибо огромное!
  8. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Не за что. Обращайтесь

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