|
Использование классов .Net в 1С для новичков | ☑ | ||
---|---|---|---|---|
0
Serginio1
27.01.16
✎
11:58
|
Выложил статью http://catalog.mista.ru/public/448668/ в которой постарался объяснить работу обертки NetObjectToIDispatch45 обертывающую Объекты .Net через Com объекты.
Саму разработку можно скачать отсюда http://files.rsdn.ru/19608/%d0%a4%d0%b0%d0%b9%d0%bb%d1%8bNetObjectToIDispatch.zip Недавно решенные проблемы Асинхронные WinHttp.WinHttpRequest.5.1 и MSXML2.XMLHTTP Помощь с Web сервисом Предыдущие темы Динамическая компиляция для использования .Net событий в 1С 1C Messenger для отправки сообщений, файлов и обмена данными между пользователям v8: v8: Использование сборок .NET в 1С 7.x и 8.x По поводу регистрации Для проведения тестов нужно распаковать архив . Татем нужно зарегистрировать Нужные DLL. Запускаем РегистрацияКомСервера.exe от имени администратораи выбираем NetObjetToIDispatch45.dll которая лежит в DLLNetObjetToIDispatch45 Либо 1с и многопоточность |
|||
1
Serginio1
27.01.16
✎
14:28
|
Послеобеденный ап
|
|||
2
Garykom
гуру
27.01.16
✎
14:38
|
(0) Уже почти отлично, понятнее будет многим зачем это.
|
|||
3
ДенисЧ
27.01.16
✎
14:40
|
"С точки зрения 1С их можно рассматривать как классы"
Уже ошибка. В 1с нету классов. Поэтому и точки зрения такой нет |
|||
4
Serginio1
27.01.16
✎
14:48
|
(3) Речь шла про Классы, Валуе типы и перечисления.
Обертка позволяет работать с классами, а для 1С это будут объекты. В 1С есть классы. Например Документы.Реализация это класс У него есть статические методы (методы Менеджера) и Методы объекта, свойства (реквизиты). У него есть тип. Так, что Денис ты не прав. |
|||
5
Serginio1
27.01.16
✎
14:49
|
(2) А мне почему то казалось, что и в первоначльной статье все очень просто.
|
|||
6
ДенисЧ
27.01.16
✎
14:50
|
(4) Нету в 1с классов.
Покажи мне цитату из ЖКК, где оные упоминаются. |
|||
7
Волшебник
модератор
27.01.16
✎
14:51
|
(6) В 1С есть классы. В ЖКК они называются Объектами метаданных.
|
|||
8
ДенисЧ
27.01.16
✎
14:51
|
(7) Покажите мне в ЖКК слово "класс".
тогда я угомонюсь. |
|||
9
Timon1405
27.01.16
✎
14:51
|
(6) проф разработка с 157
А от чего зависит состав стандартных команд? Конечно же, от класса объектов, которому принадлежит объект конфигурации. И это логично, так как различные классы объектов конфигурации предназначены для решения различных прикладных задач. Например, объект-справочник Товары предоставляет команды открытия списка элементов – Товары, создания нового элемента – Товари создания новой группы – Товар: создать группу, а объект-отчет Остатки товаровтолько команду открытия формы отчета – Остатки товаров(рис. 7.27) |
|||
10
Волшебник
модератор
27.01.16
✎
14:51
|
(8) Ты тупой?
|
|||
11
Serginio1
27.01.16
✎
14:53
|
(6) Ту суслика видишь? А он есть. Если ЖКК не написано, это не значит, что классов нет. Просто они названы по другому
МенеджерСправочник, МенеджерСсылка,МенеджерОбъект |
|||
12
Garykom
гуру
27.01.16
✎
14:56
|
(3) не придирайся к словам/фразам вырванным из контекста
"В .Net есть классы, структуры(Value типы), перечисления. С точки зрения 1С их можно рассматривать как классы. Каждый класс характеризуется типом." "По аналогии с 1С классы это справочники, документы и т.д. У классов могут быть статические методы и свойства и методы и свойства объекта." "По аналогии с 1С статические методы это методы менеджера (НайтиПоКоду,НайтиПоНомеру), а методы объекта аналогичны методам объекта (Модифицированность, Удалить, Номер,Дата)" |
|||
13
Serginio1
27.01.16
✎
15:01
|
(12) Спасибо. Кстати несмотря на большие накладные затраты для вызова на примере StringBuilder вызов метода .Net объекта всего в 2.25 раз дороже родного.
|
|||
14
ДенисЧ
27.01.16
✎
15:02
|
(10) Да, я же 1сник.
|
|||
15
Serginio1
27.01.16
✎
15:04
|
(14) Спасибо, что ветку поддерживаешь. Может и сам заинтересуешься.
|
|||
16
KrabCore
27.01.16
✎
16:07
|
(0) выглядит очень не плохо, только недавно сокрушался что в 1с нет регулярок.
но боюсь что в массы не зайдет, т.к. надо "думать" и знать синтаксис шарпа. те кто умеет думать - давно уже занимаются чем-то более серьезным, а тех кто остался в 1с все устраивает) |
|||
17
ejikbeznojek
27.01.16
✎
16:53
|
ОбернутаяСтрока=Врап.ОбернутьЛюбойОбъект("Тестовая строка");
Как-то странно, когда я в отладке разворачиваю обёрнутую строку начинает ошибки выдавать) Ошибка в методе Chars не найден метод "System.string.Chars". mscorlib |
|||
18
Garykom
гуру
27.01.16
✎
17:00
|
(17) не надо этого делать ))
отладчик 1С вроде не предназначен чтобы COM объекты раскручивать |
|||
19
Serginio1
27.01.16
✎
17:32
|
(16) Ну есть примеры и на бейсике. Всегда могут спросить и помочь могу не только я
|
|||
20
Serginio1
27.01.16
✎
17:34
|
Кстати посмотрел я на пример где синхронно вызывается ассинхронный метод и решил написать классы, которые вызывали события по окончании работы задачи
Теперь можно любой асинхронный метод возвращающий Task<TResult> вызвать асинхронно Выполнитель=Врап.ПолучитьАссинхронныйВыполнитель(); ДобавитьОбработчик Выполнитель.ПриОкончанииВыполненияЗадачи, ПриОкончанииВыполнения; HttpClient=Врап.ПолучитьТипИзСборки("System.Net.Http.HttpClient","System.Net.Http.dll"); Клиент=Врап.СоздатьОбъект(HttpClient); Задача=Клиент.GetStringAsync("https://msdn.microsoft.com/ru-ru/library/hh551745(v=vs.118).aspx"); Выполнитель.Выполнить(задача); КонецПроцедуры Процедура ПриОкончанииВыполнения(Данные) Попытка Сообщить(Врап.Встроку(Данные)); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки |
|||
21
Serginio1
27.01.16
✎
17:35
|
Чуть позже выложу новую версию
|
|||
22
Serginio1
27.01.16
✎
17:39
|
Загрузил. По идее ссылка та же
http://files.rsdn.ru/19608/%d0%a4%d0%b0%d0%b9%d0%bb%d1%8bNetObjectToIDispatch.zip |
|||
23
Serginio1
27.01.16
✎
17:47
|
(16) То что в массы не пойдет давно известно, но постепенно количество людей использующие эту разработку увеличивается.
Например http://catalog.mista.ru/public/434345/ Просто используя классы .Net можно сильно упростить себе множества задач. |
|||
24
Cyberhawk
27.01.16
✎
17:54
|
Слишком много ссылок в первом сообщении. Что открывать-то для быстрого ознакомления?
|
|||
25
Serginio1
27.01.16
✎
18:04
|
(24) Самую первую http://catalog.mista.ru/public/448668/
(16) Вот пример использования делегатов для Replace Динамическая компиляция для использования .Net событий в 1С |
|||
26
qwerty
27.01.16
✎
21:53
|
я с этой ветки Асинхронные WinHttp.WinHttpRequest.5.1 и MSXML2.XMLHTTP
Спасибо, все заработало. Теперь осталось разобраться в обилии классов dot net и где их можно использовать |
|||
27
Garykom
гуру
27.01.16
✎
22:01
|
Шеф, в linux можно сделать sudo apt-get install mono-devel
После этого к примеру консольные проги на .Net даже скомпиленные под Вин (главное битность платформы) прекрасно выполняются через mono hello.exe Вот как бы из платформы 1С на linux это тоже заюзать? COM то на линукс нету (( Нуно NativeAPI юзать |
|||
28
Cyberhawk
27.01.16
✎
22:23
|
Во-первых, хорошо бы ссылку на статью на ИС, а не на каталоге мисты... Я для этого "оборачиваю" ссылки на ИС с помощью goo.gl
Во-вторых, в статье говорится "поможет сильно увеличить возможности 1С без написания COM объектов или ВК" - хотелось бы увидеть конкретный краткий список (либо в начале статьи - типа будет рассмотрено (или оглавление), либо в конце статьи, как итог), а не бегать по статье и коду |
|||
29
Злопчинский
27.01.16
✎
22:43
|
если пишешь "для новичков" - то и пиши для новичков
Вопрос-1 ""Начнем сразу на примерах. Итак, для начала создадим объект, который будет обертывать объекты .Net в COM объекты."" - что такое "обертывать", зачем "обертывать" |
|||
30
Злопчинский
27.01.16
✎
22:43
|
или в статье сразу обозначь минимально требуемый уровень квалификации для использования сабжа/понимания статьи
|
|||
31
Злопчинский
27.01.16
✎
22:45
|
"Теперь получим тип System
String=Врап.ПолучитьТип("System.String");" - так все-таки получаем тип систем или стринг? - если систем - то при чем здесь стринг? |
|||
32
Злопчинский
27.01.16
✎
22:46
|
аббревиатура GAC - не определена (м.б. это общепринятая какая-то?)
|
|||
33
Злопчинский
27.01.16
✎
22:52
|
а так, конечно, здорово.
но нужно скорее всего чистым сугубо 1С-кодерам... |
|||
34
Garykom
гуру
27.01.16
✎
23:02
|
да это немного уровень не новичка
(29) обертка это объект скрывающий внутри себя тонкости/сложности использования другого кода для C# и .Net стандартный термин к примеру на 1С вызов функции/процедуры с параметрами, внутри которой сложный код это такой пример обертки (31) тип String(Стринг, Строка), "находится" в "модуле" (пространстве имен, сборке) System, поэтому полное его имя "System.String" для обращения по короткому имени нужен в начале кода "импорт модуля", для "базовых модулей" он неявный/подразумевается (32) https://ru.wikipedia.org/wiki/Global_Assembly_Cache это нечто вроде набора процедур/функций/объектов и прочего платформы 1С, все прочее отдельно )) |
|||
35
Злопчинский
27.01.16
✎
23:12
|
(34) спсб за пояснения
|
|||
36
Serginio1
27.01.16
✎
23:42
|
(26) Посмотри 20 22 другое решение твоей проблемы
завтра сделаю с вызовом события при ошибке (28) http://catalog.mista.ru/profile/82159/public/ |
|||
37
Serginio1
27.01.16
✎
23:42
|
(34) Спасибо за помощь.
|
|||
38
Serginio1
27.01.16
✎
23:44
|
||||
39
Serginio1
27.01.16
✎
23:55
|
(31) Там как раз и написано про пространство имен
Каждый класс характеризуется именем класса, пространством имен и сборкой (размещение Dll, Exe). Рассмотрим класс String https://msdn.microsoft.com/ru-ru/library/system.string(v=vs.110).aspx Представляет текст как последовательность знаков Юникода. Исходный код .NET Framework для этого типа см. в указанном источнике. Пространство имен: System Сборка: mscorlib (в mscorlib.dll) Начнем сразу на примерах. Итак, для начала создадим объект, который будет обертывать объекты .Net в COM объекты. врап=новый COMОбъект("NetObjectToIDispatch45"); Теперь получим тип System String=Врап.ПолучитьТип("System.String"); Для понимания правильнее будет так ПространствоИмен="System."; String=Врап.ПолучитьТип(ПространствоИмен+"String"); Кто работал с ФабрикаXDTO, то там тоже есть простанство имен и типы. |
|||
40
Cyberhawk
27.01.16
✎
23:58
|
(36) Зачем ссылка на твои публикации?
|
|||
41
Serginio1
28.01.16
✎
07:23
|
(40) Извини не понял.
Если ты имел ссылки на форуме мисты, то я показал все статьи на инфостарте. Просто все ссылки на инфостарте перефодятся на каталог мисты. А что касается "Во-вторых, в статье говорится "поможет сильно увеличить возможности 1С без написания COM объектов или ВК" - хотелось бы увидеть конкретный краткий список (либо в начале статьи - типа будет рассмотрено (или оглавление), либо в конце статьи, как итог), а не бегать по статье и коду" То в ссылке на разработку куча примеров использования .Net классов, а составлять полный список классов .Net займет всю мою оставшуюся жизнь. |
|||
42
extrim-style
28.01.16
✎
08:46
|
(4) https://ru.wiktionary.org/wiki/валуй ...
|
|||
43
Serginio1
28.01.16
✎
09:55
|
1C Messendger выложил отдельно https://yadi.sk/d/G67GAnc-nrUJ9
|
|||
44
Serginio1
28.01.16
✎
09:57
|
(26) Я сейчас 20 подправлю что бы можно было отлавливать ошибки и передавать данные о задаче. И сделаю отчет где расскажу как асинхронно выполнять методы
|
|||
45
Cyberhawk
28.01.16
✎
11:43
|
(41) "в ссылке на разработку куча примеров использования .Net классов" // Вот каждый пример Я и предлагаю озаглавить и оформить получившийся список
|
|||
46
Serginio1
28.01.16
✎
11:46
|
Выложил новый вариант http://files.rsdn.ru/19608/%d0%a4%d0%b0%d0%b9%d0%bb%d1%8bNetObjectToIDispatch.zip
где добавил асинхронное выполнение методов Сейчас в .Net широко применяют оператор await. Он применяется к методам возвращающие Task или Task<TResult>. Task это задача представляет асинхронную операцию. Доступ к результату осуществляется через свойство Result. В 1С можно использовать либо синхронный вариант например ДанныеРесурса=Клиент.GetStringAsync("https://msdn.microsoft.com/ru-ru/library/hh551745(v=vs.118).aspx").Result; Но для того, что бы этот метод выполнить асинхронно я создал класс с помощью которого легко использовать эти методы асинхронно. врап=новый COMОбъект("NetObjectToIDispatch45"); Выполнитель=Врап.ПолучитьАсинхронныйВыполнитель(); ДобавитьОбработчик Выполнитель.ПриОкончанииВыполненияЗадачи, ПриОкончанииВыполнения; Обработчик события выглядит так Процедура ПриОкончанииВыполнения(Задача,ДанныеКЗадаче) // Обязательно нужно отлавливать ошибку в 1С // Иначе она передается в .Net где обрабатывается там Попытка Так как задача может завершиться с ошибкой Мы должны проверить, и если ошибка нужно предпринять какие то действия Если (Задача.IsFaulted) Тогда // Ошибка выполнения Сообщить("Ошибка "+Врап.ВСтроку(Задача.Exception)); Сообщить("Данные к задаче "+Врап.ВСтроку(ДанныеКЗадаче)); иначе Сообщить("=====Выполнена задача ===="); Сообщить("Данные к задаче "+Врап.ВСтроку(ДанныеКЗадаче)); Сообщить(Врап.ВСтроку(Задача.Result)); КонецЕсли; Исключение Сообщить("Ошибка в процедуре"); Сообщить(ОписаниеОшибки()); КонецПопытки КонецПроцедуры Вызываем задачу так HttpClient=Врап.ПолучитьТипИзСборки("System.Net.Http.HttpClient","System.Net.Http.dll"); Клиент=Врап.СоздатьОбъект(HttpClient); Задача=Клиент.GetStringAsync("https://msdn.microsoft.com/ru-ru/library/hh551745(v=vs.118).aspx"); Выполнитель.Выполнить(задача,ТекущаяДата()); Вторым параметром можно передавать любые данные, что бы понять какая задача выполнена и что с ней делать, так одновременно может работать множество задач Например АсинхМетоды = Врап.СоздатьОбъект(КлассДляТестаАсинхронныхМетодов); Для сч=1 по 10 Цикл задача=АсинхМетоды.ДолгаяЗадача(Строка("Задача "+сч)); Выполнитель.Выполнить(задача,сч); КонецЦикла |
|||
47
Serginio1
28.01.16
✎
11:48
|
(45) Я описываю все примеры в
NetObjectToIDispatch.docx АсинхронноеВыполнениеМетодовВ1С.docx ОберткаДляНетовскихСобытий.docx 1СMessenger.docx |
|||
48
Serginio1
28.01.16
✎
11:55
|
46+ Форматированный вариант http://forum.infostart.ru/forum24/topic145271/message1495299/?result=edit#message1495299
|
|||
49
Cyberhawk
28.01.16
✎
13:28
|
(47) Я тебе про статью на ИС - сделать для примеров, описанных в ней, заголовки и список/навигацию. Надеюсь, с третьего раза ты все-таки въедешь...
|
|||
50
Serginio1
28.01.16
✎
13:46
|
(49) Спасибо. Понял.
Кстати я тут народ спрашиваю какие лучше примеры привести, что бы было использовать в повседневной жизни и при этом изучить классы .Net . Как пользоваться документацией, поиском на том же http://stackoverflow.com/ |
|||
51
Serginio1
28.01.16
✎
15:01
|
Апну. А то вдруг, кто пропустил сиё чудо.
|
|||
52
Адинэснег
28.01.16
✎
15:13
|
лучеб жаву учили
|
|||
53
Garykom
гуру
28.01.16
✎
15:24
|
(52) кто знает C# И .Net, тот уже на 80% знает java и JRE|JDK
|
|||
54
СвинТуз
28.01.16
✎
15:48
|
а классы это что?
объект::позовипапу() тоска какая то ) |
|||
55
Serginio1
28.01.16
✎
16:02
|
(52) И жабу учим, только вот Нетовские легче использовать в 1С без обертки.
(54) В 1С классы это документы, справочники и соответственно их наследники конкретные классы. За статические методы и свойства например документов отвечают менеджеры ДокументМенеджер.<Имя документа> За методы и свойства объектов ДокументОбъект.<Имя документа> Так, что в 1С та же тоска |
|||
56
Serginio1
28.01.16
✎
16:03
|
(52) И жабу учим, только вот Нетовские легче использовать в 1С через комовскую оберткой.
|
|||
57
СвинТуз
28.01.16
✎
16:10
|
(55)
конечно только наследования нет ? |
|||
58
Serginio1
28.01.16
✎
16:12
|
(57) На самом деле есть абстрактный документ, от которого все наследуются.
http://catalog.mista.ru/public/393228/ |
|||
59
Serginio1
28.01.16
✎
16:13
|
58+ А все остальные sealed
https://msdn.microsoft.com/ru-ru/library/ms173150.aspx |
|||
60
СвинТуз
28.01.16
✎
16:17
|
(59)
в с++ можно вызвать метод печать класса а можно вызвать этот же метод родительского класса 1с это конструктор, для людей знающих предметную область и 1с все быстрее шагает в эту сторону |
|||
61
Карупян
28.01.16
✎
16:19
|
(60) ты уверен, что знаешь куда шагает 1с?
|
|||
62
СвинТуз
28.01.16
✎
16:19
|
(61)
нет |
|||
63
СвинТуз
28.01.16
✎
16:21
|
но отчеты можно уже не программировать а настраивать
другое дело , что видал я такие отчеты ... знать нужно все то же самое что на 7.7 что на 8.3 люди с удивлением для себя открывают на 8.3, то что в 90-е было в порядке вещей на языках более низкого уровня |
|||
64
СвинТуз
28.01.16
✎
16:22
|
нынешние коучеры
переписывают информацию из БОЛ ... |
|||
65
СвинТуз
28.01.16
✎
16:23
|
учителя от 1с
просто народ не знает где корни ... многие кроме 8.3 не видели ничего |
|||
66
Serginio1
28.01.16
✎
16:23
|
(60) То же самое и в 1С.
А например .Net шагает в сторону функциональщины, но основанной на классах. Просто это зарыто глубоко и его не видно. Но это не значит, что классов нет. (63) Программировать все равно нужно. Использование классов .Net просто расширяет возможности 1С. Только и всего |
|||
67
Карупян
28.01.16
✎
16:24
|
Мне кажется и ооп рано или поздно будет в 1с
|
|||
68
Карупян
28.01.16
✎
16:24
|
а может и вообще на жаву перейдут
|
|||
69
Карупян
28.01.16
✎
16:25
|
(68) вон уже сервер начали на жаву переписывать
|
|||
70
Serginio1
28.01.16
✎
16:25
|
(68) А может и на .Net он тоже кроссплатформенный. А могут и JS или TS.
|
|||
71
Карупян
28.01.16
✎
16:33
|
(70) см (69) УЖЕ начали, а именно сервер 8.4
|
|||
72
Тoлько_
Просмотр 28.01.16
✎
16:36
|
(68) Это будет лучшее, что делала фирма 1С со времен платформы 7.7.
|
|||
73
Masquerade
28.01.16
✎
16:37
|
(67)
Уж скорей бы. |
|||
74
Masquerade
28.01.16
✎
16:37
|
(68)
Увы конечно, но уж хотя бы java |
|||
75
Карупян
28.01.16
✎
16:38
|
(73) "скорей" в терминах 1с - это лет 10
|
|||
76
Музон Хиггса
28.01.16
✎
16:41
|
(60) >> в с++ можно вызвать метод печать класса
а можно вызвать этот же метод родительского класса А можно и в ногу стрельнуть #include <iostream> class Foo { public: int x; virtual void print(); }; class Bar: public Foo { public: int y; virtual void print(); }; void Foo::print() { std::cout << "x: " << this->x << '\n'; } void Bar::print() { std::cout << "x: " << this->x << " y: " << this->y << '\n'; } void print(Foo foo) { foo.print(); } void print2(Foo &foo) { foo.print(); } void print3(Foo *foo) { foo->print(); } int main() { Bar bar; bar.x = 5; bar.y = 10; print(bar); print2(bar); print3(&bar); } |
|||
77
Garykom
гуру
28.01.16
✎
16:47
|
(72) как то попытался открыть проект в еклипсе, на нетбенсе он у меня открывался 1 минуту
в эклипсе просто надоело ждать, снес |
|||
78
Garykom
гуру
28.01.16
✎
16:47
|
(77)+ это я к чему
неважно на чем, один фиг испоганить чтобы тормозило смогут 1С сча на C++ написаны и что? |
|||
79
Карупян
28.01.16
✎
17:01
|
(77) у тебя 16 гиг памяти есть? )))
|
|||
80
Serginio1
28.01.16
✎
17:07
|
(71) От того, что они движок напишут на Java, на язык 1С я думаю мало повлияет. А вот если бы приняли за основу языка 1С аналог TypeScript то это дало бы бОльший эффект как для клиента, так и для сервера, так как там псевдотипизация существует. Меньше ошибок, большая скорость набора за счет интеллисенсе, ну и главное замыкание да и асинхронность вещь нужная
|
|||
81
Serginio1
28.01.16
✎
17:12
|
||||
82
Музон Хиггса
28.01.16
✎
17:20
|
||||
83
Serginio1
28.01.16
✎
17:24
|
(82) Кстати а есть питон с типизацией. У TS мне нравится псевдотипизация
|
|||
84
Garykom
гуру
28.01.16
✎
17:26
|
(79) на домашнем да 16 гигов, на ноуте 4
|
|||
85
Музон Хиггса
28.01.16
✎
18:01
|
||||
86
Музон Хиггса
28.01.16
✎
18:03
|
(79) Да ну! Хватит и 8-ми. )
|
|||
87
Serginio1
28.01.16
✎
18:09
|
(85) Спасибо. Интересно.
|
|||
88
Garykom
гуру
28.01.16
✎
18:15
|
ненавижу питон... тупице который придумал синтаксис конструкций языка основывать на пробелах/табуляции
чтоб ему вечно после html/doc со сменой выравнивания прогу запустить пытаться на python |
|||
89
Музон Хиггса
28.01.16
✎
18:22
|
(88) https://ru.wikipedia.org/wiki/ABC_(язык_программирования)
Автор: Leo Geurts, Lambert Meertens (англ.), Steven Pemberton (англ.); Центр математики и информатики |
|||
90
Garykom
гуру
28.01.16
✎
18:24
|
(89) так их несколько таких было "теоретиков"???
сначал трое и потом еще их ученик? Интересные факты ABC часто связывают с Python, так как разработчик последнего — Гвидо ван Россум, — первоначально, в 1980-е годы, работал над ABC[3][4][5]. |
|||
91
Музон Хиггса
28.01.16
✎
18:30
|
На практике с отступами нигде проблем не возникает, а вот листинги из-за отсутствия скобок чище и короче.
|
|||
92
Garykom
гуру
28.01.16
✎
18:35
|
(91) угу особенно когда на практике может быть до 10 вложенных конструкций
|
|||
93
Музон Хиггса
28.01.16
✎
18:36
|
(92) Не может.
|
|||
94
Карупян
28.01.16
✎
18:37
|
Lisp vs Python
Кто кого? ))) |
|||
95
Музон Хиггса
28.01.16
✎
18:41
|
(94) Есть достаточно языков намного более мощных чем яваскрипт/бэйсик. Так что не важно.
|
|||
96
Карупян
28.01.16
✎
18:42
|
(95) ты не понял шутки
|
|||
97
Garykom
гуру
28.01.16
✎
18:52
|
(94)
Вопрос: чем lisp отличается от xslt? Ответ: степенью окаменелости |
|||
98
Masquerade
29.01.16
✎
11:57
|
(75)
В точку, lol |
|||
99
Serginio1
29.01.16
✎
14:57
|
Послеобеденный, пятничный ап
|
|||
100
Serginio1
29.01.16
✎
16:26
|
Дааа скучная пятница. Может у кого вопросы есть.
|
|||
101
Музон Хиггса
29.01.16
✎
17:13
|
Чудес не бывает.
|
|||
102
Serginio1
29.01.16
✎
17:19
|
Чудес про, что? Кстати многие оценили статью в том числе и основную. Потихоньку народ заинтересовывается. Я подымаю для того, что бы народ по ссылкам скачал разработку, а то на инфостарте только за деньги
|
|||
103
Garykom
гуру
29.01.16
✎
18:06
|
(102) Инсталлятор для ВК то будем ваять?
Нужно продумать в какую папку ставить %ProgramFiles% или еще куда https://ru.wikipedia.org/wiki/Переменная_среды_Windows Как будет каталог называться и как внутри хранить dll? Что с разными версиями делать, затирать при установке новой старые или нет? |
|||
104
breezee
29.01.16
✎
18:42
|
ОФФ!
Подскажите, что может .NET? Хочу обращаться к API сайтов, может ли мне .NET в этом помочь? |
|||
105
Garykom
гуру
29.01.16
✎
18:43
|
(104) угу
|
|||
106
Garykom
гуру
29.01.16
✎
18:44
|
(105)+ если есть примеры вызовов API на C#/.Net то никаких проблем
|
|||
107
breezee
29.01.16
✎
18:44
|
(105) Спасибо, а где примеры такой реализации посмотреть? Можно не на 1с, можно не на русском.
|
|||
108
Garykom
гуру
29.01.16
✎
18:45
|
(107) так это нужно знать какой сайт ))
|
|||
109
breezee
29.01.16
✎
18:48
|
(108) Любой, хоть гугл, яндекс, рбк. Просто реализацию подключение, само описание APi на сайтах посмотрю
|
|||
110
Garykom
гуру
29.01.16
✎
18:53
|
(109) ну там же и посмотри как на C# это в примерах
https://tech.yandex.ru/direct/doc/dg-v4/examples/sc-json-docpage/ |
|||
111
breezee
29.01.16
✎
18:55
|
(110) Спасибо!
|
|||
112
Serginio1
29.01.16
✎
19:32
|
(109) Обычно у них примеры на нескольких языках
https://developers.google.com/google-apps/calendar/quickstart/dotnet |
|||
113
Serginio1
30.01.16
✎
09:08
|
Выложил ссылку обработки для работы с окнами WinForms и WPF в Управляемых формах.
http://files.rsdn.ru/19608/%d0%a2%d0%b5%d1%81%d1%82%d0%92%d0%9a%d0%a3%d0%a4.zip |
|||
114
Serginio1
30.01.16
✎
09:11
|
Можно на форме использовать ActiveX компоненты, а можно и любые визуальные компоненты. То есть расширить функционал Управляемового приложения
|
|||
115
Necessitudo
04.02.16
✎
16:01
|
А можно как-то использовать через эти обертки какой-нибудь orm (тот же Entity Framework)?
|
|||
116
Serginio1
04.02.16
✎
16:05
|
(115) Entity Framework можно, а вот с Linq to EF сложнее
Но можно использовать динамическую компиляцию например используя Scripting API Динамическая компиляция для использования .Net событий в 1С |
|||
117
Garykom
гуру
04.02.16
✎
16:21
|
(116) это с 0 не понять
нужно нечто простое для 1С-ников )) типа скопипастил код на C#, воткнул куда то (в код 1С), и он автоматом его скомиплирует и запустит |
|||
118
Serginio1
04.02.16
✎
16:26
|
(117) Ну Scripting API это оно и есть.
Просто я создаю делегат для передачи параметров В принципе я могу создавать класс и затем определять нужные свойства. И я привел примеры которых нет в https://github.com/dotnet/roslyn/wiki/Scripting-API-Samples#exprstrong |
|||
119
Serginio1
04.02.16
✎
16:27
|
(117) Ну кто знает, что такое Entity Framework уже не с 0 ля
|
|||
120
Mafoni
04.02.16
✎
16:47
|
(119) Serginio1 - скайп дай плиз свой - есть пара вопросом по твоим наработкам
|
|||
121
Serginio1
04.02.16
✎
16:51
|
(120) Отправил
|
|||
122
Shamandafil
12.02.16
✎
09:56
|
Пытался получить местоположение специальных папок ОС:
Окружение = ПолучитьТип("System.Environment"); СпецПапки = ПолучитьТип("System.Environment+SpecialFolder"); Место = Окружение.GetFolderPath(СпецПапки.LocalApplicationData); Методом научного тыка выяснил, что к типу System.Environment.SpecialFolder , можно добраться с помощью знака + , правильно ли это? Что за странный синтаксис? |
|||
123
Garykom
гуру
12.02.16
✎
10:23
|
(122) гениально обнаружили как добираться до перечислений (не типов)?
https://msdn.microsoft.com/ru-ru/library/system.environment.specialfolder(v=vs.110).aspx |
|||
124
Shamandafil
12.02.16
✎
10:31
|
Разумеется, я ориентировался на эту статью.
В статье по ссылке "Environment.SpecialFolder", а не "System.Environment+SpecialFolder". А что, перечисление это не тип уже? ( https://msdn.microsoft.com/ru-ru/library/system.enum(v=vs.110).aspx ) |
|||
125
Serginio1
12.02.16
✎
10:52
|
(122) Да это вложенный тип.
https://msdn.microsoft.com/ru-ru/library/ms173120.aspx Если не знаешь строковое представление типа то проще typeof(System.Environment.SpecialFolder).ToString() |
|||
126
Serginio1
12.02.16
✎
10:56
|
||||
127
Serginio1
12.02.16
✎
11:00
|
||||
128
Serginio1
12.02.16
✎
11:07
|
125+ Правильнее конечно
typeof(System.Environment.SpecialFolder).FullName |
|||
129
Shamandafil
12.02.16
✎
11:09
|
(125) Актуальной студии нет, потому что-то похожее проделал через отладчик 1С и свойства типа Environment (рефлексия). Про вложенные типы я знаю, вопрос в способе обращения к ним.
(128) ТипКакОбъект(Окружение).FullName возвращает "System.Environment" |
|||
130
Serginio1
12.02.16
✎
11:17
|
А
ТипКакОбъект(СпецПапки).FullName Выдаст System.Environment+SpecialFolder |
|||
131
Serginio1
12.02.16
✎
11:19
|
А на счет VS то есть торренты и бесплатная Community
https://www.visualstudio.com/ru-ru/downloads/download-visual-studio-vs.aspx |
|||
132
Serginio1
12.02.16
✎
11:32
|
131+ ну и всегда можно обратиться в эту ветку
|
|||
133
ejikbeznojek
16.02.16
✎
14:10
|
А случайно нет какого-нибудь примера работы с гугл или яндекс картами?
|
|||
134
Serginio1
16.02.16
✎
14:20
|
(133) Ну недолго из примеров сварганить
https://github.com/google/google-api-dotnet-client |
|||
135
Serginio1
16.02.16
✎
14:24
|
134+ В большинстве случаев проще использовать Готовые нетовские формы используя готовый код и передавать данные в 1с
http://catalog.mista.ru/public/457898/ |
|||
136
Serginio1
16.02.16
✎
14:32
|
||||
137
Хранимая Процедура
16.02.16
✎
14:49
|
1Сники обсуждаютв ООП и паттерны проектирования там, где их нет.
Что-то наподобие ООП было в 1С++. И все. |
|||
138
Garykom
гуру
16.02.16
✎
15:02
|
(137) с тем же успехом .Net мог быть в процедурно-функциональном стиле сделан, без классов
и причем тогда ООП и тем более паттерны, про которые речи нет совсем и вообще они из другой оперы |
|||
139
Serginio1
16.02.16
✎
15:13
|
(137) Здесь обсуждается как сделанное с помощью ООП применять в 1С. Только и всего.
|
|||
140
Garykom
гуру
16.02.16
✎
18:09
|
Кстати ТС заново наваял Elisy .Net Bridge
v8: v8: Elisy .Net Bridge 4 для 1С:Предприятие 8.2 (платное ПО) И бесплатно раздает то что они продавать пытаются А люди еще и кушать не хотят халяву... |
|||
141
Serginio1
16.02.16
✎
18:19
|
(140) У нас разный подход. У него обертка через ВК, у меня через IReflect. Но суть та же, доступ через Reflection. Просто на халяву мало кому нужно. Но самое главное есть кому нужно!
|
|||
142
Garykom
гуру
16.02.16
✎
18:31
|
(141) судя по комментариям http://catalog.mista.ru/public/20035/ основной массе 1С-ников не нужны инструменты для создания удочек для ловли рыбы
нужна или сразу рыба или хотя бы сеть готовая получается выход только готовый фреймворк (набор процедур/функций) на 1С для различного функционала сделать и по заказу уже его дописывать/внедрять - иметь с этого профит |
|||
143
Serginio1
16.02.16
✎
19:38
|
(142) Я надеюсь, что с помощью моих разработок многие заинтересуются .Net и будут его использовать как в 1С, так и без неё. Программист обязан постоянно развиваться.
|
|||
144
Serginio1
20.02.16
✎
14:33
|
Очень часто приходится использовать битовую операци OR
например AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate или watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite| NotifyFilters.FileName | NotifyFilters.DirectoryName; Поэтому добавил метод OR. Теперь те же операции можно вызвать DecompressionMethods= Врап.ПолучитьТип("System.Net.DecompressionMethods"); handler.AutomaticDecompression=Врап.OR(DecompressionMethods.GZip,DecompressionMethods.Deflate) ; или NotifyFilters=врап.ПолучитьТип("System.IO.NotifyFilters"); рез=Врап.OR(NotifyFilters.LastAccess,NotifyFilters.LastWrite,NotifyFilters.FileName,NotifyFilters.DirectoryName); |
|||
145
oleg_km
20.02.16
✎
14:55
|
Буквально сейчас понадобился доступ к буферу обмена:
БиблАП.ПолучитьNET().ПолучитьТип("System.Windows.Forms.Clipboard", "System.Windows.Forms").SetDataObject(значение, Ложь); |
|||
146
Serginio1
20.02.16
✎
15:12
|
(145) Спасибо. На всякий случай ссылка на описание
https://msdn.microsoft.com/ru-ru/library/system.windows.forms.clipboard(v=vs.110).aspx |
|||
147
Хранимая Процедура
22.02.16
✎
14:45
|
(138) -
> с тем же успехом .Net мог быть в процедурно-функциональном стиле сделан, без классов это ты типа так пошутил, да? |
|||
148
Garykom
гуру
22.02.16
✎
14:52
|
(147) нет никаких шуток
|
|||
149
Garykom
гуру
22.02.16
✎
14:54
|
(148)+ конечно для получения удобоваримого результата функций из к примеру массивов или чего еще, пришлось бы кучу других функций использовать
|
|||
150
sash-ml
22.02.16
✎
15:25
|
(0) асинхронные вызовы можно делать для чего угодно? например получить остатки из другой базы?
|
|||
151
Хранимая Процедура
22.02.16
✎
15:36
|
(148) - все с тобой ясно, тебе никогда не стать программистом.
|
|||
152
Garykom
гуру
22.02.16
✎
15:41
|
(151) мнение "не программистов" - эникей-админов не очень меня волнует
|
|||
153
MishaD
22.02.16
✎
15:44
|
А на новомодном российско линуксе, который наше правительство хочет всем внедрить, вместо богомерзкого виндолса ваш .Net работать будет ?
|
|||
154
Хранимая Процедура
22.02.16
✎
15:44
|
(152) - а ну, быстро, чем отличается мок от стаба?
|
|||
155
Serginio1
22.02.16
✎
15:45
|
(150) Да если использовать ADO
https://msdn.microsoft.com/en-us/library/hh211418(v=vs.110).aspx Или можно использовать Linq http://catalog.mista.ru/public/393228/ http://stackoverflow.com/questions/20946677/ef-data-context-async-await-multithreading |
|||
156
Serginio1
22.02.16
✎
15:47
|
(153) Он и так работает .Net Core, Mono
А вот с 1С только через Вэб, HTTP снрвисы |
|||
157
Garykom
гуру
22.02.16
✎
15:51
|
(154) мнение бета-тестеров тоже не сильно волнует
|
|||
158
Хранимая Процедура
22.02.16
✎
15:55
|
(157) - ну вот, ты путаешь виды тестирования.
И ты же конечно выполняешь только смоук-тесты перед отсылкой клиентам своей нетленки? |
|||
159
Garykom
гуру
22.02.16
✎
15:58
|
(158) а когда пытаются щегольнуть умными терминами не понимая основ?
|
|||
160
Хранимая Процедура
22.02.16
✎
16:00
|
(159) - если бы ты знал бы основы, то понял бы, что я имел ввиду.
|
|||
161
Хранимая Процедура
22.02.16
✎
16:01
|
а то, что ты путаешь юнит- и бета-тестирование - ту так в школу, в школу, в школу.
|
|||
162
Garykom
гуру
22.02.16
✎
16:04
|
(156) не обязательно с 1С через веб или http, можно http://catalog.mista.ru/public/300091/
|
|||
163
Garykom
гуру
22.02.16
✎
16:12
|
(160) ну кто то не в курсе что у C и C# одинаковый синтаксис, поэтому они из одного семейства как и java
"(0) - а каким боком C# является языком из семейства Си?" (161) юнит-тесты пишут программисты, а (до)школьники только бета-тестить могут |
|||
164
ДенисЧ
22.02.16
✎
16:13
|
"у C и C# одинаковый синтаксис, поэтому они из одного семейства как и java "
Ого... И тут картинка с кошкой у лампы... |
|||
165
Garykom
гуру
22.02.16
✎
16:18
|
(164) ну да, а 1С это вообще смесь паскаля/дельфи и визуал бейсика переведенная промптом ))
|
|||
166
Garykom
гуру
22.02.16
✎
16:28
|
(165)+ к примеру языки 1С 7.7 и 1С 8.Х слегка отличаются в мелочах, но они все равно "из одного семейства"
и точно так же можно считать VB6, VB.Net и VBA разными языками... или все же из одного семейства? |
|||
167
Serginio1
22.02.16
✎
16:33
|
(162) Взаимодействие между нативом и манагед кодом в виде только через COM. А вот как в линуксе не знаю. Кроме того в той разработке ограничение на используемые типы
Статические классы не поддерживаются; Конструктор должен быть без параметров; Поддерживаются только следующие типы для обмена с 1С: System.String; System.Boolean; System.Int32; System.Double; System.Byte[]; Out и ref параметры не поддерживаются в связи с тем, что не получилось это реализовать, |
|||
168
Garykom
гуру
22.02.16
✎
16:35
|
(166)+ еще про VBS(VBScript) забыл, который скриптовый встроенный Windows Script Host(WSH)
|
|||
169
Garykom
гуру
22.02.16
✎
16:45
|
(167) да использование будет неудобное и теряется смысл, будет проще нечто вроде веб сервиса выполнения кода C#+.Net http://catalog.mista.ru/public/363505/
но можно же "манипулировать" классами .net|mono путем строковых параметров в своих функциях перем1_ид = врап.СоздатьПеременную("string", "Привет, Мир!"); объект1_ид = врап.СоздатьОбъект("System.Windows.Forms.MessageBox"); врап.ВыполнитьМетод(объект1_ид, "Show", перем1_ид); ЗЫ но в mono с "System.Windows.Forms" все плохо (( |
|||
170
Хранимая Процедура
22.02.16
✎
17:03
|
разговор икспертов по программированию
|
|||
171
Garykom
гуру
22.02.16
✎
17:14
|
(170) сказал иксперт то словечкам из области тестирования
|
|||
172
Хранимая Процедура
22.02.16
✎
17:17
|
(171) - 50 проектов по ТДД, а тебе слабо?
|
|||
173
Garykom
гуру
22.02.16
✎
17:17
|
(172) проектов на чем?
|
|||
174
Хранимая Процедура
22.02.16
✎
17:27
|
(173) - C#/JS
|
|||
175
Garykom
гуру
22.02.16
✎
17:29
|
(174) случайно не "Барс" ?
|
|||
176
Хранимая Процедура
22.02.16
✎
17:30
|
(175) - неа
|
|||
177
Serginio1
22.02.16
✎
17:34
|
CLR Hosting API тоже вроде основан на COM
https://msdn.microsoft.com/Ru-ru/library/ms164336(v=vs.110).aspx https://msdn.microsoft.com/Ru-ru/library/dd380851(v=vs.110).aspx |
|||
178
Garykom
гуру
22.02.16
✎
17:42
|
(177) не совсем, он поддерживает возможности COM если требуется
|
|||
179
Serginio1
22.02.16
✎
18:01
|
(177) Остается вопрос есть ли он в .Net Core
|
|||
180
Хранимая Процедура
22.02.16
✎
22:09
|
а теперь господа, серьезный вопрос:
в настоящий момент я разрабатваю в VS 2010/Windows, а потом передаю иземения через Git на комп с Linux/Mono/MonoDevelop, там тестирую изменения и дорабатываю для Линукс и потом передаю измения обратно. Вопрос: можно ли как то упростить сабж? |
|||
181
Хранимая Процедура
22.02.16
✎
22:20
|
(169) - >ЗЫ но в mono с "System.Windows.Forms" все плохо ((
ты так говоришь, как будто у тебя 50 ПРОВАЛИВШИХСЯ портирований. И ты так говоришь, как будто ты такой крутой мегаспец и смог отрефакторить лапше-логику в Windows Forms используя Model-View-Presenter паттерн и тебе очень легко удалось все кнопочки и менюшечки на Gtk# переписать. |
|||
182
Garykom
гуру
22.02.16
✎
22:26
|
(181) а не пробовали (180) наоборот писать на Linux и тестить потом на Windows?
|
|||
183
Serginio1
22.02.16
✎
22:26
|
(180) Лучше задай этот вопрос на http://rsdn.ru/ там много спецов.
А .Net Core не пробовал на VS 2015 . Там кстати есть версия и под линукс и IOS https://code.visualstudio.com/ |
|||
184
Garykom
гуру
22.02.16
✎
22:32
|
(182)+ есть wine который "правильный" Windows
|
|||
185
Хранимая Процедура
23.02.16
✎
13:00
|
(182) - ты так пошутил?
ОК, тогда я тебе предложу конфигурацию в блокноте редактировать. |
|||
186
Masquerade
23.02.16
✎
13:05
|
(180)
После того как TFS меня задрал глюками и неочевидностью - я использую банальный Дропбокс |
|||
187
Masquerade
23.02.16
✎
13:06
|
Между домом и офисом - ну просто душа радуется после TFS.
Главное не забыть дождаться обновления, а то может по дурацки получиться. |
|||
188
Хранимая Процедура
23.02.16
✎
13:15
|
(186) - я всегда догадывался, что TFS - отстой
|
|||
189
Torquader
24.02.16
✎
01:17
|
Ребята - синтаксис языка не очень сильно определяет то, что этот язык описывает.
Синтаксис - это, скорее, удобство написания. Сейчас практически во всех языках есть понятие объекта, просто в разных случаях в это понятие заложен разный функционал. В любом случае, вместо объекта в системе реально встречается набор функций, которые определяют действия этого объекта. И только отладка в командах процессора вам покажет, что происходит там на самом деле. Другое дело, что современному программисту иногда даже полезно не знать, как то, что он напишет, транслируется в код, он может сосредоточится на самой задаче, а не на способах хранения данных. |
|||
190
Serginio1
24.02.16
✎
10:41
|
На самом деле в 7.7 есть метод
СоздатьОбъект в 8.х это Новый Все кто писал на С подобных языках знают что это конструктор объекта экземпляра класса (структуры) Другое дело, что бы увеличить возможности 1С, а значит и свои то нужно знать другие языки. Это кстати развивает мышление и помогает в решении разного рода задач. |
|||
191
Serginio1
24.02.16
✎
12:48
|
Добавлю ссылки на HTTP запросы с упаковкой ответа GZIP
Распаковка gzip строки Вот результаты запроса Распаковка gzip строки Так же ссылка на использование Gzip Распаковка gzip строки |
|||
192
Serginio1
24.02.16
✎
17:13
|
Вот здесь есть внешний отчет для использования Вацапа
http://files.rsdn.ru/19608/WhatsApp.zip |
|||
193
Garykom
гуру
24.02.16
✎
17:22
|
Есть заказ на прогу/сервис аггрегатор разных мессенджеров (вайбер, вацап, скайп, телеграм и т.д.)
Т.е. делаем отправку (одним стандартным способом) на номер телефона, а оно уходит через тот мессенджер который к этому номеру привязан и активен |
|||
194
Serginio1
24.02.16
✎
17:46
|
Я могу тебе скинуть https://github.com/mgp25/Chat-API-NET
Я делал консольное приложение и через NetNamedPipeBinding используя очереди. А ответ пересылал через Вэб сервис. |
|||
195
Shamandafil
24.02.16
✎
17:47
|
(192) Интерфейс страшный и всё через сообщить. А исходники для NET-сборки переходника не в комплекте? Или документация по многочисленным служебным SendQueryLastOnline, SendComposing, SendPaused, SendActive.
|
|||
196
Garykom
гуру
24.02.16
✎
17:56
|
(194) исходники гляну, тут смысл было бы полезно сделать некую "стандартную основу для чата/мессенджера" и 1-2 "драйвера" для вацап и вайбер к примеру
далее это выложить и уже кто захочет (ну или по заказу) к этому прикрутит другие "драйвера" для популяризации .net|mono весьма будет |
|||
197
Serginio1
24.02.16
✎
17:57
|
(192) Я его делал для тестов. Исходники здесь
https://github.com/mgp25/Chat-API-NET Сейчас запакую другие исходники |
|||
198
Serginio1
24.02.16
✎
17:59
|
(196) Чат и мессенджер http://catalog.mista.ru/public/434771/
Допилить несложно. Хочешь используй HTML или для каждой оси пиши клиента. |
|||
199
Serginio1
24.02.16
✎
18:00
|
(195) Можешь сам написать используя http://catalog.mista.ru/public/417830/
|
|||
200
Serginio1
24.02.16
✎
18:02
|
Для вацапа тебе нужно только цикл для принятия сообщений
Например я сделал partial и просто добавил класс расширение namespace WhatsAppApi { public partial class WhatsApp : WhatsSendBase { public event Action<Exception> ИсключениеВПотоке; public void ProcessChat() { var wa = this; var thRecv = new Thread(t => { while (wa != null && wa.ConnectionStatus == WhatsAppApi.WhatsApp.CONNECTION_STATUS.LOGGEDIN) { try { wa.PollMessages(); Thread.Sleep(100); continue; } catch (ThreadAbortException) { break; } catch (Exception ex) { if (ИсключениеВПотоке!=null) ИсключениеВПотоке( ex); } continue; } }) { IsBackground = true, Name = "ProcessChat" }; thRecv.Start(); } |
|||
201
Shamandafil
25.02.16
✎
13:48
|
Рихтер осуждает Sleep в цикле, когда надо дождаться какого-то события.
|
|||
202
Serginio1
25.02.16
✎
13:53
|
А чего осуждать то? Это просто отдача времени другому потока. Здесь не событийная система оповещения. Все претензии к авторам библиотеки
|
|||
203
Serginio1
25.02.16
✎
13:53
|
(201) Кстати вацап то работает?
|
|||
204
Filin
26.02.16
✎
12:39
|
Вот понимаю, что видимо вещь нужная, но как-то для меня много букв. Есть возможность на маленьком конкретном примере показать обработку событий?
Вот есть программка на с# - https://yadi.sk/d/pMW654nopXuS3 Просто получает данные из ком-порта по событию. Мне нужно в 1с аналогичным образом получить эти данные, используя класс из С#. Не могу даже начать - информации вроде много, но как-то я заблудился :) |
|||
205
Garykom
гуру
26.02.16
✎
12:47
|
(204) примерно так начать
... порт = врап.СоздатьОбъект("System.IO.Ports.SerialPort"); |
|||
206
Garykom
гуру
26.02.16
✎
12:53
|
(205)+ далее
порт.PortName = "COM4"; порт.BaudRate = 9600; порт.DataBits = 8; четность = врап.ПолучитьТип("System.IO.Ports.Parity"); порт.Parity = четность.None; ... |
|||
207
oleg_km
26.02.16
✎
13:45
|
(205) О, так дело Учителя живет.
|
|||
208
oleg_km
26.02.16
✎
13:47
|
Только что нужно на форме ввода пароля чтобы отображалась текущая раскладка клавиатуры:
Раскладка = врап.GetType("System.Windows.Forms.InputLanguage", "System.Windows.Forms").CurrentInputLanguage.Culture.TwoLetterISOLanguageName; |
|||
209
Garykom
гуру
26.02.16
✎
13:48
|
(208) да способов применения дофига
(207) вот пытаюсь ВК Native API запилить чтобы на mono тоже можно было под linux |
|||
210
Filin
26.02.16
✎
15:11
|
C:\Programs\NetObjectToIDispatch>C:\Windows\Microsoft.NET\Framework\v4.0.30319\r
egasm.exe "C:\Programs\NetObjectToIDispatch\DLLNetObjetToIDispatch45\NetObjetToI Dispatch.dll" /codebase Microsoft .NET Framework Assembly Registration Utility 4.6.1055.0 для Microsoft .NET Framework 4.6.1055.0 Ну я так понимаю - нужно зарегистрировать сначала? Вот что выдало при регистрации - c Корпорация Майкрософт (Microsoft Corporation). Все права защищены. RegAsm : warning RA0000 : Регистрация неподписанной сборки с использованием пара метра /codebase может вызвать конфликт данной сборки с другими приложениями, кот орые могут быть установлены на том же компьютере. Параметр /codebase предназначе н только для подписанных сборок. Присвойте сборке строгое имя и повторите регист рацию. Типы зарегистрированы успешно Но при попытке создать ком-объект - Ошибка при вызове конструктора (COMОбъект) врап=новый COMОбъект("NetObjectToIDispatch45"); по причине: Недопустимая строка с указанием класса |
|||
211
Garykom
гуру
26.02.16
✎
15:30
|
(210) от админа CMD запускал и регал?
с регистрацией там какие то заморочки помнится, уже намекал несколько раз автору на нужность инсталлятора еще утилита "РегистрацияКомСервера.exe" правильные пути дает для батника |
|||
212
Garykom
гуру
26.02.16
✎
15:31
|
(211)+ а и первый запуск 1С тоже от админа
|
|||
213
Garykom
гуру
26.02.16
✎
15:34
|
(210) эээ ты версию для .net framework 2 регаешь
там с "45" на конце под "net framework 4.5" |
|||
214
Garykom
гуру
26.02.16
✎
15:35
|
(213)+ отсюда качал?
http://files.rsdn.ru/19608/ФайлыNetObjectToIDispatch.zip |
|||
215
Serginio1
26.02.16
✎
15:53
|
(210) Это просто предупреждение, что сборка неподписана.
|
|||
216
Filin
26.02.16
✎
15:54
|
(214) Да вроде отсюда. Зарегить получилось (затупил и регистрировал не ту длл).
Следующий код отрабатывает нормально - врап=новый COMОбъект("NetObjectToIDispatch45"); порт = врап.СоздатьОбъект("System.IO.Ports.SerialPort"); порт.PortName = "COM1"; порт.BaudRate = 9600; порт.DataBits = 8; четность = врап.ПолучитьТип("System.IO.Ports.Parity"); порт.Parity = четность.None; СтопБит = врап.ПолучитьТип("System.IO.Ports.StopBits"); порт.StopBits = СтопБит.One; Управление = врап.ПолучитьТип("System.IO.Ports.Handshake"); порт.Handshake = Управление.RequestToSend; порт.Open(); Теперь как отловитьв 1с событие "DataReceived" ? |
|||
217
Serginio1
26.02.16
✎
15:59
|
(204) Во внешних отчетах есть ТестСобытийИзмененийВДиректории.epf
В поле Полное имя класса указываешь полное имя класса В поле Полное Имя Файла указываешь путь к сборке. И жмешь Получить описание модулей. Там будут описания на C# и для 1С. Там же лежит и TestSerialPort.epf |
|||
218
Serginio1
26.02.16
✎
16:02
|
Для гаковских сборок можно указать просто имя DLL
Например для SerialPort https://msdn.microsoft.com/ru-ru/library/system.io.ports.serialport(v=vs.110).aspx это System.Dll |
|||
219
Filin
26.02.16
✎
16:05
|
(218) Указал имя класса - System.IO.Ports.SerialPort
Получил описание чегото гдето. Что с этим описанием делать? TestSerialPort.epf смотрю. |
|||
220
Serginio1
26.02.16
✎
16:15
|
Вставляешь в обработку. Основной метод СоздатьОбертку(объект)
Создаешь свой объект и подключаешь события через вызов СоздатьОбертку(ТвойОбъект) В методах пропиши свои действия. Там будут два модуля Один через ДобавитОбработчик второй через ОбработкаВнешнегоСобытия Смотри по аналогии с TestSerialPort.epf |
|||
221
Filin
26.02.16
✎
16:22
|
Garykom, Serginio1 - спасибо !
Похоже в TestSerialPort.epf есть все что мне нужно. На тестовой машине с виртуальным портом работает отлично . Буду тестить на железе. |
|||
222
Serginio1
26.02.16
✎
16:25
|
||||
223
Shamandafil
26.02.16
✎
16:32
|
Посмотрел сборку в студии в ней почему-то 2 пространства имён одно из них NetObjetToIDispatch45, совпадает с именем ДЛЛ, в ней букв С пропущена.
|
|||
224
Serginio1
26.02.16
✎
16:37
|
(223) А в каком модуле?
|
|||
225
Serginio1
26.02.16
✎
16:39
|
Все понял. Да проект называется NetObjetToIDispatch45
а namespace NetObjectToIDispatch45 Глазастый! Спасибо. Но менять уже не буду |
|||
226
Filin
26.02.16
✎
16:42
|
Serginio1 ,а как остановить обработку события? Или как правильно закрыть обработку?
У меня при закрытии начинает вываливать кучу ошибок. |
|||
227
Shamandafil
26.02.16
✎
16:42
|
Я его исправить хотел, но плохо когда класс называется как и пространство имён.
|
|||
228
Filin
26.02.16
✎
16:43
|
+ (226) Вот что пишет -
Не обработано событие DataReceived Исключение System.Runtime.InteropServices.COMException (0x000003E9): {Форма.Форма.Форма(50)}: Ошибка при вызове метода контекста (ReadExisting) Неизвестная ошибка в System.Windows.Forms.Control.MarshaledInvoke(Control caller, Delegate method, Object[] args, Boolean synchronous) в System.Windows.Forms.Control.Invoke(Delegate method, Object[] args) в System.Windows.Forms.WindowsFormsSynchronizationContext.Send(SendOrPostCallback d, Object state) в ВрапперДляSystem_IO_Ports_SerialPort.<>c__DisplayClass1b.<ОтослатьСобытиеСПараметром>b__18() в c:\Users\User\AppData\Local\Temp\htq00hr3.0.cs:строка 101 Данные { sender = System.IO.Ports.SerialPort, e = System.IO.Ports.SerialDataReceivedEventArgs } |
|||
229
Garykom
гуру
26.02.16
✎
16:47
|
(228) простейше "УдалитьОбработчик"
|
|||
230
Serginio1
26.02.16
✎
16:52
|
(226) Закрыть порт.Или есть метод
Процедура Остановить() Если watcher<>Неопределено Тогда watcher.EnableRaisingEvents = false; КонецЕсли; КонецПроцедуры |
|||
231
Serginio1
26.02.16
✎
16:54
|
А вообще
watcher.Close() или Врап.ПолучитьИнтерфейс(watcher,"IDisposable").Dispose(); |
|||
232
Filin
26.02.16
✎
16:58
|
Да! Все работает ! Супер вещщь ! Никак по другому не получалось подключить чертову железяку :)
|
|||
233
Serginio1
26.02.16
✎
16:58
|
Кроме того можно отписаться от событий
Врап.ОчиститьСобытияОбъекта(ОберткаСобытий); Ну и watcher=неопределено; ОберткаСобытий=неопределено; GC=Врап.ПолучитьТип("System.GC"); GC.Collect(); GC.WaitForPendingFinalizers(); Врап= Неопределено; |
|||
234
Serginio1
26.02.16
✎
17:00
|
(232) Значит мои труды не пропадают зря!
|
|||
235
Garykom
гуру
26.02.16
✎
17:10
|
(233) может имеет смысл методы для завершения работы в саму ВК встроить готовые?
которые заодно и все евенты того |
|||
236
Serginio1
26.02.16
✎
17:20
|
(235) Там вариаций может быть куча. Просто как шаблон
Врап.ОчиститьСобытияОбъекта(ОберткаСобытий); Врап.ПолучитьИнтерфейс(watcher,"IDisposable").Dispose(); watcher=неопределено; ОберткаСобытий=неопределено; GC=Врап.ПолучитьТип("System.GC"); GC.Collect(); GC.WaitForPendingFinalizers(); Врап= Неопределено; |
|||
237
Serginio1
15.03.16
✎
14:51
|
Понадобилоссь прописать дефолтный принтер в 7 ке
врап=СоздатьОбъект("NetObjectToIDispatch45"); врап.УстЭтоСемерка(); Registry=Врап.ПолучитьТип("Microsoft.Win32.Registry"); Ключ="Software\1C\1Cv7\7.7\ИмяБазы\V7\"+ИмяПользователя()+"\Moxel\"; Сообщить(Ключ); key = Registry.CurrentUser.OpenSubKey(Ключ); ОсновнойКлюч=СокрЛП(key.Name)+"\"; Ключи=key.GetSubKeyNames(); Перечислимый=Врап.ПолучитьИнтерфейс(Ключи,"IEnumerable"); Перечислитель=Перечислимый.GetEnumerator(); // На всякий случай приведем к Интерфейсу IEnumerator Перечислитель=Врап.ПолучитьИнтерфейс(Перечислитель,"IEnumerator"); // Теперь можем пройтись по коллекции Пока Перечислитель.MoveNext()<>0 Цикл // Врап.ВСтроку вывоит строковое представление всех типов в том числе числовые, строки, неопределено Сообщить(Врап.ВСтроку(Перечислитель.Current)); Ключ=ОсновнойКлюч+СокрЛП(Перечислитель.Current); ТекПринтер=Registry.GetValue(Ключ,"DefaultPrinter",""); Сообщить(ТекПринтер); Если (Принтер<>"") и (ТекПринтер<>"") и (Принтер<>ТекПринтер) Тогда Registry.SetValue(Ключ,"DefaultPrinter",Принтер); КонецЕсли; КонецЦикла; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |