Имя: Пароль:
1C
1С v8
v8: Excel (формулы).
0 wade25
 
03.10.12
10:12
Доброе утро.

 Обработка, выполняет отчет в 1с, сохраняет его в табличный документ. Далее сохраняет его в файле формата (XLS), следующим образом...


Отчет = Отчеты.Отчетик.Создать();
   ТабДок = Новый ТабличныйДокумент;
   ДатаОтчета = НачалоДня(ТекущаяДата()) - 60*60*24*60;
   Отчет.Отчет(ТабДок, ДатаОтчета);
   
   // сохраняем результат отчета в файл Excel
   ИмяВремФайла = ПолучитьИмяВременногоФайла("xls");
   ТабДок.Записать(ИмяВремФайла, ТипФайлаТабличногоДокумента.XLS);
   Файл = Новый Файл(ИмяВремФайла);
   Эксель = Неопределено;
   Попытка
       Эксель = Новый COMОбъект("Excel.Application");
   Исключение
       Сообщить(ОписаниеОшибки() + " Программа Exсel не установлена на данном компьютере!");
   КонецПопытки;
   Если Эксель <> Неопределено Тогда
       Книга = Эксель.WorkBooks.Open(ИмяВремФайла);
       Окно = Книга.Windows(1);
       Лист = Книга.WorkSheets(1);
       
       //Лист.PageSetup.Zoom = Ложь; // канает не везде ((
       ПараметрыСтраницы = Лист.PageSetup;
       Скрипт = Новый COMОбъект("MSScriptControl.ScriptControl");
       Скрипт.Language = "javascript";
       Скрипт.AddObject("ПараметрыСтраницы", ПараметрыСтраницы);
       Скрипт.Eval("ПараметрыСтраницы.Zoom=false");
       Скрипт.Eval("ПараметрыСтраницы.Orientation=2");
       
       Лист.PageSetup.FitToPagesTall = 1;
       Лист.PageSetup.FitToPagesWide = 1;
       Лист.Range("C9").Select();
       Окно.FreezePanes = -1;
       Книга.Save();
       Эксель.WorkBooks.Close();
       Эксель.Quit();
   КонецЕсли;

 Необходимо, вставить формулы (сумма) по колонкам, нужны итоги лишь по вертикали (колонка, итог внизу), количество уровней группировок может быть разное, но получить это число возможно. Может есть какой либо стандартный механизм?
1 DrShad
 
03.10.12
10:32
ну назначь необходимым ячейкам нужные формулы
2 Rounder
 
03.10.12
10:33
А что мешает сделать отчет уже сгруппированным и с итогами и после этого пульнуть его в Эксель?
3 DrShad
 
03.10.12
10:34
(2) но формулы то все равно нужны, как я понимаю его не только смотреть будут
4 wade25
 
03.10.12
10:35
(1) Эт не очень удобно, ячейки не постоянны. Вопрос в другом, есть ли в Exele встроенная функция, которая проставляет формулы по листу.

 (2) Этот файл потом отправляется по почте автоматом, людям у которых 1с под рукой может не быть, удаляют строку и хотят видеть сразу результат.
5 Rounder
 
03.10.12
10:36
Давай мыло - кину свою обработку, которая пулит формулы и раскрашивает отчет.
6 DrShad
 
03.10.12
10:36
(4) что значит ячейки не постоянны?
7 wade25
 
03.10.12
10:39
(5) Спс огромное ([email protected]).
8 wade25
 
03.10.12
10:40
(6) То что группировок может быть разное количество и строк в каждой группировке тоже. Минимум будет 3 уровня вложенности.
9 zladenuw
 
03.10.12
10:42
а так что нельзя ?
iResult = Application.Sum(Range("B5:B10"))

iResult = WorksheetFunction.Sum(Range("B5:B10"))

iResult = Excel.Application.Sum(Range("B5:B10"))

iResult = Excel.WorksheetFunction.Sum(Range("B5:B10"))

iResult = Application.WorksheetFunction.Sum(Range("B5:B10"))
10 Rounder
 
03.10.12
10:45
Поясню сразу - может тебе не нужен такой пример.
Формируется табдок по результатам запроса уже с нужными группировками. А дальше уже куда нужно пишутся формулы и устанавливается боевая раскраска.
Т.о. пользователи пользуются группировкой сформированной с помощью 1С а не Экселя. А вот формулы позволяют им в файле экселя менять цифры и прочее и получать автоматический пересчет итогов и прочего.
Такой нужен пример?
11 wade25
 
03.10.12
10:47
(10) Да, группировки в 1с формируются. То что нужно :)
12 zladenuw
 
03.10.12
10:47
(10) давай мне. если можно :)
13 wade25
 
03.10.12
10:47
(9) Оч муторно будет высчитывать для каждой группировки и потом вставлять.
14 Rounder
 
03.10.12
10:48
(12) мыло
15 zladenuw
 
03.10.12
10:48
(14) так в карточке есть. или ты туда не ходишь
16 wade25
 
03.10.12
10:48
(14) см 7
17 Rounder
 
03.10.12
10:51
(16) Отправил. Получишь - напиши - а то бывают затыки с почтой.
(15) Написано что скрыт - и нет кнопаря посмотреть его.
18 zladenuw
 
03.10.12
10:53
(17) странно. у меня есть. ня [email protected]
19 Rounder
 
03.10.12
10:56
(18) Отправил
20 wade25
 
03.10.12
10:56
Пришло.
21 zladenuw
 
03.10.12
10:58
(19) sps
22 XoloD
 
03.10.12
11:29
(19) и мне если можно, спс
23 osa1C
 
03.10.12
12:06
и мне [email protected]
24 XoloD
 
03.10.12
12:16
(20) (21) может вы отправите видимо как пишет в  
(17) бывают затыки с почтой
25 wade25
 
03.10.12
22:24
Спс огромное, выручил!
26 zladenuw
 
04.10.12
01:03
(24) а я говорил модерам. добавить возможность качать файл с темы ТС. а они зачем, зачем. :(
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший