powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / [игнор отключен] [закрыт для гостей] / Рисование Curve,Polyline
12 сообщений из 12, страница 1 из 1
Рисование Curve,Polyline
    #37885502
Юрий Ktjybljdbx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите разобраться с двумя этими методами объектов Shape
По FAQ в mdsn написано что в качестве параметра нуно использовать массив точек

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Dim pts(1 To 7, 1 To 2) As Single
pts(1, 1) = 0
pts(1, 2) = 0
pts(2, 1) = 72
pts(2, 2) = 72
pts(3, 1) = 100
pts(3, 2) = 40
pts(4, 1) = 20
pts(4, 2) = 50
pts(5, 1) = 90
pts(5, 2) = 120
pts(6, 1) = 60
pts(6, 2) = 30
pts(7, 1) = 150
pts(7, 2) = 90
Set myDocument = Worksheets(1)
myDocument.Shapes.AddCurve SafeArrayOfPoints:=pts



тоже самое пробую в 1С v8.0:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
Word = New COMOBJECT("Word.Application");
	Doc = Word.Documents.Add();
	
	Ramka = New Массив(4,3);
	Ramka[1][1] = 0;
	Ramka[1][2] = 0;
	Ramka[2][1] = 5;
	Ramka[2][2] = 5;
	PrintRange = Doc.Shapes.AddCurve(Ramka);


и возникает ошибка

{ОбщаяФорма.MaketPlot(28)}: Ошибка при вызове метода контекста (AddCurve): Произошла исключительная ситуация: Указанное значение выходит за допустимые пределы.
PrintRange = Doc.Shapes.AddCurve(Ramka);
по причине:
Произошла исключительная ситуация: Указанное значение выходит за допустимые пределы.

Вчём причина помогите разобраться.
Аналогичное происходит с методом AddPolyline.
...
Рейтинг: 0 / 0
Рисование Curve,Polyline
    #37885512
Юрий Ktjybljdbx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вернее этот код...
Код: vbnet
1.
2.
3.
4.
5.
6.
Ramka = New Массив(2,2);
	Ramka[0][0] = 0;
	Ramka[0][1] = 0;
	Ramka[1][0] = 5;
	Ramka[1][1] = 5;
	PrintRange = Doc.Shapes.AddCurve(Ramka);
...
Рейтинг: 0 / 0
Рисование Curve,Polyline
    #37886311
SashaM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты уверен что описание массива у 1С такой же как и у VB ?
...
Рейтинг: 0 / 0
Рисование Curve,Polyline
    #37886560
Юрий Ktjybljdbx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SashaM,

т.е. я как понимаю ошибка в том что VBA обращается в элементам массива как а(i,j), и не хотит обращаться к элементам a[i][j] (1С)? Вы это имеете в виду?
...
Рейтинг: 0 / 0
Рисование Curve,Polyline
    #37887310
olegves
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Юрий Ktjybljdbx,

возможно, COMSafeArray спасет отца русской демократии :)
...
Рейтинг: 0 / 0
Рисование Curve,Polyline
    #37887425
piva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Юрий Ktjybljdbx, хотя бы потому что массив в 1С - это объект, а не просто массив, тем более из разных систем.
...
Рейтинг: 0 / 0
Рисование Curve,Polyline
    #37888872
Юрий Ktjybljdbx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо огромное
...
Рейтинг: 0 / 0
Рисование Curve,Polyline
    #37889006
Юрий Ktjybljdbx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
olegves,

блин у меня наверно руки кривые...та же самая ошибка
Код: vbnet
1.
2.
3.
4.
5.
6.
Ramka = New Array(2,2);
	Ramka[0][0] = 1;
	Ramka[0][1] = 2;
	Ramka[1][0] = 100;
	Ramka[1][1] = 200;
	PrintRange = Doc.Shapes.AddCurve(Новый COMSafeArray(Ramka, "VT_I4", Ramka.Count()));
...
Рейтинг: 0 / 0
Рисование Curve,Polyline
    #37889193
olegves
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Юрий Ktjybljdbx,

а если так:
Код: plaintext
1.
2.
3.
4.
5.
Ramka = New Array(2,2);
	Ramka[0][0] = 1;
	Ramka[0][1] = 2;
	Ramka[1][0] = 100;
	Ramka[1][1] = 200;
	PrintRange = Doc.Shapes.AddCurve(Новый COMSafeArray(Ramka));
...
Рейтинг: 0 / 0
Рисование Curve,Polyline
    #37889201
olegves
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Юрий Ktjybljdbx,

+ (предыдущее)

если не прокатит, попробуй поиграться со вторым параметром COMSafeArray

Если и это не поможет, тогда создавай массив в объекте Doc
...
Рейтинг: 0 / 0
Рисование Curve,Polyline
    #37889203
olegves
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Юрий Ktjybljdbx,

авторТип элемента задается строкой и может принимать одно из следующих значений:
VT_I1 - знаковое целое 1 байт,
VT_I2 - знаковое целое 2 байта,
VT_I4 - знаковое целое 4 байта,
VT_I8 - знаковое целое 8 байт,
VT_INT - знаковое целое,
VT_UI1 - беззнаковое целое 1 байт,
VT_UI2 - беззнаковое целое 2 байта,
VT_UI4 - беззнаковое целое 4 байта,
VT_UI8 - беззнаковое целое 8 байт,
VT_UINT - беззнаковое целое,
VT_R4 - действительное число 4 байта,
VT_R8 - действительное число 8 байт,
VT_DECIMAL - десятичное число с фиксированной точкой 12 байт,
VT_CY - значение денежного типа,
VT_DATE - значение типа дата,
VT_BSTR - значение типа строка,
VT_DISPATCH - указатель на интерфейс IDispatch
VT_ERROR - код ошибки,
VT_BOOL - значение логического типа,
VT_UNKNOWN - указатель на интерфейс IUnknown
VT_VARIANT - вариантный тип.
...
Рейтинг: 0 / 0
Рисование Curve,Polyline
    #37959251
Steelvan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для рисования в 1С с функциональностью Visio можно использовать программу ОптимаСофт:Схемы на http://www.схемы1С.рф

Нарисованную схему в 1С можно сохранять в xml. Читать, анализировать и изменять можно программно.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / Рисование Curve,Polyline
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]