Имя: Пароль:
1C
 
1С 7,7 автоматически делать и сохранять отчет
0 aleksander1sk
 
11.09.15
09:14
Есть обработка, которая делает отчет:
Процедура ПриОткрытии()
КонецПроцедуры

Процедура ОбработкаПодбора(Эл, Конт)
    Если Эл.Вид() = "дТовары" Тогда
        Если спТовары.Принадлежит(Эл.ТекущийЭлемент()) = 0 Тогда
            спТовары.ДобавитьЗначение(Эл.ТекущийЭлемент(), ?(Эл.ЭтоГруппа() = 1, ВРег(Эл.Наименование), Эл.Наименование));
        КонецЕсли;                
    ИначеЕсли Эл.Вид() = "дКлиенты" Тогда
        Если спКлиенты.Принадлежит(Эл.ТекущийЭлемент()) = 0 Тогда
            спКлиенты.ДобавитьЗначение(Эл.ТекущийЭлемент(), ?(Эл.ЭтоГруппа() = 1, ВРег(Эл.Наименование), Эл.Наименование));
        КонецЕсли;                
    ИначеЕсли Эл.Вид() = "дСотрудники" Тогда
        Если спТП.Принадлежит(Эл.ТекущийЭлемент()) = 0 Тогда
            спТП.ДобавитьЗначение(Эл.ТекущийЭлемент(), ?(Эл.ЭтоГруппа() = 1, ВРег(Эл.Наименование), Эл.Наименование));
        КонецЕсли;                
    КонецЕсли;
КонецПроцедуры

Процедура ДобавитьТовар()
    Перем Конт;
    ОткрытьПодбор("Справочник.дТовары", "ФормаСписка", Конт, 1);
    Конт.ВыборГруппы(1);
КонецПроцедуры

Процедура УдалитьТовар()
    Если спТовары.ТекущаяСтрока() > 0 Тогда
        спТовары.УдалитьЗначение(спТовары.ТекущаяСтрока(), 1);
    КонецЕсли;
КонецПроцедуры

Процедура ДобавитьТП()
    Перем Конт;
    ОткрытьПодбор("Справочник.дСотрудники", "ФормаСписка", Конт, 1);
    Конт.ВыборГруппы(1);
КонецПроцедуры

Процедура УдалитьТП()
    Если спТП.ТекущаяСтрока() > 0 Тогда
        спТП.УдалитьЗначение(спТП.ТекущаяСтрока(), 1);
    КонецЕсли;
КонецПроцедуры


Процедура ДобавитьКлиента()
    Перем Конт;
    ОткрытьПодбор("Справочник.дКлиенты", "ФормаСписка", Конт, 1);
    Конт.ВыборГруппы(1);
КонецПроцедуры

Процедура УдалитьКлиента()
    Если спКлиенты.ТекущаяСтрока() > 0 Тогда
        спКлиенты.УдалитьЗначение(спКлиенты.ТекущаяСтрока(), 1);
    КонецЕсли;
КонецПроцедуры

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

//*******************************************
// Процедура генерации запроса Сформировать.
//
Процедура Сформировать()
    Перем Запрос, ТекстЗапроса, Таб;
    //Создание объекта типа Запрос
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса =
    "//{{ЗАПРОС(Сформировать)
    |Период с ВыбНачПериода по ВыбКонПериода;
    |Обрабатывать НеПомеченныеНаУдаление;
    |рКлиент = Документ.дкРасходнаяНакладная.рКлиент;
    |рСкладОтправитель = Документ.дкРасходнаяНакладная.рСкладОтправитель;
    |рПунктДоставки = Документ.дкРасходнаяНакладная.рПунктДоставки;
    |рТовар = Документ.дкРасходнаяНакладная.рТовар;
    |рТП = Документ.дкРасходнаяНакладная.рТП;
    |рКоличество = Документ.дкРасходнаяНакладная.рКоличество;
    |рСумма = Документ.дкРасходнаяНакладная.рВсего;
    |Группировка рТП без групп;
    |Группировка рКлиент без групп;
    |Группировка рПунктДоставки без групп;
    |Группировка рТовар без групп;
    |Условие(рКлиент в спКлиенты);
    |Условие(рСкладОтправитель в ВыбСклад);
    |Условие(рТП в спТП);
    |Условие (рТовар в спТовары);
    |"//}}ЗАПРОС
    ;
    // Если ошибка в запросе, то выход из процедуры
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
        Возврат;
    КонецЕсли;

    // Подготовка к заполнению выходных форм данными запроса
    Таб = СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Сформировать");
    // Заполнение полей "Заголовок"
    
    
//    Если фТоргТочка = 0 Тогда
//    
//    Таб.ВывестиСекцию("ЗаголовокТолько");
//    Состояние("Заполнение выходной таблицы...");
//    Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
//            
//    Пока Запрос.Группировка(1) = 1 Цикл
//        ДДО = 0;
//        Пока Запрос.Группировка(2) = 1 Цикл
//            Пока Запрос.Группировка(3) = 1 Цикл
//                  ДДО = ДДО + 1;
//            КонецЦикла;            
//        КонецЦикла;
//        Таб.ВывестиСекцию("рТПТолько");        
//    КонецЦикла;
//                                
//    Иначе
//    
//    Таб.ВывестиСекцию("Заголовок");
//    Состояние("Заполнение выходной таблицы...");
//    Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
//    
//    Пока Запрос.Группировка(1) = 1 Цикл
//        // Заполнение полей рТП  
//        ДДО = 0;
//        Таб.ВывестиСекцию("рТП2");
//        Пока Запрос.Группировка(2) = 1 Цикл
//            // Заполнение полей рКлиент
//            //Таб.ВывестиСекцию("рКлиент");
//            Пока Запрос.Группировка(3) = 1 Цикл
//                // Заполнение полей рПунктДоставки
//                ДоставкаВ = Запрос.ЗначениеУпорядочивания(3);
//                Если фАдрес = 1 Тогда
//                    ДоставкаВ = ДоставкаВ + ". " + глАдресСтрокой(СоклЛП(Запрос.рПунктДоставки.рФактическийАдрес));
//                КонецЕсли;
//                Таб.ВывестиСекцию("рПунктДоставки");
//                ДДО = ДДО + 1;
//            КонецЦикла;            
//        КонецЦикла;
//        Таб.ВывестиСекцию("рТП");        
//    КонецЦикла;
//    
//
//    КонецЕсли;

    Таб.ВывестиСекцию("Заголовок|Основа");    
    Если фКлиент = 1 Тогда
         Таб.ПрисоединитьСекцию("Заголовок|Клиент");
    КонецЕсли;
    Если фНазваТочки = 1 Тогда
         Таб.ПрисоединитьСекцию("Заголовок|ДоставкаНазва");
    КонецЕсли;
    Если фАдресТочки = 1 Тогда
         Таб.ПрисоединитьСекцию("Заголовок|ДоставкаАдрес");
    КонецЕсли;
    Если (фКво = 1) или (фСумма= 1) Тогда
         Таб.ПрисоединитьСекцию("Заголовок|Товар");
    КонецЕсли;
    Если фКво = 1 Тогда
         Таб.ПрисоединитьСекцию("Заголовок|Колво");
    КонецЕсли;
    Если фСумма= 1 Тогда
         Таб.ПрисоединитьСекцию("Заголовок|Сумма");
    КонецЕсли;
    
    Состояние("Заполнение выходной таблицы...");
    Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);

    Пока Запрос.Группировка(1) = 1 Цикл
        // Заполнение полей рТП  
        ДДО = 0;
        Таб.ВывестиСекцию("рТП2|Основа");
        Если фКлиент = 1 Тогда
            Таб.ПрисоединитьСекцию("рТП2|Клиент");
        КонецЕсли;
        Если фНазваТочки = 1 Тогда
            Таб.ПрисоединитьСекцию("рТП2|ДоставкаНазва");
        КонецЕсли;
        Если фАдресТочки = 1 Тогда
            Таб.ПрисоединитьСекцию("рТП2|ДоставкаАдрес");
        КонецЕсли;
        Если (фКво = 1) или (фСумма= 1) Тогда
            Таб.ПрисоединитьСекцию("рТП2|Товар");
        КонецЕсли;
        Если фКво = 1 Тогда
            Таб.ПрисоединитьСекцию("рТП2|Колво");
        КонецЕсли;
        Если фСумма= 1 Тогда
            Таб.ПрисоединитьСекцию("рТП2|Сумма");
        КонецЕсли;      
          
        
        //Клиент
        Пока Запрос.Группировка(2) = 1 Цикл
            //Точка
            ИтСумма = 0;
            ИтКво   = 0;                
            Пока Запрос.Группировка(3) = 1 Цикл
                
                ДоставкаВ = Запрос.ЗначениеУпорядочивания(3);

                Таб.ВывестиСекцию("рСтрока|Основа");                    
                Если фКлиент = 1 Тогда
                    Таб.ПрисоединитьСекцию("рСтрока|Клиент");
                КонецЕсли;
                Если фНазваТочки = 1 Тогда
                    Таб.ПрисоединитьСекцию("рСтрока|ДоставкаНазва");
                КонецЕсли;
                Если фАдресТочки = 1 Тогда
                    Таб.ПрисоединитьСекцию("рСтрока|ДоставкаАдрес");
                КонецЕсли;
                
                //Товар
                Если (фКво = 1) или (фСумма= 1) Тогда
                     Пока Запрос.Группировка(4) = 1 Цикл
                           Товар = Запрос.рТовар;
                           Кво   = Запрос.рКоличество;
                           Сумма = Запрос.рСумма;    
                           ИтКво = ИтКво + Кво;
                           ИтСумма = ИтСумма + Сумма;
                           Если (фКво = 1) или (фСумма= 1) Тогда
                                Таб.ВывестиСекцию("0|Основа");                    
                                Если фКлиент = 1 Тогда
                                       Таб.ПрисоединитьСекцию("0|Клиент");
                                КонецЕсли;
                                Если фНазваТочки = 1 Тогда
                                       Таб.ПрисоединитьСекцию("0|ДоставкаНазва");
                                КонецЕсли;
                                Если фАдресТочки = 1 Тогда
                                       Таб.ПрисоединитьСекцию("0|ДоставкаАдрес");
                                КонецЕсли;                                                                 
                                Таб.ПрисоединитьСекцию("рСтрока|Товар");
                          КонецЕсли;
                          Если фКво = 1 Тогда
                                 Таб.ПрисоединитьСекцию("рСтрока|Колво");
                          КонецЕсли;
                          Если фСумма= 1 Тогда
                                 Таб.ПрисоединитьСекцию("рСтрока|Сумма");
                          КонецЕсли;      
                     КонецЦикла;                    
                КонецЕсли;                      
                ДДО = ДДО + 1;
            КонецЦикла;            
            //итог по точке
            Если (фКво = 1) или (фСумма= 1) Тогда
                  Таб.ВывестиСекцию("0|Основа");                    
                   Если фКлиент = 1 Тогда
                       Таб.ПрисоединитьСекцию("0|Клиент");
                   КонецЕсли;
                   Если фНазваТочки = 1 Тогда
                       Таб.ПрисоединитьСекцию("0|ДоставкаНазва");
                   КонецЕсли;
                   Если фАдресТочки = 1 Тогда
                       Таб.ПрисоединитьСекцию("0|ДоставкаАдрес");
                   КонецЕсли;                                                                 
                   Таб.ПрисоединитьСекцию("0|Товар");
              КонецЕсли;
              Если фКво = 1 Тогда
                     Таб.ПрисоединитьСекцию("0|Колво");
              КонецЕсли;
              Если фСумма= 1 Тогда
                     Таб.ПрисоединитьСекцию("0|Сумма");
            КонецЕсли;      
            
            
        КонецЦикла;
        
        
        Таб.ВывестиСекцию("рТП|Основа");        
        Если фКлиент = 1 Тогда
            Таб.ПрисоединитьСекцию("рТП|Клиент");
        КонецЕсли;
        Если фНазваТочки = 1 Тогда
            Таб.ПрисоединитьСекцию("рТП|ДоставкаНазва");
        КонецЕсли;
        Если фАдресТочки = 1 Тогда
            Таб.ПрисоединитьСекцию("рТП|ДоставкаАдрес");
        КонецЕсли;
        Если (фКво = 1) или (фСумма= 1) Тогда
            Таб.ПрисоединитьСекцию("рТП|Товар");
        КонецЕсли;
        Если фКво = 1 Тогда
            Таб.ПрисоединитьСекцию("рТП|Колво");
        КонецЕсли;
        Если фСумма= 1 Тогда
            Таб.ПрисоединитьСекцию("рТП|Сумма");
        КонецЕсли;      
        
    КонецЦикла;



    // Вывод заполненной формы
    Таб.ТолькоПросмотр(1);
    Таб.Показать("Сформировать", "");
КонецПроцедуры

Как сделать так, чтобы обработка автоматом делала отчет и сохраняла его в файл .html?
заранее спасибо всем.
1 Масянька
 
11.09.15
09:17
(0) "Автоматом" - что имеется ввиду?
2 aleksander1sk
 
11.09.15
09:24
(1) Ну сначала, чтобы просто при открытии, в список значений добавлю просто нужные условия (типа торговый представитель, период и т.д.) А вот как сделать, чтобы отчет делался при запуске обработки и сохранялся в файл?
3 Масянька
 
11.09.15
09:27
(2) В ПриОткрытии вставляй код отчета + код сохранения.
4 aleksander1sk
 
11.09.15
09:31
(3) Код отчета есть, а как написать (или где посмотреть) код сохранения?)
5 Масянька
 
11.09.15
09:33
(4) В гугле. У меня - нету. Я - в html не сохраняла.
6 akaBrr
 
11.09.15
09:34
(4) У таблицы есть метод Записать.

Записать(<?>,);
Синтаксис:
Записать(<ИмяФайла>,<ТипФайла>)
Назначение:
Записать таблицу в файл.
Параметры:
<ИмяФайла> - имя файла.
<ТипФайла> - необязательный параметр. Числовое или строковое выражение, определяющее тип файла:
· отсутствует, 0 или ''MXL'' - формат 1C;
· 1 или ''XLS'' - формат Ms Excel;
· 2 или ''HTM'' или ''HTML'' - формат HTML;
· 3 или ''TXT'' - формат TXT.
Замечание:
Метод может использоваться при работе с таблицей в режиме
7 Масянька
 
11.09.15
09:35
(6) Блин... Совсем забыла...
8 aleksander1sk
 
11.09.15
09:37
(6) Спасибо огромное, попробую, итпишусь.
9 aleksander1sk
 
11.09.15
10:03
Процедура ПриОткрытии()          
    ВыбНачПериода = НачМесяца();
    ВыбКонПериода = ТекущаяДата();
    спТП = СоздатьОбъект("СписокЗначений");
    спр = СоздатьОбъект("Справочник.дСотрудники");
    спр.НайтиПоКоду("26");
    спТП.ДобавитьЗначение(спр.текущийЭлемент());
    спТовары = СоздатьОбъект("СписокЗначений");
    спр = СоздатьОбъект("Справочник.дТовары");
    спр.НайтиПоКоду("17194");
    спТовары.ДобавитьЗначение(спр.текущийЭлемент());
    
КонецПроцедуры
Показывает ошибку:
ВыбНачПериода = НачМесяца(<<?>>);
{E:\BACKUP\18.06.2015PLN1C\POLYANA\EXTFORMS\ADDONS\ADDONS02.GRP\DDO.ERT(306)}: Ожидается выражение
10 Хоменко Валерий
 
11.09.15
10:10
НачМесяца(<Дата>)
11 aleksander1sk
 
11.09.15
10:18
(10) Поставил НачМесяца(рабочаяДата()) заработало
12 aleksander1sk
 
11.09.15
10:36
Обработка:

Процедура ОбработкаПодбора(Эл, Конт)
    Если Эл.Вид() = "дТовары" Тогда
        Если спТовары.Принадлежит(Эл.ТекущийЭлемент()) = 0 Тогда
            спТовары.ДобавитьЗначение(Эл.ТекущийЭлемент(), ?(Эл.ЭтоГруппа() = 1, ВРег(Эл.Наименование), Эл.Наименование));
        КонецЕсли;                
    ИначеЕсли Эл.Вид() = "дКлиенты" Тогда
        Если спКлиенты.Принадлежит(Эл.ТекущийЭлемент()) = 0 Тогда
            спКлиенты.ДобавитьЗначение(Эл.ТекущийЭлемент(), ?(Эл.ЭтоГруппа() = 1, ВРег(Эл.Наименование), Эл.Наименование));
        КонецЕсли;                
    ИначеЕсли Эл.Вид() = "дСотрудники" Тогда
        Если спТП.Принадлежит(Эл.ТекущийЭлемент()) = 0 Тогда
            спТП.ДобавитьЗначение(Эл.ТекущийЭлемент(), ?(Эл.ЭтоГруппа() = 1, ВРег(Эл.Наименование), Эл.Наименование));
        КонецЕсли;                
    КонецЕсли;
КонецПроцедуры

Процедура ДобавитьТовар()
    Перем Конт;
    ОткрытьПодбор("Справочник.дТовары", "ФормаСписка", Конт, 1);
    Конт.ВыборГруппы(1);
КонецПроцедуры

Процедура УдалитьТовар()
    Если спТовары.ТекущаяСтрока() > 0 Тогда
        спТовары.УдалитьЗначение(спТовары.ТекущаяСтрока(), 1);
    КонецЕсли;
КонецПроцедуры

Процедура ДобавитьТП()
    Перем Конт;
    ОткрытьПодбор("Справочник.дСотрудники", "ФормаСписка", Конт, 1);
    Конт.ВыборГруппы(1);
КонецПроцедуры

Процедура УдалитьТП()
    Если спТП.ТекущаяСтрока() > 0 Тогда
        спТП.УдалитьЗначение(спТП.ТекущаяСтрока(), 1);
    КонецЕсли;
КонецПроцедуры


Процедура ДобавитьКлиента()
    Перем Конт;
    ОткрытьПодбор("Справочник.дКлиенты", "ФормаСписка", Конт, 1);
    Конт.ВыборГруппы(1);
КонецПроцедуры

Процедура УдалитьКлиента()
    Если спКлиенты.ТекущаяСтрока() > 0 Тогда
        спКлиенты.УдалитьЗначение(спКлиенты.ТекущаяСтрока(), 1);
    КонецЕсли;
КонецПроцедуры

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

//*******************************************
// Процедура генерации запроса Сформировать.
//
Процедура Сформировать()
    Перем Запрос, ТекстЗапроса, Таб;
    ВыбНачПериода = НачМесяца(рабочаяДата());
    ВыбКонПериода = ТекущаяДата();
    сз1 = СоздатьОбъект("СписокЗначений");
    спр = СоздатьОбъект("Справочник.дСотрудники");
    спр.НайтиПоКоду("26");
    сз1.ДобавитьЗначение(спр.текущийЭлемент());
    сз2 = СоздатьОбъект("СписокЗначений");
    спр = СоздатьОбъект("Справочник.дТовары");
    спр.НайтиПоКоду("17194");
    сз2.ДобавитьЗначение(спр.текущийЭлемент());
    //Создание объекта типа Запрос
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса =
    "//{{ЗАПРОС(Сформировать)
    |Период с ВыбНачПериода по ВыбКонПериода;
    |Обрабатывать НеПомеченныеНаУдаление;
    |рКлиент = Документ.дкРасходнаяНакладная.рКлиент;
    |рСкладОтправитель = Документ.дкРасходнаяНакладная.рСкладОтправитель;
    |рПунктДоставки = Документ.дкРасходнаяНакладная.рПунктДоставки;
    |рТовар = Документ.дкРасходнаяНакладная.рТовар;
    |рТП = Документ.дкРасходнаяНакладная.рТП;
    |рКоличество = Документ.дкРасходнаяНакладная.рКоличество;
    |рСумма = Документ.дкРасходнаяНакладная.рВсего;
    |Группировка рТП без групп;
    |Группировка рКлиент без групп;
    |Группировка рПунктДоставки без групп;
    |Группировка рТовар без групп;
    |Условие(рКлиент в спКлиенты);
    |Условие(рСкладОтправитель в ВыбСклад);
    |Условие(рТП в сз1);
    |Условие (рТовар в сз2);
    |"//}}ЗАПРОС
    ;
    // Если ошибка в запросе, то выход из процедуры
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
        Возврат;
    КонецЕсли;

    // Подготовка к заполнению выходных форм данными запроса
    Таб = СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Сформировать");
    // Заполнение полей "Заголовок"
    
    
//    Если фТоргТочка = 0 Тогда
//    
//    Таб.ВывестиСекцию("ЗаголовокТолько");
//    Состояние("Заполнение выходной таблицы...");
//    Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
//            
//    Пока Запрос.Группировка(1) = 1 Цикл
//        ДДО = 0;
//        Пока Запрос.Группировка(2) = 1 Цикл
//            Пока Запрос.Группировка(3) = 1 Цикл
//                  ДДО = ДДО + 1;
//            КонецЦикла;            
//        КонецЦикла;
//        Таб.ВывестиСекцию("рТПТолько");        
//    КонецЦикла;
//                                
//    Иначе
//    
//    Таб.ВывестиСекцию("Заголовок");
//    Состояние("Заполнение выходной таблицы...");
//    Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
//    
//    Пока Запрос.Группировка(1) = 1 Цикл
//        // Заполнение полей рТП  
//        ДДО = 0;
//        Таб.ВывестиСекцию("рТП2");
//        Пока Запрос.Группировка(2) = 1 Цикл
//            // Заполнение полей рКлиент
//            //Таб.ВывестиСекцию("рКлиент");
//            Пока Запрос.Группировка(3) = 1 Цикл
//                // Заполнение полей рПунктДоставки
//                ДоставкаВ = Запрос.ЗначениеУпорядочивания(3);
//                Если фАдрес = 1 Тогда
//                    ДоставкаВ = ДоставкаВ + ". " + глАдресСтрокой(СоклЛП(Запрос.рПунктДоставки.рФактическийАдрес));
//                КонецЕсли;
//                Таб.ВывестиСекцию("рПунктДоставки");
//                ДДО = ДДО + 1;
//            КонецЦикла;            
//        КонецЦикла;
//        Таб.ВывестиСекцию("рТП");        
//    КонецЦикла;
//    
//
//    КонецЕсли;

    Таб.ВывестиСекцию("Заголовок|Основа");    
    Если фКлиент = 1 Тогда
         Таб.ПрисоединитьСекцию("Заголовок|Клиент");
    КонецЕсли;
    Если фНазваТочки = 1 Тогда
         Таб.ПрисоединитьСекцию("Заголовок|ДоставкаНазва");
    КонецЕсли;
    Если фАдресТочки = 1 Тогда
         Таб.ПрисоединитьСекцию("Заголовок|ДоставкаАдрес");
    КонецЕсли;
    Если (фКво = 1) или (фСумма= 1) Тогда
         Таб.ПрисоединитьСекцию("Заголовок|Товар");
    КонецЕсли;
    Если фКво = 1 Тогда
         Таб.ПрисоединитьСекцию("Заголовок|Колво");
    КонецЕсли;
    Если фСумма= 1 Тогда
         Таб.ПрисоединитьСекцию("Заголовок|Сумма");
    КонецЕсли;
    
    Состояние("Заполнение выходной таблицы...");
    Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);

    Пока Запрос.Группировка(1) = 1 Цикл
        // Заполнение полей рТП  
        ДДО = 0;
        Таб.ВывестиСекцию("рТП2|Основа");
        Если фКлиент = 1 Тогда
            Таб.ПрисоединитьСекцию("рТП2|Клиент");
        КонецЕсли;
        Если фНазваТочки = 1 Тогда
            Таб.ПрисоединитьСекцию("рТП2|ДоставкаНазва");
        КонецЕсли;
        Если фАдресТочки = 1 Тогда
            Таб.ПрисоединитьСекцию("рТП2|ДоставкаАдрес");
        КонецЕсли;
        Если (фКво = 1) или (фСумма= 1) Тогда
            Таб.ПрисоединитьСекцию("рТП2|Товар");
        КонецЕсли;
        Если фКво = 1 Тогда
            Таб.ПрисоединитьСекцию("рТП2|Колво");
        КонецЕсли;
        Если фСумма= 1 Тогда
            Таб.ПрисоединитьСекцию("рТП2|Сумма");
        КонецЕсли;      
          
        
        //Клиент
        Пока Запрос.Группировка(2) = 1 Цикл
            //Точка
            ИтСумма = 0;
            ИтКво   = 0;                
            Пока Запрос.Группировка(3) = 1 Цикл
                
                ДоставкаВ = Запрос.ЗначениеУпорядочивания(3);

                Таб.ВывестиСекцию("рСтрока|Основа");                    
                Если фКлиент = 1 Тогда
                    Таб.ПрисоединитьСекцию("рСтрока|Клиент");
                КонецЕсли;
                Если фНазваТочки = 1 Тогда
                    Таб.ПрисоединитьСекцию("рСтрока|ДоставкаНазва");
                КонецЕсли;
                Если фАдресТочки = 1 Тогда
                    Таб.ПрисоединитьСекцию("рСтрока|ДоставкаАдрес");
                КонецЕсли;
                
                //Товар
                Если (фКво = 1) или (фСумма= 1) Тогда
                     Пока Запрос.Группировка(4) = 1 Цикл
                           Товар = Запрос.рТовар;
                           Кво   = Запрос.рКоличество;
                           Сумма = Запрос.рСумма;    
                           ИтКво = ИтКво + Кво;
                           ИтСумма = ИтСумма + Сумма;
                           Если (фКво = 1) или (фСумма= 1) Тогда
                                Таб.ВывестиСекцию("0|Основа");                    
                                Если фКлиент = 1 Тогда
                                       Таб.ПрисоединитьСекцию("0|Клиент");
                                КонецЕсли;
                                Если фНазваТочки = 1 Тогда
                                       Таб.ПрисоединитьСекцию("0|ДоставкаНазва");
                                КонецЕсли;
                                Если фАдресТочки = 1 Тогда
                                       Таб.ПрисоединитьСекцию("0|ДоставкаАдрес");
                                КонецЕсли;                                                                 
                                Таб.ПрисоединитьСекцию("рСтрока|Товар");
                          КонецЕсли;
                          Если фКво = 1 Тогда
                                 Таб.ПрисоединитьСекцию("рСтрока|Колво");
                          КонецЕсли;
                          Если фСумма= 1 Тогда
                                 Таб.ПрисоединитьСекцию("рСтрока|Сумма");
                          КонецЕсли;      
                     КонецЦикла;                    
                КонецЕсли;                      
                ДДО = ДДО + 1;
            КонецЦикла;            
            //итог по точке
            Если (фКво = 1) или (фСумма= 1) Тогда
                  Таб.ВывестиСекцию("0|Основа");                    
                   Если фКлиент = 1 Тогда
                       Таб.ПрисоединитьСекцию("0|Клиент");
                   КонецЕсли;
                   Если фНазваТочки = 1 Тогда
                       Таб.ПрисоединитьСекцию("0|ДоставкаНазва");
                   КонецЕсли;
                   Если фАдресТочки = 1 Тогда
                       Таб.ПрисоединитьСекцию("0|ДоставкаАдрес");
                   КонецЕсли;                                                                 
                   Таб.ПрисоединитьСекцию("0|Товар");
              КонецЕсли;
              Если фКво = 1 Тогда
                     Таб.ПрисоединитьСекцию("0|Колво");
              КонецЕсли;
              Если фСумма= 1 Тогда
                     Таб.ПрисоединитьСекцию("0|Сумма");
            КонецЕсли;      
            
        КонецЦикла;
        
        
        Таб.ВывестиСекцию("рТП|Основа");        
        Если фКлиент = 1 Тогда
            Таб.ПрисоединитьСекцию("рТП|Клиент");
        КонецЕсли;
        Если фНазваТочки = 1 Тогда
            Таб.ПрисоединитьСекцию("рТП|ДоставкаНазва");
        КонецЕсли;
        Если фАдресТочки = 1 Тогда
            Таб.ПрисоединитьСекцию("рТП|ДоставкаАдрес");
        КонецЕсли;
        Если (фКво = 1) или (фСумма= 1) Тогда
            Таб.ПрисоединитьСекцию("рТП|Товар");
        КонецЕсли;
        Если фКво = 1 Тогда
            Таб.ПрисоединитьСекцию("рТП|Колво");
        КонецЕсли;
        Если фСумма= 1 Тогда
            Таб.ПрисоединитьСекцию("рТП|Сумма");
        КонецЕсли;      
        Таб.Записать('\\APPSERVER\Exchange\sendtotrade\send.htm' , 'html');
    КонецЦикла;



    // Вывод заполненной формы
    Таб.ТолькоПросмотр(1);
    Таб.Показать("Сформировать", "");
КонецПроцедуры
Процедура ПриОткрытии()          
    ВыбНачПериода = НачМесяца(рабочаяДата());
    ВыбКонПериода = ТекущаяДата();
    сз1 = СоздатьОбъект("СписокЗначений");
    спр = СоздатьОбъект("Справочник.дСотрудники");
    спр.НайтиПоКоду("26");
    сз1.ДобавитьЗначение(спр.текущийЭлемент());
    сз2 = СоздатьОбъект("СписокЗначений");
    спр = СоздатьОбъект("Справочник.дТовары");
    спр.НайтиПоКоду("17194");
    сз2.ДобавитьЗначение(спр.текущийЭлемент());
    фНазваТочки = 1;
    фКлиент = 1;
    фСумма = 1;
    Сформировать();
    

    
КонецПроцедуры




Выбивает, ошибку, когда хочу выполнить обработку, сама таблица выводится:
Таб.Записать('\\APPSERVER\Exchange\sendtotrade\send.htm' , 'html');
{E:\BACKUP\18.06.2015PLN1C\POLYANA\EXTFORMS\ADDONS\ADDONS02.GRP\DDO.ERT(304)}: Неверное имя файла!
13 Масянька
 
11.09.15
10:38
(12) попробуй двойные ковычки (имя файла), проверь доступность (куда пишешь).
14 aleksander1sk
 
11.09.15
10:39
(13) Как раз перед тем, как прочитать попробовал двойные кавычки - помогло, спасибо=)
15 aleksander1sk
 
11.09.15
10:40
Как закрыть форму и таблицу после того, как отчет сделается и сохранится?
16 Масянька
 
11.09.15
10:42
(15) Слушай, ну, открой уже стандарт, посмотри, почитай СП...
17 aleksander1sk
 
11.09.15
10:43
(16) Спасибо, просто не могу найти в функциях таблицы такую функцию=)
18 Масянька
 
11.09.15
10:46
(17) Если моя память не спит с кем-то другим, то таблицу не закрыть (программно). А форму - Форма.Закрыть().
19 Остап Сулейманович
 
11.09.15
10:48
(18) В данном случае Форму и открывать не нужно. А таблицу не нужно показывать. А сразу сохранить.
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс