![]() |
![]() |
![]() |
|
Выгрузка массива из 1С в Excel | ☑ | ||
---|---|---|---|---|
0
fit
24.04.07
✎
14:48
|
Необходимо массив из 1с выгрузить в Excel и работать c Excel-ми функциями обращаясь из 1с?
Потом обработанный массив необходимо загрузить в 1С. Подскажите как это сделать!!! |
|||
1
Kalambur
24.04.07
✎
14:53
|
а в 1С это не обрабатываеться?
|
|||
2
Salvador Limones
24.04.07
✎
14:56
|
Хмммм... Периодически возникают такие безумные идеи у бухгалтеров, которые раньше всё в Экселе считали, и тут бац, пересели на 1С.
|
|||
3
Молния
24.04.07
✎
14:58
|
мдя. идиотизм. может проце функции екселя в 1С забить?
|
|||
4
fit
24.04.07
✎
15:00
|
Мне нужно провести корреляционный анализ в Excel это делается с помощью надстройки Анализ данных. Это намного проще и правильнее, чем писать множество процедур в 1с
|
|||
5
Kalambur
24.04.07
✎
15:02
|
тогда MSDN+VBA help+Excel редактор
|
|||
6
fit
24.04.07
✎
15:02
|
+ точнее надстройка называется Пакет анализа
|
|||
7
Salvador Limones
24.04.07
✎
15:02
|
(4) А функции 1С не подходят?
Типа: АнализДанных Предназначен для выполнения анализа данных (кластерный анализ, поиск ассоциативных правил, поиск последовательностей и другие виды анализа). Результат работы зависит от типа производимого анализа. |
|||
8
asady
24.04.07
✎
15:03
|
(0)
COMSafeArray (COMSafeArray) Методы: GetDimensions (GetDimensions) GetLength (GetLength) GetLowerBound (GetLowerBound) GetType (GetType) GetUpperBound (GetUpperBound) GetValue (GetValue) IsResizable (IsResizable) Resize (Resize) SetValue (SetValue) Выгрузить (Unload) Конструкторы: Из COMSafeArray Из массива 1 Из массива 2 Основной1 Основной2 Описание: Объектная оболочка над многомерным массивом SAFEARRAY из COM. Позволяет создавать и использовать SAFEARRAY для обмена данными между COM-объектами. Для передачи массива в качестве параметра метода COM-объекта необходимо построить COMSafeArray нужной размерности с нужным типом элемента и указать построенный COMSafeArray в качестве значения входного параметра. Другие объекты 1С:Предприятия можно использовать в качестве значений входных параметров типа Массив только при наличии исчерпывающей информации о типах параметров в библиотеке типа COM-объекта. Результат метода COM-объекта или значение выходного параметра типа Массив всегда представляется объектом COMSafeArray. Пример: Массив = Новый COMSafeArray("VT_I4", 2); Массив.SetValue(0, 23); Массив.SetValue(1, 13.5); COMОбъект = Новый COMObject("ExampleCOMObject.ECOMClass"); COMОбъект.ProcessSafeArray(Массив); См. также: COMSafeArray, конструктор Из COMSafeArray |
|||
9
smaharbA
24.04.07
✎
15:04
|
(4) Лист.Range(Лист.Cells(1,1),Лист.Cells(РазмХ,РазмУ)).Value=Массив
|
|||
10
fit
25.04.07
✎
19:20
|
Получилось выгрузить массив, но при выполнении Анализ данных-> Регрессия выдается сообщение об ошибке
При попытке открытия файла с использованием списка недавно использованных файлов из меню ''Файл'' убедитесь, что файл не был переименован, перемещен или удален. Эксель.Application.Run ("ATPVBAEN.XLA!Regress", Лист.Range(Лист.Cells(1,1),Лист.Cells(1,4)), Лист.Range(Лист.Cells(2,2),Лист.Cells(4,4)), False, False, , Лист.Range( "$F$1:$M$36"), True, True, False, False, , False); по причине: Произошла исключительная ситуация (Microsoft Office Excel): Не удалось найти 'ATPVBAEN.XLA'. Проверьте задание имени и местоположения файла. При попытке открытия файла с использованием списка недавно использованных файлов из меню ''Файл'' убедитесь, что файл не был переименован, перемещен или удален. В чем проблема? Код: Процедура ОсновныеДействияФормыloppo(Кнопка) Попытка Эксель=Новый COMОбъект ("Excel.Application"); Исключение Сообщить(ОписаниеОшибки()+" Программа Excel не установлена на данном компьютере!"); Возврат; КонецПопытки; Книга=Эксель.WorkBooks.Add(); Лист=Книга.WorkSheets(1); Массив=Новый массив (4,4); Массив[0][0]=2; Массив[0][1]=1; Массив[0][2]=1; Массив[0][3]=4; Массив[1][0]=2; Массив[1][1]=2; Массив[1][2]=5; Массив[1][3]=2; Массив[2][0]=0; Массив[2][1]=3; Массив[2][2]=3; Массив[2][3]=0; Массив[3][0]=5; Массив[3][1]=4; Массив[3][2]=6; Массив[3][3]=4.45; Массив2 = Новый COMSafeArray(Массив,"VT_R8"); Лист.Range(Лист.Cells(1,1),Лист.Cells(4,4)).Value=Массив2; Эксель.Application.Run ("ATPVBAEN.XLA!Regress", Лист.Range(Лист.Cells(1,1),Лист.Cells(1,4)), Лист.Range(Лист.Cells(2,2),Лист.Cells(4,4)), False, False, , Лист.Range( "$F$1:$M$36"), True, True, False, False, , False); Эксель.visible=1; КонецПроцедуры |
|||
11
smaharbA
25.04.07
✎
19:26
|
а не луччели сделать WorksheetFunction хотя говорю тупа наугад
|
|||
12
asady
25.04.07
✎
19:35
|
(10)
the macro sheet must be open |
|||
13
fit
25.04.07
✎
20:02
|
(12) и как это сделать. По-подробнее если можно
|
|||
14
vde69
25.04.07
✎
20:38
|
(0) уже 2 раз в этом месяце появляеться такая бредовая идея на форуме...
1с 8.0 дает БЕЗУМНЫЕ возможности для анализа, а если хочеться реализовать что-то свехестественное то лучше обходиться не екселем а чем-то другим (для примера что будешь делать если попадеться массив из 100 000 строк, в ексель просто физически не влезет...) можно курить мат-лаб или поискать ВК для анализа (встречал...) ексель хорошь для визулизации, на нем не плохо делать пользовательские макеты к отчетам, но как вычислитель это бред!!! |
|||
15
asady
25.04.07
✎
21:21
|
(13)
Macros=Эксель.Workbooks.Open("ATPVBAEN.XLA"); так попробуй |
|||
16
fit
26.04.07
✎
17:04
|
Ну все, у меня получилось.
Может кому-нибудь пригодится: Эксель=Новый COMОбъект ("Excel.Application"); Исключение Сообщить(ОписаниеОшибки()+" Программа Excel не установлена на данном компьютере!"); Возврат; КонецПопытки; Книга=Эксель.WorkBooks.Add(); Лист=Книга.WorkSheets(1); Массив=Новый массив (4,4); Массив[0][0]=2; Массив[0][1]=1; Массив[0][2]=1; Массив[0][3]=4; Массив[1][0]=2; Массив[1][1]=2; Массив[1][2]=5; Массив[1][3]=2; Массив[2][0]=0; Массив[2][1]=3; Массив[2][2]=3; Массив[2][3]=0; Массив[3][0]=5; Массив[3][1]=4; Массив[3][2]=6; Массив[3][3]=4.45; Массив2 = Новый COMSafeArray(Массив,"VT_R8"); Лист.Range(Лист.Cells(1,1),Лист.Cells(4,4)).Value=Массив2; Эксель.Workbooks.Open("C:\Program Files\Microsoft Office\OFFICE11\Library\Analysis\ATPVBAEN.XLA"); Эксель.Application.Run("ATPVBAEN.XLA!auto_open"); Книга.Activate(); Эксель.visible=1; Эксель.Application.Run ("ATPVBAEN.XLA!Regress", Лист.Range(Лист.Cells(1,1),Лист.Cells(4,1)), Лист.Range(Лист.Cells(1,2),Лист.Cells(4,2)), False, False, , Лист.Range( "$F$1:$M$36"), True, True, False, False, , False); Эксель.DisplayAlerts = true; Эксель.Quit(); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |