|
1С Запись несколько отчетов в один файл Excel с закладками | ☑ | ||
---|---|---|---|---|
0
spiller26
20.11.14
✎
09:41
|
Есть стандартный способ в 1С сохранения нескольких отчетов в один Excel файл закладками без запуска самого Excel?
|
|||
1
butterbean
20.11.14
✎
09:41
|
нет
|
|||
2
spiller26
20.11.14
✎
09:47
|
(1) оч.жаль.
Просто есть скрипт, который открывает 1С формирует отчеты, закидывает по закладкам (с открытием Excel в фоне) и отсылает. Но сработка происходит только когда запустить скрипт ручками. Где копать не знаю, может кто сталкивался? До этого не парились, т.к. отчеты по одному рассылались, теперь же захотелось новшеств пользакам. |
|||
3
Banned
20.11.14
✎
09:55
|
(2) Послать пользователей - не предлагать? )
|
|||
4
Лодырь
20.11.14
✎
09:58
|
(2) Так в чем проблема то? Непонятно, что хочется получить.
|
|||
5
spiller26
20.11.14
✎
10:02
|
(4) Вот кусок формирования
Попытка //Формирование отчетов ТабДок = ПолучитьОтчет(Рез.Вид, НастройкиОтчета, Рез.СКД, Рез.ВнешнийОтчет); Если ТипЗнч(ТабДок) = Тип("Строка") Тогда ИмяВременногоФайла = ТабДок; ИначеЕсли ТипЗнч(ТабДок) = Тип("ТабличныйДокумент") Тогда ТабДок.Записать(ИмяВременногоФайла, ТипФайлаТабличногоДокумента.XLSX); ИначеЕсли ТипЗнч(ТабДок) = Тип("Структура") Тогда //таблица имени и пути временных файлов МассивВременных = Новый ТаблицаЗначений; МассивВременных.Колонки.Добавить("Название", Новый ОписаниеТипов("Строка")); МассивВременных.Колонки.Добавить("Путь", Новый ОписаниеТипов("Строка")); //запись временных Для каждого СтрСтруктуры Из ТабДок Цикл ИмяВременногоФайлаСтруктуры = КаталогВременныхФайлов() + Рез.Вид + " "+ СтрСтруктуры.Ключ + ".xlsx"; //НовТабДок = Новый ТабличныйДокумент; НовТабДок = СтрСтруктуры.Значение; НовТабДок.Записать(ИмяВременногоФайлаСтруктуры, ТипФайлаТабличногоДокумента.XLSX); // ТЗ = МассивВременных.Добавить(); ТЗ.Название = СтрСтруктуры.Ключ; ТЗ.Путь = ИмяВременногоФайлаСтруктуры; КонецЦикла; //определяем переменную Попытка ExcelApp = Новый COMОбъект("Excel.Application"); Исключение Предупреждение(ОписаниеОшибки()+"; программа Excel не установлена на данном компьютере!"); КонецПопытки; КнигаЭксель = ExcelApp.Workbooks.Add(); ExcelApp.DisplayAlerts = False; Лист = 1; Для Каждого ПутьКФайлуXLS Из МассивВременных Цикл Книга = ExcelApp.WorkBooks.Open(ПутьКФайлуXLS.Путь); Книга.Sheets("TDSheet").Copy(КнигаЭксель.Sheets(Лист));//копируем лист из временного в тек Состояние("Выгружается отчет "+ПутьКФайлуXLS.Название); Книга.Close(); КнигаЭксель.Sheets(Лист).Name = ПутьКФайлуXLS.Название; Лист = Лист+1; КонецЦикла; //удаление 3 листов (стандартных) Попытка КнигаЭксель.Sheets("Лист1").Delete(); КнигаЭксель.Sheets("Лист2").Delete(); КнигаЭксель.Sheets("Лист3").Delete(); Исключение //ОписаниеОшибки() КонецПопытки; КнигаЭксель.SaveAs(ИмяВременногоФайла); КнигаЭксель.Close(); ExcelApp.Application.Quit(); //удаление временных файлов //Для каждого ПутьКФайлуXLS Из МассивВременных Цикл // Попытка // УдалитьФайлы(СокрЛП(ПутьКФайлуXLS.Путь)); // Исключение // Сообщить(ОписаниеОшибки()); // КонецПопытки; //КонецЦикла; //<- гап Кравченко 12.11.2014 КонецЕсли; ОшибкаФормированияотчета = Ложь; Исключение ОшибкаФормированияотчета = Истина; ОписаниеОшибкиФормированияОтчета = ОписаниеОшибки(); КонецПопытки; |
|||
6
Лодырь
20.11.14
✎
10:07
|
и? у тебя проблемы с работоспособностью кода при выполнении его в регламентном задании?
|
|||
7
spiller26
20.11.14
✎
10:07
|
(6) Да
|
|||
8
Banned
20.11.14
✎
10:07
|
(6) У него екселя на сервере нет. Вот и проблема.
|
|||
9
Лодырь
20.11.14
✎
10:09
|
(7) учти (8), сделай себе процедуру с директивой исполнения &НаСервере и тестируй на здоровье. Потом тупо скопируешь текст в общий модуль и запускай в регламентном.
|
|||
10
spiller26
20.11.14
✎
10:17
|
(8) Excel - есть
(9) &НаСервере вот про это я как то не учёл момент. Если эта процедура будет в обработке (&НаСервере), то будет толк или обязательно пихать в общ.модуль? |
|||
11
Лодырь
20.11.14
✎
10:20
|
(10) Ты умудряешся задавать вопросы абсолютно непонятные. Которые можно трактовать по разному. Что вы подразумеваете под "будет толк"?
|
|||
12
spiller26
20.11.14
✎
10:23
|
(11) Процедура обязательно должна быть в общ.модуле или оставить её в обработке, в которой происходит формирование отчетов с рассылкой?
|
|||
13
Мимохожий Однако
20.11.14
✎
10:25
|
Присоединяюсь к (3), если не понимают (1).
|
|||
14
Лодырь
20.11.14
✎
10:31
|
(12) Вы сумеете запустить процедуру находящуюся в обработке из регламентного задания? Если да, то оставляйте.
|
|||
15
spiller26
20.11.14
✎
10:33
|
(14) Да, она так и запускается.
Спасибо за совет, буду пробовать с "&НаСервере". |
|||
16
spiller26
20.11.14
✎
10:34
|
(13) Интересно если ты ген.дира послёшь, что будет?
|
|||
17
Мимохожий Однако
20.11.14
✎
10:40
|
(16)Если подходить буквально, то я не посылаю никого. Это невежливо. А вот по сути и вежливо я многократно повторяю как мантру "нет". )) Просто и коротко. "В платформе на данный момент это не предусмотрено". Если очень хочет, то пусть покупает Офис и тогда средствами Excel.
|
|||
18
Лодырь
20.11.14
✎
11:39
|
(17) Нарветесь на грамотного заказчика и получите геморрой с openoffice
|
|||
19
spiller26
20.11.14
✎
11:57
|
Все разрешилось.
На сервере просто нужно было создать папку Windows\SysWOW64\config\systemprofile\Desktop т.к. сервер 64х, а Excel 32х |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |