Имя: Пароль:
1C
1C 7.7
v7: выгрузка отчета с группировками по строкам в exel
0 satv
 
09.08.11
22:22
Подскажите, как можно выгрузить отчет в exel с установкой группировки? Создана внешняя обработка с выводом результата в виде таблицы, нужно автоматически выгружать данные таблицы с группировками по строкам в exel. На движке 7ки подвешена компонента 1с++.
1 zak555
 
09.08.11
22:23
сохранить как ?
2 andrewks
 
09.08.11
22:25
yoksel !
3 satv
 
09.08.11
22:47
(1) Да. нужно выгрузить в файл exel в 1 и 3 лист. Таблицы думаю выгрузить последовательно сохраняя ячейки ( получив доступ - Excel=СоздатьОбъект("Excel.Application")), а группировки пока не ясно как сделать...
(2) можно ли как-нибудь без подключения других компанент к движку?
4 Лефмихалыч
 
09.08.11
22:49
(3) а какая религия мешает "сохранить как..."?
5 andrewks
 
09.08.11
22:51
(4) группировки штатно не сделаешь и не сохранишь
6 zak555
 
09.08.11
22:52
(5) объединить руками ? =)
7 Лефмихалыч
 
09.08.11
22:54
(5) а, нуда, точно...
Автор, переходите на восьмерку, там это реализовано
8 vde69
 
09.08.11
22:54
легко :)

делаешь колонку типа
кодУровня1/КодУровня2/КодУровня3

и встраиваешь скрипт который это обрабатывает, скрипт я уже публиковал года 2 назад
9 zak555
 
09.08.11
22:55
кстатти, а восьмёрошная обработка с mxl работает ? она может корректно преобразовывать ?
10 ksa-nsk
 
09.08.11
22:59
я тут  в свое время в ексел выгрузку делал, посмотри код, там всякое есть...

   Попытка
       //ОкноExcel.Visible = 1;       //делаем окно видимым
       ОкноExcel.Workbooks.Add();
       
       Для У = 1 По 10 Цикл
           ОкноExcel.Rows("1:1").Select();
           ОкноExcel.Selection.Insert();
       КонецЦикла;
       
       ОкноExcel.Range("A2:I2").Select();
       ОкноExcel.Selection.Merge();
       ОкноExcel.ActiveCell.FormulaR1C1        = "ХХХХХХХХХХХХХХХ"+" тел."+СокрЛП(Константа.ТелефоныОрганизации);
       ОкноExcel.Selection.Font.Size           = 12;
       ОкноExcel.Selection.HorizontalAlignment = -4108;
       
       ОкноExcel.Range("A3:I3").Select();
       ОкноExcel.Selection.Merge();
       ОкноExcel.ActiveCell.FormulaR1C1        = "Ваши отзывы и предложения по техническим вопросам";
       ОкноExcel.ActiveSheet.Hyperlinks.Add(ОкноExcel.Selection, "mailto:ХХХХХХХ");
       ОкноExcel.Selection.HorizontalAlignment = -4152; //4117-по центру и ширине; 4130-по ширине; 4152-справа
       
       ОкноExcel.Range("A4:I4").Select();
       ОкноExcel.Selection.Merge();
       ОкноExcel.ActiveCell.FormulaR1C1        = "Связаться со специалистом";
       ОкноExcel.ActiveSheet.Hyperlinks.Add(ОкноExcel.Selection, "mailto:[email protected]");
       ОкноExcel.Selection.HorizontalAlignment = -4152; //4117-по ширине; 4130-слева; 4152-справа
       ОкноExcel.Selection.Merge();
       
       ОкноExcel.Range("A2:I4").Select();
       ОкноExcel.Selection.Interior.ColorIndex = 33;
       ОкноExcel.Selection.Font.Bold           = 1;
       ОкноExcel.Selection.Font.Italic         = 1;
       ОкноExcel.Selection.Font.ColorIndex     = 5;
       ОкноExcel.Selection.Borders().LineStyle = 1;
       
       ОкноExcel.Range("A5:I5").Select();
       ОкноExcel.Selection.Merge();
       ОкноExcel.ActiveCell.FormulaR1C1 = "Исходящий номер документа: К" + СокрЛП(НомерДок) + "   от: " + ДатаДок;
       ОкноExcel.Selection.Font.Bold    = 1;
       ОкноExcel.Selection.HorizontalAlignment = -4152; //4117-по ширине; 4130-слева; 4152-справа

       ОкноExcel.Range("A9:I9").Select();
       ОкноExcel.Selection.Merge();
                         
       // вставляем объявления
       ТекСтрока    = 9;
       
       СпрОбъявления = СоздатьОбъект("Справочник.ОбъявленияВРассылках");
       СтрокаОбъявлений = "";
       СпрОбъявления.ВыбратьЭлементы();
       Пока СпрОбъявления.ПолучитьЭлемент() = 1 Цикл
           Если СпрОбъявления.ПометкаУдаления() = 1 Тогда
               Продолжить;
           КонецЕсли;
           Если СпрОбъявления.ПоказыватьДо < ТекущаяДата() Тогда
               Продолжить;
           Иначе
               ТекСтрока = ТекСтрока + 1;
               
               СтрокаОбъявлений = ?(ПустоеЗначение(СпрОбъявления.ДатаПроведения)=1, "", Строка(СпрОбъявления.ДатаПроведения) + " | ") + СокрЛП(СпрОбъявления.Тема);
               ОкноExcel.Range("A"+ТекСтрока+":I"+ТекСтрока).Select();
               ОкноExcel.Selection.Merge();
               ОкноExcel.ActiveCell.FormulaR1C1        = СтрокаОбъявлений;
               ОкноExcel.ActiveSheet.Hyperlinks.Add(ОкноExcel.Selection, СокрЛП(СпрОбъявления.Ссылка));
               ОкноExcel.Selection.HorizontalAlignment = -4130; //4117-по ширине; 4130-слева; 4152-справа
               ОкноExcel.Selection.Font.Size           = 11;
               ОкноExcel.Selection.Font.Bold           = 1;
               ОкноExcel.Selection.Merge();
           КонецЕсли;                                                                                            
       КонецЦикла;
       
       //-------------
       
       ТекСтрока = ТекСтрока + 1;
       ОкноExcel.Range("A"+ТекСтрока+":I"+ТекСтрока).Select();
       ОкноExcel.Selection.Merge();
       
       
       
       //ТекСтрока    = 9;
       СтарыйОкруг  = "";
       СтарыйРегион = "";
       НачСтрокаОкр = 0;
       КонСтрокаОкр = 0;
       НачСтрокаРег = 0;
       КонСтрокаРег = 0;
       
       Для Н = 1 По СписокФайлов.РазмерСписка() Цикл
           
           ТекСтрока = ТекСтрока + 1;
           
           Спр       = СписокФайлов.ПолучитьЗначение(Н);
           Тендер    = Спр.Наименование;
           ТекОкруг  = СокрЛП(Спр.Регион.Родитель.Наименование);
           ТекРегион = СокрЛП(Спр.Регион.Наименование);
             
           //---------- выделяем округ
           Если ТекОкруг <> СтарыйОкруг Тогда
               
               Если КонСтрокаОкр <> 0 Тогда
                   ОкноExcel.Rows(""+НачСтрокаОкр+":"+КонСтрокаОкр).Select();
                   ОкноExcel.Selection.Rows.Group();
               КонецЕсли;
               
               ОкноExcel.Cells(ТекСтрока, 1).Value = ТекОкруг;
               ОкноExcel.Range("A"+ТекСтрока+":I"+ТекСтрока).Select();
               ОкноExcel.Selection.Merge();
               ОкноExcel.Selection.Borders().LineStyle = 1;
               ОкноExcel.Selection.Interior.ColorIndex = 40;//15
               ОкноExcel.Selection.VerticalAlignment   = -4160;
               ОкноExcel.Selection.Font.Size           = 14;
               ОкноExcel.Selection.Font.Bold           = 1;
               ОкноExcel.Selection.WrapText            = 1;
               
               ТекСтрока    = ТекСтрока + 1;
               
               СтарыйОкруг  = ТекОкруг;
               НачСтрокаОкр = ТекСтрока;
               
           КонецЕсли;  
           
           //---------- выделяем регион
           Если ТекРегион <> СтарыйРегион Тогда
               
               Если КонСтрокаРег <> 0 Тогда
                   ОкноExcel.Rows(""+НачСтрокаРег+":"+КонСтрокаРег).Select();
                   ОкноExcel.Selection.Rows.Group();
               КонецЕсли;  
               
               ОкноExcel.Cells(ТекСтрока, 2).Value = ТекРегион;
               ОкноExcel.Range("A"+ТекСтрока+":I"+ТекСтрока).Select();
               ОкноExcel.Selection.Merge();
               ОкноExcel.Selection.Borders().LineStyle = 1;
               ОкноExcel.Selection.Interior.ColorIndex = 36;
               ОкноExcel.Selection.VerticalAlignment   = -4160;
               ОкноExcel.Selection.Font.Size           = 12;
               ОкноExcel.Selection.Font.Bold           = 1;
               ОкноExcel.Selection.WrapText            = 1;
               
               ТекСтрока    = ТекСтрока + 1;
               
               СтарыйРегион = ТекРегион;
               НачСтрокаРег = ТекСтрока;  
               
               // ----- выводим шапку
               ОкноExcel.Cells(ТекСтрока, 1).Value = "интерес";
               ОкноExcel.Range("A"+ТекСтрока+":A"+ТекСтрока).Select();
               ОкноExcel.Selection.Interior.ColorIndex = 37;
               ОкноExcel.Selection.Borders().LineStyle = 1;
               ОкноExcel.Selection.HorizontalAlignment = -4108;
               
               ОкноExcel.Cells(ТекСтрока, 2).Value = "№ тендера";
               ОкноExcel.Cells(ТекСтрока, 3).Value = "срок подачи    дата торгов";
               ОкноExcel.Cells(ТекСтрока, 4).Value = "наименование";
               ОкноExcel.Cells(ТекСтрока, 5).Value = "район/город";
               ОкноExcel.Cells(ТекСтрока, 6).Value = "цена";
               ОкноExcel.Cells(ТекСтрока, 7).Value = "адрес карты";
               ОкноExcel.Cells(ТекСтрока, 8).Value = "адрес извещения";
               ОкноExcel.Cells(ТекСтрока, 9).Value = "страница закупок сайта";
               
               ОкноExcel.Range("B"+ТекСтрока+":I"+ТекСтрока).Select();
               ОкноExcel.Selection.Interior.ColorIndex = 35;
               ОкноExcel.Selection.Borders().LineStyle = 1;
               ОкноExcel.Selection.HorizontalAlignment = -4108;
               
               ОкноExcel.Cells(ТекСтрока, 10) .Value = "сотрудник";
               ОкноExcel.Cells(ТекСтрока, 11).Value = "результат";
               ОкноExcel.Cells(ТекСтрока, 12).Value = "комментарий";
               
               ОкноExcel.Range("J"+ТекСтрока+":L"+ТекСтрока).Select();
               ОкноExcel.Selection.Interior.ColorIndex = 37;
               ОкноExcel.Selection.Borders().LineStyle = 1;
               ОкноExcel.Selection.HorizontalAlignment = -4108;
               
               ТекСтрока = ТекСтрока + 1;
               
           КонецЕсли;  
           КонСтрокаОкр = ТекСтрока;
           КонСтрокаРег = ТекСтрока;  
           //--------------------------------------
           
           Если Спр.СайтХозяин.НомерОбработки <> 152 Тогда
               ОкноExcel.Cells(ТекСтрока, 2).Value = Тендер;  
           Иначе
               ОкноExcel.Cells(ТекСтрока, 2).Value = Тендер + "      проверить изменения";  
               ОкноExcel.Range("B"+ТекСтрока).Select();
               СсылкаИзменений = СтрЗаменить(СокрЛП(Спр.АдресКарты), "ViewPurchase", "Register");
               ОкноExcel.ActiveSheet.Hyperlinks.Add(ОкноExcel.Selection, СсылкаИзменений);
           КонецЕсли;
           
           ОкноExcel.Cells(ТекСтрока, 3).Value = Строка(Спр.ДатаОкончания) + "   " + Строка(Спр.ДатаПроведения);
           ОкноExcel.Cells(ТекСтрока, 4).Value = СокрЛП(Спр.ПредметЗакупки);
           Если ПустоеЗначение(Спр.СайтХозяин.Город) = 0 Тогда
               ОкноExcel.Cells(ТекСтрока, 5).Value = СокрЛП(Спр.СайтХозяин.Город);
           КонецЕсли;  
           ОкноExcel.Cells(ТекСтрока, 6).Value = СокрЛП(Спр.ЦенаТендера);
           
           //----- заполняем адрес карты
           Если ПустоеЗначение(Спр.АдресКарты) = 0 Тогда
               ОкноExcel.Cells(ТекСтрока, 7).Value = "здесь";
               ОкноExcel.Range("G"+ТекСтрока).Select();
               ОкноExcel.ActiveSheet.Hyperlinks.Add(ОкноExcel.Selection, СокрЛП(Спр.АдресКарты));
           КонецЕсли;  
           
           //----- заполняем абсолютный адрес
           Если ПустоеЗначение(Спр.АбсСсылка) = 0 Тогда
               ОкноExcel.Cells(ТекСтрока, 8).Value = "здесь";
               ОкноExcel.Range("H"+ТекСтрока).Select();
               ОкноExcel.ActiveSheet.Hyperlinks.Add(ОкноExcel.Selection, СокрЛП(Спр.АбсСсылка));
           КонецЕсли;  
           
           //----- заполняем страницу закупок сайта  
           Если ПустоеЗначение(Спр.СайтХозяин.АдресСтраницыЗакупок) = 0 Тогда
               ОкноExcel.Cells(ТекСтрока, 9).Value = "здесь";
               ОкноExcel.Range("I"+ТекСтрока).Select();
               ОкноExcel.ActiveSheet.Hyperlinks.Add(ОкноExcel.Selection, СокрЛП(Спр.СайтХозяин.АдресСтраницыЗакупок));
           КонецЕсли;  
           
           ОкноExcel.Range("A"+ТекСтрока+":L"+ТекСтрока).Select();  
           ОкноExcel.Selection.Borders().LineStyle = 1;
           
       КонецЦикла;
       //----------- закрываем последние группы
       ОкноExcel.Rows(""+НачСтрокаРег+":"+КонСтрокаРег).Select();
       ОкноExcel.Selection.Rows.Group();
       ОкноExcel.Rows(""+НачСтрокаОкр+":"+КонСтрокаОкр).Select();
       ОкноExcel.Selection.Rows.Group();
       //-----------
       
       ОкноExcel.Range("A1:L1").Select();
       ОкноExcel.Selection.Font.FontStyle = "полужирный курсив";
       ОкноExcel.Selection.Borders().LineStyle = 1;
       ОкноExcel.Selection.HorizontalAlignment = -4108;
       ОкноExcel.Selection.Interior.ColorIndex = 15;
       ОкноExcel.Selection.ColumnWidth = "8";
       ОкноExcel.Range("A:A").ColumnWidth = "7";  // Интерес
       ОкноExcel.Range("B:B").ColumnWidth = "10";  // Интерес
       ОкноExcel.Range("D:D").ColumnWidth = "70"; // ПредметЗакупки
       ОкноExcel.Range("E:E").ColumnWidth = "20"; // Район
       ОкноExcel.Range("F:F").ColumnWidth = "15"; // Цена
       ОкноExcel.Range("J:J").ColumnWidth = "20"; // Результат
       ОкноExcel.Range("K:K").ColumnWidth = "20"; // Результат
       ОкноExcel.Range("L:L").ColumnWidth = "30"; // Комментарий
       
       ОкноExcel.Range("A:L").Select();
       ОкноExcel.Selection.WrapText = 1;;
       ОкноExcel.Selection.VerticalAlignment = -4160;
       
       //----------------------------------------------  
                                                     
       ТекСтрока        = ТекСтрока + 1;
       
       ОкноExcel.Range("A"+ТекСтрока+":I"+ТекСтрока).Select();
       ОкноExcel.Selection.Merge();
                                                     
       ТекСтрока = ТекСтрока + 1;
       НачСтрокаРекламы = ТекСтрока + 1;
       
       ОкноExcel.Range("A"+ТекСтрока+":I"+ТекСтрока).Select();
       ОкноExcel.Selection.Merge();
       ОкноExcel.Selection.Interior.ColorIndex = 40;
       ОкноExcel.ActiveCell.FormulaR1C1 = "Предложения наших партнеров";
       ОкноExcel.Selection.Font.Bold    = 1;
       ОкноExcel.Selection.Font.Size    = 12;
       
       ОкноExcel.Range("A6:I6").Select();
       ОкноExcel.Selection.Merge();
       ОкноExcel.ActiveCell.FormulaR1C1 = "Предложения наших партнеров";
       ОкноExcel.ActiveSheet.Hyperlinks.Add(ОкноExcel.Selection, "", "Лист1!R"+ТекСтрока+"C1");
       
       // ------------------------------ добавляем рекламу:
       
       ФлагНаличияРекламы = ПроверкаНаличияРекламы();
       
       СпрРеклама = СоздатьОбъект("Справочник.РекламаВ_HTMLрассылке");
       
       //Если Константа.ДобавлениеРекламныхСсылок = Перечисление.Автозакачка.Включено Тогда
       //    
       //    Если ФлагНаличияРекламы=1 Тогда
       //        
       //        СпрРеклама.ВыбратьЭлементы();
       //        Пока СпрРеклама.ПолучитьЭлемент() = 1 Цикл  
       //            
       //            Если ТекущаяДата() > СпрРеклама.ДатаКон Тогда
       //                Продолжить;
       //            КонецЕсли;
       //            
       //            ТекСтрока = ТекСтрока + 1;
       //            
       //            ОкноExcel.Range("A"+ТекСтрока+":H"+ТекСтрока).Select();
       //            СтрокаРекламы = СокрЛП(СпрРеклама.Тема)+"   "+СокрЛП(СпрРеклама.Контакты);
       //            ОкноExcel.ActiveCell.FormulaR1C1        = СтрокаРекламы;
       //            ОкноExcel.Selection.Borders().LineStyle = 1;
       //            ОкноExcel.Selection.Font.Italic         = 1;
       //            ОкноExcel.Selection.Font.ColorIndex     = 5;
       //            ОкноExcel.Selection.Font.Size           = 14;
       //            ОкноExcel.Selection.Font.Bold           = 1;
       //            ОкноExcel.Selection.WrapText            = 1;
       //            ОкноExcel.Selection.VerticalAlignment   = -4160;
       //            ОкноExcel.Selection.Interior.ColorIndex = 36;
       //            ОкноExcel.Selection.HorizontalAlignment = -4130;
       //            КолСтрок = Окр(СтрДлина(СтрокаРекламы)/75*1.3, 0, 1);
       //            ОкноExcel.Selection.RowHeight           = 20*КолСтрок;
       //            ОкноExcel.Selection.Merge();
       //            
       //            ОкноExcel.Range("I"+ТекСтрока).Select();
       //            ОкноExcel.ActiveCell.FormulaR1C1        = "здесь";
       //            ОкноExcel.Selection.Borders().LineStyle = 1;
       //            ОкноExcel.Selection.HorizontalAlignment = -4108;
       //            ОкноExcel.Selection.VerticalAlignment   = -4160;
       //            ОкноExcel.Selection.Interior.ColorIndex = 36;
       //            ОкноExcel.ActiveSheet.Hyperlinks.Add(ОкноExcel.Selection, СокрЛП(СпрРеклама.URL));
       //            
       //        КонецЦикла;
       //        
       //        КонСтрокаРекламы = ТекСтрока;
       //        ОкноExcel.Rows(""+НачСтрокаРекламы+":"+КонСтрокаРекламы).Select();
       //        ОкноExcel.Selection.Rows.Group();
       //        
       //    КонецЕсли;
       //КонецЕсли;
       Если Константа.ДобавлениеРекламныхСсылок = Перечисление.Автозакачка.Включено Тогда
           
           Если ФлагНаличияРекламы=1 Тогда
               
               СпрРеклама.ВыбратьЭлементы();
               Пока СпрРеклама.ПолучитьЭлемент() = 1 Цикл  
                   
                   Если ТекущаяДата() > СпрРеклама.ДатаКон Тогда
                       Продолжить;
                   КонецЕсли;
                   
                   ТекСтрокаНач = ТекСтрока+1;
                   
                   Если ПустаяСтрока(СпрРеклама.ФайлЛоготипа) = 0 Тогда
                       
                       Логотип = КаталогИБ() + "pic\" + СокрЛП(СпрРеклама.ФайлЛоготипа);
                       Если ФС.СуществуетФайл(Логотип) = 1 Тогда
                           
                           ТекСтрока = ТекСтрока + 1;
                           ТекСтрокаНач = ТекСтрока;
                           
                           //ОкноExcel.Visible = 1;       //делаем окно видимым
                           ОкноExcel.Range("A"+ТекСтрока+":I"+ТекСтрока).Select();
                           ОкноExcel.Selection.Interior.ColorIndex = 36;
                           ОкноExcel.Selection.Merge();
                           ОкноExcel.Rows(""+ТекСтрока+":"+ТекСтрока+"").RowHeight = СпрРеклама.ВысотаДляEXEL;
                           ОкноExcel.ActiveSheet.Pictures.Insert(Логотип).Select();  
                           ОкноExcel.ActiveSheet.Hyperlinks.Add(ОкноExcel.Selection.ShapeRange.Item(1), СокрЛП(СпрРеклама.URL));
                           
                       Иначе
                           
                           Предупреждение("Не найден файл логотипа для рекламы в EXEL для: " + Исполнитель.Наименование, 2);
                           Сообщить("Не найден файл логотипа для рекламы в EXEL для: " + Исполнитель.Наименование, "!!!");
                           
                       КонецЕсли;
                       
                   Иначе
                       
                       Предупреждение("Не задан файл логотипа рекламы в EXEL в справочнике для: " + Исполнитель.Наименование, 2);
                       Сообщить("Не задан файл логотипа рекламы в EXEL в справочнике для: " + Исполнитель.Наименование, "!!!");
                       
                   КонецЕсли;
               
                   ТекСтрока = ТекСтрока + 1;
                   
                   ОкноExcel.Range("A"+ТекСтрока+":I"+ТекСтрока).Select();
                   СтрокаРекламы = СокрЛП(СпрРеклама.Тема)+РазделительСтрок+СокрЛП(СпрРеклама.Контакты);
                   ОкноExcel.ActiveCell.FormulaR1C1        = СтрокаРекламы;
                   ОкноExcel.ActiveSheet.Hyperlinks.Add(ОкноExcel.Selection, СокрЛП(СпрРеклама.URL));
                   //ОкноExcel.Selection.Borders().LineStyle = 1;
                   ОкноExcel.Selection.Font.Italic         = 1;
                   ОкноExcel.Selection.Font.ColorIndex     = 5;
                   ОкноExcel.Selection.Font.Size           = 14;
                   ОкноExcel.Selection.Font.Bold           = 1;
                   ОкноExcel.Selection.WrapText            = 1;
                   ОкноExcel.Selection.VerticalAlignment   = -4160;
                   ОкноExcel.Selection.Interior.ColorIndex = 36;
                   ОкноExcel.Selection.HorizontalAlignment = -4130;
                   КолСтрок = Окр(СтрДлина(СтрокаРекламы)/75*1.3, 0, 1);
                   ОкноExcel.Selection.RowHeight           = 20*КолСтрок;
                   ОкноExcel.Selection.Merge();
                   
                   //ОкноExcel.Range("I"+ТекСтрока).Select();
                   //ОкноExcel.ActiveCell.FormulaR1C1        = "здесь";
                   ////ОкноExcel.Selection.Borders().LineStyle = 1;
                   //ОкноExcel.Selection.HorizontalAlignment = -4108;
                   //ОкноExcel.Selection.VerticalAlignment   = -4160;
                   //ОкноExcel.Selection.Interior.ColorIndex = 36;
                   
                   //ОкноExcel.Range("A"+ТекСтрокаНач+":I"+ТекСтрока).Select();
                   //ОкноExcel.Selection.Borders().LineStyle = 1;
                   
                   ТекСтрока        = ТекСтрока + 1;
                   ОкноExcel.Range("A"+ТекСтрока+":I"+ТекСтрока).Select();
                   ОкноExcel.Selection.Merge();
                   
               КонецЦикла;
               
               КонСтрокаРекламы = ТекСтрока;
               ОкноExcel.Rows(""+НачСтрокаРекламы+":"+КонСтрокаРекламы).Select();
               ОкноExcel.Selection.Rows.Group();
               
           КонецЕсли;
       КонецЕсли;
       
       // ------------------------------ добавляем полезные ссылки:
                                                     
       //ТекСтрока        = ТекСтрока + 1;
       
       //ОкноExcel.Range("A"+ТекСтрока+":I"+ТекСтрока).Select();
       //ОкноExcel.Selection.Merge();
                                                     
       ТекСтрока = ТекСтрока + 1;
       НачСтрокаСсылок = ТекСтрока + 1;
       
       ОкноExcel.Range("A"+ТекСтрока+":I"+ТекСтрока).Select();
       ОкноExcel.Selection.Merge();
       ОкноExcel.Selection.Interior.ColorIndex = 40;
       ОкноExcel.ActiveCell.FormulaR1C1 = "Полезные ссылки";
       ОкноExcel.Selection.Font.Bold    = 1;
       ОкноExcel.Selection.Font.Size    = 12;
       
       ОкноExcel.Range("A7:I7").Select();
       ОкноExcel.Selection.Merge();
       ОкноExcel.ActiveCell.FormulaR1C1 = "Полезные ссылки";
       ОкноExcel.ActiveSheet.Hyperlinks.Add(ОкноExcel.Selection, "", "Лист1!R"+ТекСтрока+"C1");
       
       СпрПолезСсылки = СоздатьОбъект("Справочник.ПолезныеСсылкиПриРассылке");
       
       СпрПолезСсылки.ВыбратьЭлементы();
       Пока СпрПолезСсылки.ПолучитьЭлемент() = 1 Цикл  
           
           Если ТекущаяДата() > СпрПолезСсылки.ДатаОграниченияПоказа Тогда
               Продолжить;
           КонецЕсли;
           
           ТекСтрока = ТекСтрока + 1;
           
           ОкноExcel.Range("A"+ТекСтрока+":H"+ТекСтрока).Select();
           СтрокаСТекстом = СокрЛП(СпрПолезСсылки.Иформация);
           ОкноExcel.ActiveCell.FormulaR1C1        = СтрокаСТекстом;
           ОкноExcel.Selection.Borders().LineStyle = 1;
           ОкноExcel.Selection.Font.Italic         = 1;
           ОкноExcel.Selection.Font.ColorIndex     = 5;
           ОкноExcel.Selection.Font.Size           = 14;
           ОкноExcel.Selection.Font.Bold           = 1;
           ОкноExcel.Selection.WrapText            = 1;
           ОкноExcel.Selection.VerticalAlignment   = -4160;
           ОкноExcel.Selection.Interior.ColorIndex = 36;
           ОкноExcel.Selection.HorizontalAlignment = -4130;
           КолСтрок = Окр(СтрДлина(СтрокаСТекстом)/75*1.1, 0, 1);
           ОкноExcel.Selection.RowHeight           = 20*КолСтрок;
           ОкноExcel.Selection.Merge();
           
           ОкноExcel.Range("I"+ТекСтрока).Select();
           ОкноExcel.ActiveCell.FormulaR1C1        = "здесь";
           ОкноExcel.Selection.Borders().LineStyle = 1;
           ОкноExcel.Selection.HorizontalAlignment = -4108;
           ОкноExcel.Selection.VerticalAlignment   = -4160;
           ОкноExcel.Selection.Interior.ColorIndex = 36;
           ОкноExcel.ActiveSheet.Hyperlinks.Add(ОкноExcel.Selection, СокрЛП(СпрПолезСсылки.URL));
           
       КонецЦикла;
       
       КонСтрокаСсылок = ТекСтрока;
       ОкноExcel.Rows(""+НачСтрокаСсылок+":"+КонСтрокаСсылок).Select();
       ОкноExcel.Selection.Rows.Group();
       
       // ------------------------- теперь отделяем пустой строкой
       
       ТекСтрока        = ТекСтрока + 1;
       
       ОкноExcel.Range("A"+ТекСтрока+":I"+ТекСтрока).Select();
       ОкноExcel.Selection.Merge();
       
       // ------------------------------ добавляем дополнительную информацию:
                                                     
       ТекСтрока = ТекСтрока + 1;
       НачСтрокаИнформации = ТекСтрока + 1;
       
       ОкноExcel.Range("A"+ТекСтрока+":I"+ТекСтрока).Select();
       ОкноExcel.Selection.Merge();
       ОкноExcel.Selection.Interior.ColorIndex = 40;
       ОкноExcel.ActiveCell.FormulaR1C1 = "Информация";
       ОкноExcel.Selection.Font.Bold    = 1;
       ОкноExcel.Selection.Font.Size    = 12;
       
       ОкноExcel.Range("A8:I8").Select();
       ОкноExcel.Selection.Merge();
       ОкноExcel.ActiveCell.FormulaR1C1 = "Информация";
       ОкноExcel.ActiveSheet.Hyperlinks.Add(ОкноExcel.Selection, "", "Лист1!R"+ТекСтрока+"C1");
       
       СпрИнф = СоздатьОбъект("Справочник.ДопИнформацияПриРассылке");
       
       СпрИнф.ВыбратьЭлементы();
       Пока СпрИнф.ПолучитьЭлемент() = 1 Цикл  
           
           Если ТекущаяДата() > СпрИнф.ДатаОграниченияПоказа Тогда
               Продолжить;
           КонецЕсли;
           
           ТекСтрока = ТекСтрока + 1;
           
           ОкноExcel.Range("A"+ТекСтрока+":I"+ТекСтрока).Select();
           СтрокаСТекстом = СокрЛП(СпрИнф.Иформация);
           ОкноExcel.ActiveCell.FormulaR1C1        = СтрокаСТекстом;
           ОкноExcel.Selection.Borders().LineStyle = 1;
           ОкноExcel.Selection.Font.Italic         = 1;
           ОкноExcel.Selection.Font.ColorIndex     = 5;
           ОкноExcel.Selection.Font.Size           = 14;
           ОкноExcel.Selection.Font.Bold           = 1;
           ОкноExcel.Selection.WrapText            = 1;
           ОкноExcel.Selection.VerticalAlignment   = -4160;
           ОкноExcel.Selection.Interior.ColorIndex = 36;
           ОкноExcel.Selection.HorizontalAlignment = -4130;
           КолСтрок = Окр(СтрДлина(СтрокаСТекстом)/75*1.3, 0, 1);
           ОкноExcel.Selection.RowHeight           = 20*КолСтрок;
           ОкноExcel.Selection.Merge();
           
       КонецЦикла;
       
       КонСтрокаИнформации = ТекСтрока;
       ОкноExcel.Rows(""+НачСтрокаИнформации+":"+КонСтрокаИнформации).Select();
       ОкноExcel.Selection.Rows.Group();
       
       // ------------------------- а теперь подпись автора
                                                     
       ТекСтрока        = ТекСтрока + 1;
       
       ОкноExcel.Range("A"+ТекСтрока+":I"+ТекСтрока).Select();
       ОкноExcel.Selection.Merge();
                                                     
       ТекСтрока        = ТекСтрока + 1;
       
       ОкноExcel.Range("A"+ТекСтрока+":I"+ТекСтрока).Select();
       ОкноExcel.Selection.Merge();
       ОкноExcel.ActiveCell.FormulaR1C1 = "СЦГ (автор документа): "+Проект + "  ==> обратная связь";
       
       СпрСотр = СоздатьОбъект("Справочник.Сотрудники");
       Если СпрСотр.НайтиПоРеквизиту("Пользователь", ИмяПользователя(), 1) = 1 Тогда
           СпрЭлАдреса = СоздатьОбъект("Справочник.ЭлАдресаСотрудников");
           Если СпрЭлАдреса.НайтиПоРеквизиту("ВладелецАдреса", СпрСотр.ТекущийЭлемент(), 1) = 0 Тогда
               Предупреждение("ERROR> Ошибка привязки адреса отправителя. Возврат.");
               Возврат;
           Иначе
               ЭлАдресОтправителя = СокрЛП(СпрЭлАдреса.Логин);
               ОкноExcel.ActiveSheet.Hyperlinks.Add(ОкноExcel.Selection, "mailto:"+ЭлАдресОтправителя);
           КонецЕсли;
       Иначе
           ФлагОшибки = 1;
           Сообщить("ERROR> Ошибка позиционирования на элементе справочника <Сотрудники>.Возврат.");
           Возврат;
       КонецЕсли;      
       ОкноExcel.Selection.Font.Size    = 8;
       
       //===================
       
       ОкноExcel.ActiveSheet.Outline.AutomaticStyles = 0;
       ОкноExcel.ActiveSheet.Outline.SummaryRow      = 0;
       ОкноExcel.ActiveSheet.Outline.SummaryColumn   = 0;
       
       // уходим в первую ячейку
       ОкноExcel.Range("A1").Select();
       
       ОкноExcel.ActiveWorkbook.SaveAs(ФайлГотовыйExcel);
       
   Исключение
       Предупреждение("ERROR> Ошибка обработки Exel ! Возврат.",2);
       ФлагОшибки = 1;  
       ОкноExcel.Quit();
       Возврат;
   КонецПопытки;  
   
   ОкноExcel.Quit();
11 zak555
 
09.08.11
23:00
что это ?
12 Лефмихалыч
 
09.08.11
23:02
Спасибо Asmody за то, что приделал автоскукожыватель портянок
13 andrewks
 
09.08.11
23:03
(12) +18
14 zak555
 
09.08.11
23:05
(12) какая разница ?

https://1cers.ru/ajax_jq_getnewmessages.php?topic_id=563926&last_n=09

всё равно прошёл и загрузился
что не гуд

надо было делать по аналогии с "удалённым постом"
15 Лефмихалыч
 
09.08.11
23:07
(14) сделай (с)
16 zak555
 
09.08.11
23:09
(15) так подгрузка всё равно идёт, даже удалённого, но "не отображается"
вот, а (12) дозагружать по клику
17 andrewks
 
09.08.11
23:12
хорош оофтопить
18 Лефмихалыч
 
09.08.11
23:12
zak555, охолонись уже. Тема сия безблагодатна и тосклива, к тому же болтология в тематике не приветствуется
19 zak555
 
09.08.11
23:12
про (9) никто из снеговодов не ответил
20 zak555
 
09.08.11
23:13
*не прокомментировал
21 Лефмихалыч
 
09.08.11
23:18
(19) о какой обработке речь-то?
22 zak555
 
09.08.11
23:28
23 Лефмихалыч
 
09.08.11
23:31
(22) это не обработка. Это отдельный ехе-шник. Он умеет открывать, редактировать и сохранять в разных форматах mxl.
Беда в (0), как я понял в том, что клюшкодавский mxl не поддерживает группировку строк (не поддерживает же, да? я правильно помню?), по этому надо изгибаться с экселем.
24 zak555
 
09.08.11
23:37
(23) ты не понял
сохранить (0) в mxl, а (22) уже в xls
25 Лефмихалыч
 
09.08.11
23:39
(24) автору надо сохранить с группировкой строк. Как сохранить с группировкой строк в mxl из этих ваших богопротивных и противоестественных клюшек?
26 zak555
 
09.08.11
23:39
(25) это в каком отчёте например ?
28 Лефмихалыч
 
09.08.11
23:40
(26) не знаю, спроси у автора
29 zak555
 
09.08.11
23:41
(27) (28) странный дубль =)

что-то у меня тоже не сохраняло
только я забыл
Программист всегда исправляет последнюю ошибку.