компьютерный форум
Вернуться   Компьютерный форум > Программирование и вебстроительство > 1C (Все версии) > WEB расширение 1С 8.0


Ответ
 
LinkBack Опции темы Опции просмотра
Старый 12.09.2006, 14:19   #11
Пользователи
 
Регистрация: 12.09.2006
Сообщений: 27
По умолчанию

Цитата:
Если что - 177-499-582
ок.

Еще раз огромное спасибо




deevil вне форума  
Digg this Post!Bookmark Post in Technorati
Ответить с цитированием
12.09.2006, 14:19
Техник
реклама
По умолчанию

Старый 13.09.2006, 06:57   #12
Пользователи
 
Регистрация: 26.04.2006
Сообщений: 5
По умолчанию

Сталкивался с проблемой.

Если в C# создать массив, передать его как параметр в функцию 1С, там обработать (там он будет виден тоже как массив), то назад в C# он вернется тоже как массив.

Правда, мне не удалось сделать в C# динамический массив - пришлось делать размерность с запасом.

Еще есть такой тип данных COMSafeArray в 1С - как раз для передачи в COM-объекты, но я с ним пока не работал, хотя имеет смысл попробовать.
D-sign вне форума  
Digg this Post!Bookmark Post in Technorati
Ответить с цитированием
Старый 13.11.2006, 13:53   #13
Пользователи
 
Регистрация: 12.09.2006
Сообщений: 27
По умолчанию

Цитата:
Если в C# создать массив, передать его как параметр в функцию 1С, там обработать (там он будет виден тоже как массив), то назад в C# он вернется тоже как массив.
Можешь обьяснить как енто сделать в С# и 1с.
deevil вне форума  
Digg this Post!Bookmark Post in Technorati
Ответить с цитированием
Старый 17.11.2006, 14:18   #14
Пользователи
 
Регистрация: 19.08.2006
Сообщений: 61
По умолчанию

Я прочитал закрытый одноименный топик в разделе важно и
захотел поделиться своим способом получения таблицы
значений из 1С в С# и ее обходом
все делается просто:

Прописываем в 1С функцию(экспорт) которая возвращает таблицу данных

в коде шарпа:

object Table = (object)_1C.V8.Data.V8.Call(connection,connection. Connection, "ПолучитьТаблицу",ModelGuid);
// получаем количество строк
decimal CountS = (decimal)_1C.V8.Data.V8.Call(connection, (ComObject)Table, "Количество", new object[] { });
// делаем обход по строкам
for (int j = 0; j < CountP; j++)
{
// получаем текущую строку
object TekStroka = (object)_1C.V8.Data.V8.Call(connection, (ComObject)Table, "Получить", new object[] { j });
// получаем первое поле текущей строки
string Pole1 = (string)_1C.V8.Data.V8.Call(connection, (ComObject)TekStroka, "Получить", new object[] { 0 });
}

И не нужно передавать строку с разделителями и строить по ней обходы
хотя я не совсем уверен быстрее ли этот способ работает чем предложенный в закрытом
одноименном топике

и на его основании я заполняю датаСет который потом отображается в гриде



smoln вне форума  
Digg this Post!Bookmark Post in Technorati
Ответить с цитированием
Старый 25.06.2007, 18:38   #15
Пользователи
 
Регистрация: 12.09.2006
Сообщений: 27
По умолчанию

Я все таки решил тогда эту проблему.
Сделал так:
Создал в 1С справочник и обработанные результаты помещал туда.
А потом запросом из C# получал эти данные.

Не знаю насколько это было правиьным.
Но сделал это тогда и так и осталось.
А сейчас гулял по форуму и решил отписатся.
Может кому нибудь поможет.

А так все таки одна проблема осталась - скорость.
Как ни пытался оптимизировать, так и не получилось добится нормальной скорости.
Ща буду ставить SQL версию 8.0, а также 8.1 и тестировать на скорость.
Если че нить выйдет может отпишусь.
deevil вне форума  
Digg this Post!Bookmark Post in Technorati
Ответить с цитированием
Старый 15.12.2007, 16:01   #16
Пользователи
 
Регистрация: 17.11.2007
Сообщений: 6
По умолчанию

Цитата:
Я все таки решил тогда эту проблему.
Сделал так:
Создал в 1С справочник и обработанные результаты помещал туда.
А потом запросом из C# получал эти данные.

Не знаю насколько это было правиьным.
Но сделал это тогда и так и осталось.
А сейчас гулял по форуму и решил отписатся.
Может кому нибудь поможет.

А так все таки одна проблема осталась - скорость.
Как ни пытался оптимизировать, так и не получилось добится нормальной скорости.
Ща буду ставить SQL версию 8.0, а также 8.1 и тестировать на скорость.
Если че нить выйдет может отпишусь.
У меня та же проблема, нужно из 1С получить таблицу DataTable. V8.Call возвращает обьект _1C.V8.Data.ComObject, который никак не приводится к DataTable.
Скажи как у тебя со скоростью? Нормально ли работает твой вариант?
Правда справочник создавать мне не подходит потому что работают множество пользователей.
ihorko вне форума  
Digg this Post!Bookmark Post in Technorati
Ответить с цитированием
Старый 16.12.2007, 18:26   #17
Пользователи
 
Регистрация: 17.11.2007
Сообщений: 6
По умолчанию

:excl:
Проблема решается очень просто если в 1с сформировать из таблицы XML string и вернуть его с помощью V8.Call а дальше преобразовать XML стринг в DataTable. Работает быстро.
:excl:
ihorko вне форума  
Digg this Post!Bookmark Post in Technorati
Ответить с цитированием
Старый 04.08.2008, 08:21   #18
Пользователи
 
Регистрация: 01.08.2008
Сообщений: 2
По умолчанию

Спасибо! ..перевариваю...
Ар71 вне форума  
Digg this Post!Bookmark Post in Technorati
Ответить с цитированием
Ответ


Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Вкл.



Текущее время: 15:40. Часовой пояс GMT.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd. Перевод: zCarot
Content Relevant URLs by vBSEO 3.5.0 RC2