|
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) странный дубль =)
что-то у меня тоже не сохраняло только я забыл |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |