Форум программистов, компьютерный форум, киберфорум
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.59/22: Рейтинг темы: голосов - 22, средняя оценка - 4.59
0 / 0 / 0
Регистрация: 23.11.2012
Сообщений: 11
1

Взаимодействие 1С и C#

23.11.2012, 14:31. Показов 4100. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день. Есть такая задача - написать простейший графический редактор, в котором можно будет на исходной картинке что-то пометить, обвести и т.д.
Редактор набросал в SilverLight и вставил в форму 1С с помощью поля HTML документа. В приложении SilverLight открыл некоторые простые методы с помощью [ScriptableMember()] (очистить, отменить и т.д.) - они из 1С вызываются нормально. Проблема возникла при попытке вызова метода с параметром, а именно - собственно, загрузка картинки. Для простоты, например, передаем путь к выбранному изображению. Естественно, строковой тип 1С и C# различаются (а может и еще в чем-то причина), вылазит "Неизвестная ошибка". Что тут можно сделать?
Вызов метода в 1С (ПутьККартинке - из диалога выбора файла):
1C
1
Элементы.ПолеHTML.Документ.getElementById("silverlightControl").content.page.SetImage(ПутьККартинке);
Собственно, сам метод:
C#
1
2
3
4
5
6
7
8
[ScriptableMember()]
public void SetImage(String imgPath)
{
  Uri uri = new Uri(imgPath);
  System.Windows.Media.Imaging.BitmapImage bitmap = new System.Windows.Media.Imaging.BitmapImage(uri);
  Image img = new Image();
  img.Source = bitmap;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.11.2012, 14:31
Ответы с готовыми решениями:

Взаимодействие C# и 1c
Подскажите как такое реализовать? Есть некие устройства с которыми из программы C# можно без...

Взаимодействие VB и VC++
Взаимодействие VB и VCPP. VB60 и VCPP50. Помогите решить проблемку. Есть VB проект и dll на...

Взаимодействие МК и ПК
Здравствуйте! Недавно я сделал что-то вроде небольшого робота на Arduino UNO управляемого с ПК....

Qt взаимодействие с ОС
Всем доброго времени суток В Qt есть отличная функция, которая открывает ссылку в стандартном...

8
900 / 877 / 8
Регистрация: 15.03.2012
Сообщений: 2,680
23.11.2012, 14:45 2
А что вы передаете в ПутьККартинке? Локальный путь или ссылку?
0
0 / 0 / 0
Регистрация: 23.11.2012
Сообщений: 11
23.11.2012, 15:02  [ТС] 3
Цитата Сообщение от Fenomen Посмотреть сообщение
А что вы передаете в ПутьККартинке? Локальный путь или ссылку?
Полный путь, например "C:\Users\Public\Pictures\Sample Pictures\Lighthouse.jpg";
0
900 / 877 / 8
Регистрация: 15.03.2012
Сообщений: 2,680
23.11.2012, 15:43 4
Цитата Сообщение от Elizir Посмотреть сообщение
Uri uri = new Uri(imgPath);
А вот эта конструкция точно умеет работать с локальными путями?
0
0 / 0 / 0
Регистрация: 23.11.2012
Сообщений: 11
23.11.2012, 15:57  [ТС] 5
Цитата Сообщение от Fenomen Посмотреть сообщение
А вот эта конструкция точно умеет работать с локальными путями?
Умеет, ошибка точно не в коде C#, потому что даже если тело метода оставить пустым, "Неизвестная ошибка" со стороны 1С возникает все равно. А если при вызове метода в 1С не указывать параметров, тогда характер ошибки меняется - метод вызывается, но уже обоснованная ругань со стороны приложения SilverLight о том, что параметр не определен. Так что дело именно в передаче строкового значения.
Видимо, придется копать в сторону XDTO.
0
900 / 877 / 8
Регистрация: 15.03.2012
Сообщений: 2,680
23.11.2012, 16:13 6
Вообще то странно т.к. строка она и есть строка. Проверьте что ПутьККартинке это действительно строка. Может Вы туда элемент управления передаете или еще что нибудь? Также можно попробовать отрезать лишние пробелы функцией СокрЛП().
0
Модератор
Эксперт 1С
3784 / 2964 / 589
Регистрация: 10.03.2011
Сообщений: 11,669
Записей в блоге: 1
23.11.2012, 21:46 7
Для передачи параметров между COM приложениями в 1С есть специальный тип COMSafeArray
В синтаксис помощнике есть описание...

Не по теме:

XDTO ??? Для передачи параметров? Можно по подробнее?

0
0 / 0 / 0
Регистрация: 23.11.2012
Сообщений: 11
26.11.2012, 07:29  [ТС] 8
Цитата Сообщение от Dethmontt Посмотреть сообщение
Для передачи параметров между COM приложениями в 1С есть специальный тип COMSafeArray
В синтаксис помощнике есть описание...
О как, благодарю, изучу. И еще бы натолкнуть в нужную сторону по поводу обратного взаимодействия - как можно пнуть 1С из SilverLight-приложения?
Цитата Сообщение от Dethmontt Посмотреть сообщение

Не по теме:

XDTO ??? Для передачи параметров? Можно по подробнее?

С 1С знаком менее месяца. На применимость XDTO натолкнуло, например, это:
Механизм XDTO (XML Data Transfer Objects) является универсальным способом представления данных для взаимодействия с различными внешними системами.
0
Модератор
Эксперт 1С
3784 / 2964 / 589
Регистрация: 10.03.2011
Сообщений: 11,669
Записей в блоге: 1
26.11.2012, 14:21 9
Цитата Сообщение от Elizir Посмотреть сообщение
С 1С знаком менее месяца. На применимость XDTO натолкнуло, например, это:
Механизм XDTO (XML Data Transfer Objects) является универсальным способом представления данных для взаимодействия с различными внешними системами.
Я себе могу представить это только через XML
0
26.11.2012, 14:21
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.11.2012, 14:21
Помогаю со студенческими работами здесь

Взаимодействие 2-х проектов
Доброе время. Я новичок в asp.net mvc, изучаю его на практических примерах. Вот встала такая...

Взаимодействие приложений на C++
Недавно прочитал как делаются боты для игр(вроде хартстоуна). Видел два типа: 1) взаимодействие по...

Взаимодействие классов
Допустим, в первом классе у нас объявлена какая-либо переменная, например проинициализированная...

Взаимодействие с врагами
Привет всем!) Сижу , пишу 2D платформер, и вот столкнулся с проблемой и очень нужна помощь: Есть...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru