|
Выгрузка данных в Excel по ШАБЛОНУ (((8.х ОФ))) | ☑ | ||
---|---|---|---|---|
0
НоваяВолна
22.05.16
✎
07:28
|
Доброго всем времени суток!
Для меня опять что-то новое, поэтому прошу подтолкнуть в нужном направлении... (вот такой я до сих пор новичок). ЗАДАЧА: Выгрузить данные документа в документ Excel, при этом шаблон документа Excel имеет сложную (и многостраничную, но об этом позже) форму. Пока сделал шаблон выходного Excel и загрузил его в документ 1С, как Макет Active Document. ПРОБЛЕМЫ: 1. Плохо понимая синтаксис VBA не могу обратиться к Макету Попытка Состояние("Выгрузка данных из 1С в Microsoft Excel..."); ExcelПриложение = Новый COMОбъект("Excel.Application"); Исключение Сообщить("Ошибка при загрузке Microsoft Excel." + Символы.ПС + ОписаниеОшибки(), СтатусСообщения.Внимание); Возврат; КонецПопытки; Книга = ExcelПриложение.WorkBooks.Add(); Лист = Книга.WorkSheets(1); Такая конструкция не подходит, так как я не собираюсь создавать пустую Книгу Excel, а хочу использовать шаблон. 2. В этом шаблоне есть несколько табличных частей, количество строк в которых не определено изначально, а ниже в ячейках идут стандартные названия полей шаблона. НЕ ЗНАЮ СИНТАКСИСА ДОБАВЛЕНИЯ СТРОК В EXCEL... .... .... Просьба, если можно, пример синтаксиса... или что-то похожее для примера мне на почту... Заранее благодарен |
|||
1
НоваяВолна
22.05.16
✎
07:35
|
(0) Моя почта [email protected]
|
|||
2
НоваяВолна
22.05.16
✎
09:23
|
АП
|
|||
3
Pistol
22.05.16
✎
10:40
|
Включи запись макроса в ёкселе и сделай все руками. Отключи запись и посмотри на полученный код. Повтори код в 1С.
|
|||
4
НоваяВолна
22.05.16
✎
14:37
|
(3) Это понятно... не понятно как позиционироваться при добавлении строк
(0) До сих пор не могу понять как обратиться к Макету.... |
|||
5
НоваяВолна
23.05.16
✎
09:58
|
...
|
|||
6
b_ru
23.05.16
✎
10:18
|
(4) Вторая ссылка в гугле по запросу "Макет Active Document" дает пример кода как обратиться к макету.
|
|||
7
НоваяВолна
23.05.16
✎
10:56
|
(6) Вот не могу понять разницу использования Макета Active Document Word и Excel ...
МакетExcel = ПолучитьМакет("ВыгрузкаВExcel"); msExcel = МакетExcel.Получить(); // ....... // ....... // ... что-то тут заполняем из 1С msExcel.Application.Visible = Истина; msExcel.Activate(); Вот для Word такое обращение к Макету проходит, а для Excel ... ошибок не выдает, но и приложение MS Office не открывает. В общем тишина... |
|||
8
b_ru
23.05.16
✎
14:51
|
(7) Между ними в общем-то разницы нет.
Если убрать заполнение и выполнить только код МакетExcel = ПолучитьМакет("ВыгрузкаВExcel"); msExcel = МакетExcel.Получить(); WBook = msExcel.Application.Workbooks(1); WBook.Activate(); msExcel.Application.Visible = Истина; msExcel.Activate(); Эксель откроется? |
|||
9
Cyberhawk
23.05.16
✎
14:55
|
Я за работу с XLSX методом Native, т.е. без использования COM-модели - красота да и только.
Тем более в XLSX текст хранится в "голом" (чистом) виде, в отличие от DOCX... |
|||
10
НоваяВолна
23.05.16
✎
15:04
|
(8) Интересный эффект получился. При выполнении этого кода Excel открывается (во всяком случае я вижу открытие окна Excel), но не открывшись до конца тут же закрывается. Вот в чем может быть тут проблема?
|
|||
11
b_ru
23.05.16
✎
15:13
|
в шаблоне на VBA ничего не написано случайно?
|
|||
12
НоваяВолна
23.05.16
✎
15:26
|
(11) на VBA ничего не написано. Другое дело, что Макет Active Document я загружал из файла XLS, а из файла с расширением XSLX 1С не хочет загружать макет Active Document. Не на что не ругаясь, но и не создавая макет. Т.е. я создаю новый макет, выбираю Active Document, затем выбираю файл XLSX, нажимаю кнопочку "Готово" ... и ничего не происходит. Хоть сколько угодно раз можно на Готово нажимать.
|
|||
13
НоваяВолна
24.05.16
✎
11:07
|
Долго мучался, чтобы открыть Макет Active Document. А проблема оказалась простой. Необходимо в модуль добавить глобальную переменную Перем MSExcel Экспорт;
Код получился такой: МакетExcel = ПолучитьМакет("ВыгрузкаВExcel"); msExcel = МакетExcel.Получить(); WBook = msExcel.Application.Workbooks(1); Лист = WBook.Worksheets(1); WBook.Activate(); // ... что-то тут заполняем из 1С // ... msExcel.Application.Visible = 1; msExcel.Windows(1).Visible = 1; msExcel.Activate(); |
|||
14
НоваяВолна
24.05.16
✎
11:08
|
(13) + Без объявления глобальной переменной Excel начинает открываться и тут же закрывается
|
|||
15
НоваяВолна
27.05.16
✎
12:27
|
Возник вопрос по поводу того как в Excel добавлять строки. Шаблон выглядит вот так
http://s015.radikal.ru/i330/1605/97/9b3bcb572bae.jpg Из 1С заполняются ячейки белого цвета. Проблемы возникают в блоках 2 и 3, в которых имеются табличные части |
|||
16
Карупян
27.05.16
✎
12:40
|
Лучше перенести в mxl сформировать и потом сохранить в xslx.
Потом пробежаться и формулы проставить, если они есть |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |