|
Неспешно ищу работу. 1С + .Net | ☑ | ||
---|---|---|---|---|
0
Serginio1
10.05.16
✎
10:42
|
20 лет программирую на 1С и 13 на C#. Давно интегрирую .Net в 1С для расширения возможностей. Вот мои разработки http://catalog.mista.ru/profile/82159/public/
Основные это Использование сборок .NET в 1С 7.x b 8.x и . Динамическая компиляция класса обертки для использования .Net событий в 1С через ДобавитьОбработчик или ОбработкаВнешнегоСобытия Если в 8.х есть множество возможносей, то для 7.7 функционал очень скуден. Для 8.x часто испльзуется доступ к Вэб сервисам неподдерживаемыми 1С. Например Ws-протоколы и тд. Можно использовать асинхронные HTTP запросы, multipart/form-data итд. Использовать Push-уведомления. Есть множество библиотек для разбора HTML (AngleShart, Silenium) При работе с различными EDI есть уже готовые библиотеки на . Net которые можно использовать как в 7.7 так и в 8.x. В общем возможностей для интеграции огромное количество. Есть опыт программирования для ТСД на WM. Скоро появятся ТСД на Windows mobile 10 где с использованием UWP и Xamarin для других осей Знаний много, но на нынешней работе не могу и малую толику возможностей использовать. |
|||
1
Господин ПЖ
10.05.16
✎
10:43
|
шел бы в чистый додиез...
|
|||
2
Serginio1
10.05.16
✎
10:46
|
(1) У меня знаний в 1С куча. Как в 7.7 так и 8 ке. Жалко знаний. Тем более, что для интеграции есть куча задач. На самом деле мало программистов знающих 1С и C#
|
|||
3
Лефмихалыч
10.05.16
✎
10:50
|
(0) был бы я работодателем, я бы не понял, зачем ты мне нужен
|
|||
4
Serginio1
10.05.16
✎
10:51
|
(3) Значит у тебя нет таких задач.
|
|||
5
ДенисЧ
10.05.16
✎
10:51
|
(3) Ты не одинок. Поскольку он ищет работу тут, то большинство остальных тоже не понимают
|
|||
6
Локи-13
10.05.16
✎
10:52
|
(2) "На самом деле мало программистов знающих 1С и C#"
Мне думается вас по пальцам можно пересчитать. |
|||
7
PR пять
10.05.16
✎
10:53
|
Ни зарплатных ожиданий ни расписывания 20 лет стажа.
Присоединюсь к (3) и (5), нихрена непонятно, что кроме связки 1С с вебом, умеет ТС. |
|||
8
Карупян
10.05.16
✎
10:54
|
А со старой работой что?
|
|||
9
Лефмихалыч
10.05.16
✎
10:55
|
(4) я тебе о том и говорю, что из сабжа не понятно, для каких задач ты нужен.
|
|||
10
PR пять
10.05.16
✎
10:58
|
(9) Почему непонятно? Понятно. Просто это смешно, если человек за 20 лет только это и делал. С вероятностью 100% это не так.
|
|||
11
Господин ПЖ
10.05.16
✎
11:00
|
(2) ты сейчас обиделся, но тебе люди правильную вещь пишут
с точки зрения работодателя для 1с-ника ты "не понятен". платить за оверквалифед никому не интересно, да и глубокие знания по c# мало кому из них надо знаний по 1с жалко... всем чего-то жалко. кому-то дельфи, кому-то плюсов, кому-то убитого времени на бюджетке для 7.7 |
|||
12
Serginio1
10.05.16
✎
11:00
|
(8) Там в общем все сделано. Восновном консультации и мелкие доработки.
(7) Не хочу расписывать, так как интересует именно интеграция. Сейчас основное это программирование на 7.7 с 1С++ и перенос данные в 8.3 комплексную и бухгалтерию. Работал с автозапчастями с прямыми запросами для загрузки миллионых прайсов итд. |
|||
13
Карупян
10.05.16
✎
11:01
|
(12) К маньяку тогда иди )))
|
|||
14
Serginio1
10.05.16
✎
11:01
|
(9) Интеграция 1С с другими системами и увеличение функционала за счет классов .Net
|
|||
15
Карупян
10.05.16
✎
11:02
|
(14) А что кроме тебя кто-то это использует?
|
|||
16
Лефмихалыч
10.05.16
✎
11:02
|
(12) ты даже то, что тебя интересует, не расписал. И умудрился написать так, что ни кому, кроме тебя не понятно, что там тебя конкретно интересует.
Ну и готовься к тому, что всемогущий рэмбо только для решения интеграционных задач ни кому не нужен и тебе надо продавать что-то еще, кроме интеграционных трюков. |
|||
17
Карупян
10.05.16
✎
11:03
|
(16) Это фирменный стиль )))
|
|||
18
PR пять
10.05.16
✎
11:04
|
(12) Так ты сколько ищешь-то? А то на 60 можно ничего и не расписывать, да, можно просто говорить, что 1С 20 лет занимаешься и все.
|
|||
19
Звездец
10.05.16
✎
11:04
|
(14) подавляющему большинству здесь нужны умения более приземленные
|
|||
20
Новиков
10.05.16
✎
11:04
|
ТС, напиши хорошее резюме, и отправь в саму 1С. Возможно у них найдется для тебя работенка. А так, если что какой-то конторе, барыжащей ТСД, возможно нужен будет какой-то софт, но есть подозрения - что он уже у них давно написан :)
|
|||
21
Serginio1
10.05.16
✎
11:05
|
||||
22
Garykom
гуру
10.05.16
✎
11:05
|
(0) Изучи еще java и в 1С
|
|||
23
Господин ПЖ
10.05.16
✎
11:06
|
>конторе, барыжащей ТСД, возможно нужен будет какой-то софт, но есть подозрения - что он уже у них давно написан
такая контора будет ориентироваться на плюсы со знанием юникса... накуй им дотнет |
|||
24
Serginio1
10.05.16
✎
11:10
|
(20) Для ТСД как правило индивидуальный подход нужен в онлайне по Wi-Fi.
(22) У Явы не вижу премуществ применения в 1С перед .Net. Если нужно, то буду изучать. Учиться я люблю. (23) На самом деле программировать на UWP очень легко. Значительно быстрее чем на плюсах. А ТСД на андроидах знаю, а на юниксах это какие? |
|||
25
Serginio1
10.05.16
✎
11:12
|
(14) Часто обращаются по интеграции с Вацапом, парсить сайты, доступ к Вэб сервисам
|
|||
26
Garykom
гуру
10.05.16
✎
11:13
|
(24) >У Явы не вижу премуществ применения в 1С перед .Net.
Вот начнешь изучать и увидишь преимущества java, их немного но они есть и существенные. |
|||
27
Лефмихалыч
10.05.16
✎
11:13
|
>"Меня интересует то и это" "На том, на чем я пишу, мне писать легче и быстрее".
наивность сквозит прямо |
|||
28
Лефмихалыч
10.05.16
✎
11:14
|
(25) это надо было в (0) писать. Здесь уже смысла нет.
|
|||
29
Serginio1
10.05.16
✎
11:17
|
(26) Вот покажи мне аналог Использование сборок .NET в 1С 7.x b 8.x. на Java. Смыл интеграции как раз через неё
|
|||
30
Serginio1
10.05.16
✎
11:20
|
(11) Ну Delphi я забросил. По поводу интеграции 1С через .Net то таких задач огромное количество. Например те же EDI. Есть куча сервисов с библиотеками для интеграции на C#, в том числе и зарубежных, которые не знают, что такое 1С итд.
|
|||
31
Encode
10.05.16
✎
11:21
|
(0) Уходи в промышленный C#, зачем тебе эта 1С, в нее всегда вернуться успеешь если что
|
|||
32
spock
10.05.16
✎
11:23
|
(0) Нужно написать свое резюме и разместить на соответствующих площадках. В этой ветке работодателей нет, а когда они появляются, то заводят свои ветки.
|
|||
33
Serginio1
10.05.16
✎
11:23
|
(31) Я хочу и там и там. Реально полно задач как для интеграции, так и для расширения функционала. Может и найдётся кто кому это нужно. Кстати это нужно и самой 1С.
|
|||
34
Serginio1
10.05.16
✎
11:25
|
(32) Это понятно. Пока начну с мисты. В прошлый раз нашел интересную, хоть и временную работу.
|
|||
35
Garykom
гуру
10.05.16
✎
11:25
|
(29) Не смеши ладно? Могу с тем же успехом попросить показать свои сборки под ARM процы.
|
|||
36
Garykom
гуру
10.05.16
✎
11:28
|
(35)+ Эти сборки штука конечно интересная и даже в чем то гениальная, но вторичная (после элиза нет бридж).
И сильно узкоприменимая и легко заменяемая обычным кодом на 1С и обычным кодом на C# или любом другом языке хоть java хоть js. Все что можно сделать (практически) с помощью "сборок", так же легко (а иногда и легче) можно сделать без "сборок". |
|||
37
Лефмихалыч
10.05.16
✎
11:30
|
(33) даже, если и найдется, он тебя не поймет. Начни думать, о том, что ты можешь предложить, а не что тебе интересно.
|
|||
38
Господин ПЖ
10.05.16
✎
11:31
|
>Реально полно задач как для интеграции
простейшую интеграцию в состоянии сделать сам 1с-ник... достаточно сформировать действующий вэб-сервис и натравить на него любое IDE - хоть студию хоть SharpDevelop. Среда сама нарисует все классы для работы. Ну и соответственно скомпилить кусок кода на c# дергающее за сервис сможет даже шимпанзе |
|||
39
Serginio1
10.05.16
✎
11:33
|
(35) Покажи как их легко интегрировать для 1С?
Я начал писать её для интеграции с вэб сервисами, где был выбор делать COM для каждого класса или, сделать автоматическую обертку через IReflect . Через IReflect это делать оказалось значительно проще. >так же легко (а иногда и легче) можно сделать без "сборок". Так COM это тоже сборка, только зарегистрированная в системе. |
|||
40
Serginio1
10.05.16
✎
11:38
|
(38) Вот для примера
.Net в 1С. На примере использования HTTPClient,AngleSharp. Удобный парсинг сайтов с помощью библиотеки AngleSharp, в том числе с авторизацией аля JQuery с использованием CSS селекторов. Динамическая компиляция Там для каждого страницы нужен свой алгоритм. При этом внутриразбора используется огромная куча классов. https://github.com/AngleSharp/AngleSharp Например если раньше я писал сначала на C# потом переводил в 1С, то сейчас парсинг сайтов пишу напряму в 1С с использование классов AngleSharp |
|||
41
Serginio1
10.05.16
✎
11:44
|
Вот еще пример
1C Messenger для отправки сообщений, файлов и обмена данными между пользователями 1С, вэб страницы, мобильными приложениями а ля Skype, WhatsApp Там используются Asp.Net MVC, C# клиент, web клиент (HTML с JS для событий и остылки сообщений), андроид клиент 1С клиент использует C# клиент с динамической компиляцией комовских событий. Все очень легко и доступно. |
|||
42
Sabbath
10.05.16
✎
11:45
|
(0) красавчик, чо
|
|||
43
Карупян
10.05.16
✎
11:45
|
(41)эх не умеешь ты продавать ни себя ни свой продукт
|
|||
44
Serginio1
10.05.16
✎
11:50
|
(43) Зато программировать умею. Проблема в основном конечно во мне. Мне тяжело донести премущества своих наработак. Например в среде .Net не понимают зачем 1С, а в среде 1С не понимают зачем .Net. Так непонятно где я свой среди, а где чужой среди своих
|
|||
45
Garykom
гуру
10.05.16
✎
11:55
|
(39) 1. Классика через сервисы в обе стороны http://www.javaportal.ru/articles/interaction_Java_with_1c_part2.html
Если 1С77 то ВК заюзать для веб сервисов или просто http. 2. Через ODBC/JDBC http://interprocom.ru/articles/1c/-/asset_publisher/SqY1/content/использование-jdbc-драивера-для-доступа-к-информации-1с?redirect=http%3A%2F%2Finterprocom.ru%2Farticles%2F1c%3Fp_p_id%3D101_INSTANCE_SqY1%26p_p_lifecycle%3D0%26p_p_state%3Dnormal%26p_p_mode%3Dview%26p_p_col_id%3Dcolumn-3%26p_p_col_count%3D1 3. Снова классика JNI 4. Любые библиотеки реализации COM для JAVA и аналог вашей любимой "сборки" |
|||
46
Serginio1
10.05.16
✎
12:05
|
(45) Угу для того, что бы написать парсер HTML, я должен писать вэб сервис, отдельный COM. Еще раз почитай внимательно 39, 40. Есть уже готовые классы. Их не надо обертывать через COM, Вэб сервисы. Я это проходил, где под каждую мелочь нужно писать свою DLL, регистрировать её.
Мало того как с вэб сервисами нужно еще делать COM оберку для каждого класса. По поводу ODBC/JDBC покажи аналог Code First и Linq to EF на примере 1С версии 7.7 и 8.3 часть I |
|||
47
Serginio1
10.05.16
✎
12:07
|
46+ При этом в большинстве случаев я не пишу и строчки на C#
|
|||
48
Карупян
10.05.16
✎
12:09
|
(46) Так работу не найдешь
|
|||
49
Serginio1
10.05.16
✎
12:14
|
(48) Ну дык http://job.mista.ru/users.php?id=9404 то её и не предлагает. А, что не так?
|
|||
50
DmitrO
10.05.16
✎
12:21
|
(49)я знаю где ты нужен, напиши мне в скайп dmitro-75 или на почту
|
|||
51
Serginio1
10.05.16
✎
12:22
|
46+ Многие библиотеки используются на сервере. Что бы добавить COM нужно выгрузить библиотеку из процесса. Что не всегда возможно. Нужно останавливать сервер. Заменять DLL.
При написании кода на 1С с использованием сборок, таких проблем нет. |
|||
52
Drac0
10.05.16
✎
12:23
|
(2) "На самом деле мало программистов знающих 1С и C#"
Ты сам описал свою проблему. Если работодатель тебя возьмет, ты ему построишь инфраструктуру 1С+.Net, а потом уволишься, уедешь, умрешь и т.д., то где он будет искать спеца на замену? Ни один адекватный работодатель не пойдет на такой риск. |
|||
53
Serginio1
10.05.16
✎
12:24
|
(50) Спасибо, написал
|
|||
54
Serginio1
10.05.16
✎
12:26
|
(52) На самом деле много C# стов которые легко разберутся в коде. 1С не так сложен, а на примерах легко что либо подкорректировать.
|
|||
55
Serginio1
10.05.16
✎
12:29
|
54+ Кстати многие 1С программисты ко мне обращаются и с помощью C# программистов решают свои проблемы.
|
|||
56
antgrom
10.05.16
✎
12:32
|
(0) ты говоришь с работодателем на не понятном ему языке. Используешь термины , которыми предполагаемый работодатель не заморачивается.
Говори глобальнее , проще и доступнее , о проблемах работодателя , которые ты можешь решить. |
|||
57
Господин ПЖ
10.05.16
✎
12:33
|
>ты говоришь с работодателем на не понятном ему языке
смотря кто работодатель... может автор ориентируется на софтостроительные конторы или интеграторы |
|||
58
Drac0
10.05.16
✎
12:35
|
(54) И много C# программистов захотят заниматься 1С? Сколько придется накинуть, чтобы это желание появилось, когда будут срочно искать замену?
(55) Не исключаю. Картины это не меняет. ИМХО, у тебя один шанс заниматься интересным: фирма, которая уже работает с C# и 1С. Либо забыть про одно из них. |
|||
59
Serginio1
10.05.16
✎
12:36
|
55+ Проблема в том, что 1С ник не знает .Net, а C# нет никакого дела до 1С. Но на вдвоем они легко решают задачу с помощью NetObjectToIDispatch45
|
|||
60
Serginio1
10.05.16
✎
12:42
|
(58) Найти программиста C# для доработки не проблема. Их полно. Изучать 1С ему не нужно. Нужно только знать синтаксис, который прост.
|
|||
61
Serginio1
10.05.16
✎
12:42
|
Это как подправить DLL
|
|||
62
Господин ПЖ
10.05.16
✎
12:45
|
(60) ну вот ты своими руками уронил ценник до 30 тыс. в мес
|
|||
63
Drac0
10.05.16
✎
12:47
|
(60) Т.е. вместо одного специалиста, надо будет периодически искать фрилансера под C#? Это работодателю надо?
Ты энтузиаст, это прикольно и интересно, но у бизнеса "прикольно" и "интересно" не котируются, бизнес управляет рисками. |
|||
64
Serginio1
10.05.16
✎
12:52
|
(63) Ну во первых у меня есть полно 1С ников для которых классы .Net ничем не отличаются от COM объектов. И там и там есть описание. Если нужно увеличить функционал через COM Dll тебе так или иначе нужен человек знающий сомпилируемые языки.
|
|||
65
Serginio1
10.05.16
✎
12:53
|
(62) Да хоть до 20. Главное, что бы пользовались.
|
|||
66
Serginio1
10.05.16
✎
12:54
|
64+ И надеюсь, что буду работать в команде единомышленников
|
|||
67
Лефмихалыч
10.05.16
✎
13:03
|
(57) даже для них слишком мало конкретики
|
|||
68
Serginio1
10.05.16
✎
13:05
|
(63) Кстати какие проблемы могут возникнуть у 1С ка например при использовании Строка в дату
http://catalog.mista.ru/public/434345/ там всего одна функция Дата = DateTime.ParseExact ( "10 февраля 1978", "dd MMMM yyyy", ОбъектCultureInfo, DataTimeStyles.None ); |
|||
69
Garykom
гуру
10.05.16
✎
13:19
|
(68) Кривые настройки системы региональные что будет?
А отсутствие или глюки .net, что бывает весьма часто? Код на 1С слегка надежнее и правильный код быстрее. |
|||
70
H A D G E H O G s
10.05.16
✎
13:30
|
Рарус
Софтпоинт Катран Таже 1С |
|||
71
Serginio1
10.05.16
✎
13:40
|
(69) ОбъектCultureInfo на что?
(70) Спасибо попробую им отправить. |
|||
72
Serginio1
10.05.16
✎
13:41
|
(69) Глюков .Net нет по сравнению с глюками 1С
|
|||
73
Garykom
гуру
10.05.16
✎
13:42
|
(71) >ОбъектCultureInfo на что?
Ну вот и не надо преуменьшать сложность для 1С-ника, приведенный код сильно порезан а полный для понимания сложнее. |
|||
74
ptiz
10.05.16
✎
13:47
|
(68) Очень специфическая задача. Сам придумал или на практике столкнулся? :)
|
|||
75
Serginio1
10.05.16
✎
13:50
|
(73) А я ссылку же специально даю что бы посмотреть. Смысл в том, что нет различия использовать COM объект и класс .Net
Есть документация и там и там https://msdn.microsoft.com/ru-ru/library/ms131038(v=vs.110).aspx Просто ей нужно уметь пользоваться. А когда есть примеры, то разобраться не сложно. (74) Это один из огромного количества примеров использования библиотек .Net. А написал статью не я. |
|||
76
Serginio1
10.05.16
✎
15:05
|
апну
|
|||
77
vvp91
10.05.16
✎
15:31
|
(76) Чего апать-то?
Ком, Нет и 1С никому в чистом виде, как языки и библиотеки не уперлись. Напиши, какие бизнес-проблемы решал, какие умеешь решать. Напиши, с какими объемами данных имел дело, с каким количеством пользователей сталкивался. Напиши, какие роли в каких проектах выполнял. Напиши, какие законченные прикладные решения (блоки, подсистемы, модули) сделал, какая у них практика применения. Напиши, что у тебя с запросами, с СКД, с управляемым интерфейсом. Напиши, что у тебя с пониманием бизнес-областей, какие участки учета знаешь. Напиши, есть ли у тебя навыки проектирования корпоративных систем. Приведи примеры спроектированных систем, блоков или модулей. |
|||
78
vvp91
10.05.16
✎
15:51
|
Вот ты пишешь:
> (2) У меня знаний в 1С куча. Как в 7.7 так и 8 ке. Жалко знаний. Тем более, что для интеграции есть куча задач. На самом деле мало программистов знающих 1С и C# Вот тебе конкретная задача на "интеграцию", причем в той постановке, которая реально попадет программисту 1С на выполнение: Необходима регулярная автоматическая загрузка остатков на дату Х партий товаров по упр.учету из УПП в ERP 2.1. Загружать в документы ввода начальных остатков. Поддержать обновление созданных ранее документов и отмену документов, по которым остатки обнулены. Трансляцию номенклатуры, характеристики и серии делать по принятым правилам соответствия. Все! И где ты тут со своим C#? И самое интересное - каких тебе "в ... 8 ке. Жалко знаний", которые тебе понадобятся для решения этой задачи? Расскажи! |
|||
79
PR пять
10.05.16
✎
16:00
|
(65) То есть ты готов пойти на постоянку на 20 тысяч?
|
|||
80
Serginio1
10.05.16
✎
16:30
|
(78) У меня обмен между 7.7 и 8.3 идет через XDTO. Ссылки создаются в 7.7 и записываются. Обмен очень быстрый. Но там 1С++ используется. Есть Asp.Net MVC в 7.7 там используется Linq To EF.
(79) Да. Например 20 оклад + % от сделок |
|||
81
vvp91
10.05.16
✎
16:42
|
(80) Мда, печально.
Как говорится, вопросов больше не имею. |
|||
82
Карупян
10.05.16
✎
16:44
|
(80) Во франч хочешь?
|
|||
83
Serginio1
10.05.16
✎
17:00
|
(81) Для кого печально, а для кого и радость. Работает лет 7 без проблем.
(82) Если использовать мои наработки то да. Я так понимаю, что только во франчах нужна интеграция 1С с другими системами. |
|||
84
Serginio1
10.05.16
✎
17:06
|
(80) Кстати в свое время и между 8 ками делал через XDTO. Сейчас обмен удобно делать через КД3
|
|||
85
Serginio1
11.05.16
✎
12:28
|
Ап
|
|||
86
HxC 2-Step
11.05.16
✎
12:29
|
(85) Если тебе скучно, можешь заняться моим обучением
|
|||
87
Serginio1
11.05.16
✎
12:49
|
(86) Сколько платишь?
|
|||
88
HxC 2-Step
11.05.16
✎
12:55
|
(87) Эт ты мне плати, тебе же скучно
|
|||
89
Serginio1
11.05.16
✎
12:59
|
(88) Найти чем заняться у меня проблем нет. Есть проблемы в реализации потенциала.
|
|||
90
HxC 2-Step
11.05.16
✎
13:05
|
(89) реализуй себя как педагог, я весь твой )
|
|||
91
Serginio1
11.05.16
✎
13:44
|
(90) Ок.Начнем с того, что тебе не понятно в моих разработках http://catalog.mista.ru/profile/82159/public/
|
|||
92
HxC 2-Step
11.05.16
✎
13:59
|
(91) Нене, меня с нуля и для начала с 1с
|
|||
93
HxC 2-Step
11.05.16
✎
14:01
|
(91) В твоих разработках мне не понятно чуть больше, чем всё
|
|||
94
Serginio1
11.05.16
✎
15:07
|
(92) Ну для начала советую почитать соответствующую литературу http://www.v8.1c.ru/metod/books/
|
|||
95
SanGvin
11.05.16
✎
15:14
|
(0) Ваш опыт пригодился бы.
пришлите резюме, укажите желаемую зарплату. Мыло в личке. |
|||
96
Serginio1
11.05.16
✎
15:23
|
(95) Ок
|
|||
97
Serginio1
11.05.16
✎
15:25
|
(95) А резюме типа как в шапке подойдет?
|
|||
98
lenochka-semicova
11.05.16
✎
15:45
|
(97) Я бы такое программировать ни в жизнь не стала
https://play.google.com/store/apps/details?id=com.shivandev.cosmoenergy |
|||
99
Serginio1
11.05.16
✎
16:05
|
(95) Отправил
|
|||
100
mehfk
11.05.16
✎
16:39
|
(100)
|
|||
101
Serginio1
12.05.16
✎
10:05
|
Касаемо импортозамещения и Linux. Из за отсутствия возможности использования COM интеграция происходит только через ВК и Web или HTTP сервисы.
Сейчас появлся .Net Core и Asp.Net Core которые можно использовать не только как Web или HTTP сервис, но и сделать аналог класса Delphi TSocketConnection который представляет собой аналог DCOM только через Tcp/IP. Смысл его в том, что можно вызвать любой COM объект на удаленном сервере используя Idispatch и храня объекты на сервере, а на клиента передавать структуру типа Variant где простые типы сериализуются, а для ссылочных хранится некий ID по которому можно получить объект на сервере. Можно сделать легковесный вариант на пайпах. В итоге по аналогии с NetObjectToIDispatch можно использовать любые классы .Net |
|||
102
HxC 2-Step
12.05.16
✎
10:24
|
(101) да
|
|||
103
Serginio1
12.05.16
✎
13:48
|
Апн
|
|||
104
Карупян
12.05.16
✎
13:49
|
Те что предлагали не подошли?
|
|||
105
Карупян
12.05.16
✎
13:50
|
Много просишь или что?
|
|||
106
Serginio1
12.05.16
✎
14:07
|
(104) Ну я то хочу интегрировать 1С через C#. Пока это не совсем нужно с кем разговаривал, хотя с приходом .Net Core можно и Линукс окучивать.
До ЗП не доходило |
|||
107
Pixelrat
12.05.16
✎
14:14
|
(106) Скорее всего оно мало кому нужно.
|
|||
108
Serginio1
12.05.16
✎
14:33
|
(107) Да оно нужно, просто не понимают как. На примере с вэб сервисами с хедерами. Людям проще через HTTP соединение создавать строку запроса десериализуя параметры объекты XDTO, а потом сериализовать ответ. Вместо использования WCF клиента, который даже проще использовать чем XDTO. К сожалению 1С ники мыслит доступными категориями.
И он будет тратить время на закат солнца вручную либо вообще откажется от реализации. Но это не значит, что оно не нужно. |
|||
109
Gary417
12.05.16
✎
14:45
|
(108) серелизация/десериализация это хоть и дубовая штука, но зато она железно кросплатформенная и её понятно как реализовывать на любом языке программирования
а WCF это однозначная привязка к инструментарию Net точно также не взлетели куча технологий до него, типа DCOM и все прочие реализации soap |
|||
110
Masquerade
12.05.16
✎
14:49
|
(2)
"У меня знаний в 1С куча. Как в 7.7 так и 8 ке. Жалко знаний." Джизус, да какие там знания??? Мути свой сервис. Время пришло. Иди в инфобизнес. Тема - зной. |
|||
111
Serginio1
12.05.16
✎
15:09
|
(109) > все прочие реализации soap
Да как бы Вэб сервисы цветут и пахнут. И значительно удобнее HTTP сервисов. Плюс там еще куча WS- протоколов. C DCOM просто сэволюционировал в WCF который цветет и пахнет |
|||
112
Serginio1
12.05.16
✎
15:11
|
(109) Про кроссплатформенность я написал в 108. Сейчас .Net Core кроссплатформенный.
(110) Ты даже не представляешь. Бухи советуются |
|||
113
Garykom
гуру
12.05.16
✎
15:32
|
(112) Насчет бухи советуются это показывает уровень бухов сильно ))
Ладно если вопросы как в программе лучше это сделать, а не как учет вести по законам... |
|||
114
Garykom
гуру
12.05.16
✎
15:34
|
(110) +1
С опытом самое оно делать свой сервис. ТС советую сделать сайт для новичков программистов с примерами кода (нечто вроде FAQ) как сделать нечто на 1С используя "сборки". И тут же на сайте принимать заказы на написание кода/решений с применением "сборок". |
|||
115
Serginio1
12.05.16
✎
15:47
|
(114) Так по сути мои разработки и есть сайт. Многие обращаются, помогаю. Вон Elisy уже лет 7 как продвигает, но у него это не сильно хорошо получается.
Здесь нужно как любому франчу искать клиента, доказывать и выполнять. Я все же программист, а не администратор. Да и смотрю на реалицацию ВК в 1С и сравниваю рефлексию в .Net и никак понять не могу зачем куча методов ВК 1С вместо одного InvokeMember в .Net |
|||
116
Garykom
гуру
12.05.16
✎
16:04
|
(115) Ну так найдите/наймите администратора и пусть продвигает/продает/ищет клиентов. И не забывайте периодически менять этого администратора (при первых признаках что то не то) чтобы проблем не поиметь.
А по реализации ВК все прозрачно же, упрощение использования ВК для "программистов 1С" и усложнение самостоятельного написания ВК. |
|||
117
Evpatiy
12.05.16
✎
16:16
|
Мне одинэсники сильно советских автолюбителей напоминают. Те тоже раздобыв "москвич" на нем и картошку возили в деревне, и детей на море, и щебень на дачу, и корову к ветеринару,и жену в роддом, и снег им же чистили. Вот только то для чего машины этого класса делают - передвигаться на небольшие расстояния в повседневной жизни, они как раз не пробовали, катаясь на работу на трамвае пока машина в гараже.
Я думаю что будет катастрофически тяжело обосновать необходимость скрещивания 1С с дотнетом в живых серьезных проектах. Только поделки в среде таких же фанатов. |
|||
118
Господин ПЖ
12.05.16
✎
16:17
|
>Я думаю что будет катастрофически тяжело обосновать необходимость скрещивания 1С с дотнетом в живых серьезных проектах.
скрещивание на уровне интеграции - обычное дело |
|||
119
Evpatiy
12.05.16
✎
16:26
|
>скрещивание на уровне интеграции - обычное дело
Здесь же не про обмен данными говорят. |
|||
120
Господин ПЖ
12.05.16
✎
16:28
|
(119) дай волю - 1с-ники и шутеры будут в 8.4 лепить...
жадность (больше рынка откусить) + тупость (больше ничего не знаем и инструмент под задачи выбирать - не из чего собственно) |
|||
121
Serginio1
12.05.16
✎
16:30
|
(117) А в чем проблема? Если ты можешь быстро сделать интеграцию с системами кстати написанных на .Net?
Сейчас например западные компании предоставляют .Net клиентов, для доступа к своим данным. Даже тот же REST внутри запокован, а наружу торчат объекты. Бери и используй. (119) В том числе и обмен. Но например .Net в 1С. На примере использования HTTPClient,AngleSharp. Удобный парсинг сайтов с помощью библиотеки AngleSharp, в том числе с авторизацией аля JQuery с использованием CSS селекторов. Динамическая компиляция 1С ник может легко использовать эту библиотеку где под полсотню классов. Её замучаешься писать на ВК. (120) Не верю. |
|||
122
Господин ПЖ
12.05.16
✎
16:32
|
>Не верю.
флаг в руки... иначе тебя бы тут не пинали |
|||
123
Garykom
гуру
12.05.16
✎
16:34
|
(122) Его пинают за сложность и зависть )) типа вот же человек такое умеет и из 1С прямо, а мы нифига понять не могем...
|
|||
124
Serginio1
12.05.16
✎
16:36
|
(120) Я не верю, что 1С ники будут писать шутеры лепить. Тут несколько другая специализация нужна.
А по поводу использования .Net классов, то по сути это равнозначно использованию Вэб сервисов и XDTO. Те же пространства имен, конструкторы типы |
|||
125
Evpatiy
12.05.16
✎
16:36
|
(121) > Сейчас например западные компании предоставляют .Net клиентов, для доступа к своим данным. Даже тот же REST внутри запокован, а наружу торчат объекты. Бери и используй.
Я слишком туп чтобы понять как объекты торчат наружу а архитектурный стиль запакован внутри. > HTTPClient,AngleSharp. Удобный парсинг сайтов с помощью библиотеки AngleSharp, в том числе с авторизацией аля JQuery с использованием CSS селекторов. Динамическая компиляция Сколько вам платят за каждый пост с этой фразой? |
|||
126
Господин ПЖ
12.05.16
✎
16:39
|
>Я не верю, что 1С ники будут писать шутеры лепить. Тут несколько другая специализация нужна.
образно имел ввиду будут лепить до чего дотянутся |
|||
127
Serginio1
12.05.16
✎
16:39
|
124 Да и куча COM объектов ничем не отличатся от классов .Net.
(125) Ты работаешь с классами, а не HttpСоединение. Которые кстати можно выполнять асинхронно. А кто должен платить? (126) Ясно |
|||
128
Evpatiy
12.05.16
✎
16:43
|
(127) Я думаю вы не до конца понимаете чем отличаются класс, библиотека, программный интерфейс, щаблон проектирования, архитектура ПО.
|
|||
129
Кирпич
12.05.16
✎
16:45
|
(127) да не надо это просто никому. потому что не надо. Я за всю жизнь написал десяток ВК для 1С. Если мне будет нужна ВК на .NET, я найду Serginio1 и он мне сделает. Зачем я буду изучать какую то хрень AngleSharp, если у меня лежит куча работы за которую деньги платят.
|
|||
130
Gary417
12.05.16
✎
16:47
|
(112) я не про такую кроссплатформенность, а про потенциальное портирование кода на другой язык или платформу
как из явы например коннектится к серверу заточенному на WCF? |
|||
131
Карупян
12.05.16
✎
16:48
|
(130) Что значит заточен на WCF? вроде как есть стандарты и есть библиотеки поддерживающие эти стандарты
|
|||
132
Gary417
12.05.16
✎
16:51
|
(131) в том то и дело что проще сериализовать данные и обеспечить простой доступ с каждой платформы чем тащить кучу библиотек и реализовывать довольно сложную обвязку для каждой из них
|
|||
133
Gary417
12.05.16
✎
16:52
|
грубо говоря я POST и GET запросы могу буквально из браузера серверу отправлять, а в случае с WCF надо городить вспомогательный софт
|
|||
134
Господин ПЖ
12.05.16
✎
16:54
|
(133) зачем?
wcf сервис же что-то реализует общепринятое - rest soap |
|||
135
Gary417
12.05.16
✎
16:57
|
(134) wcf реализует soap если я не ошибаюсь, а он несколько тяжелее чем rest в реализации на коленке
|
|||
136
Serginio1
12.05.16
✎
17:02
|
(133) Ну это из области закат солнца в ручную, своя сериализация десериализация. Плюс как ты реализуешь асинхронность?
WCF клиент всю рутину берет на себя. WCF вообще то может работать как через пайпы, Tcp/IP, и HTTP с различными сериализаторами. Soap это одна из разновидностей. Сжатие данных не дорогая операция по сравнению с отправкой данных по сети. |
|||
137
Gary417
12.05.16
✎
17:04
|
(136) естественно берёт на себя, и ограничивает (усложняет) создание клиентов на других языках/платформах
|
|||
138
Gary417
12.05.16
✎
17:05
|
Например, будет ли сейчас работать клиент написанный под win mobile 5 с сервисом под WCF последнего релиза? И как его туда запрограммить?
|
|||
139
Serginio1
12.05.16
✎
17:06
|
(137) А ты много программируешь на других платформах?
Иногда проще сделать отдельную реализацию под конкретную платформ, чем изобретать универсальное кроссплатформенное решение. Можно просто пойти по пути утиной типизации и давать ссылку на конкретный модуль. |
|||
140
Gary417
12.05.16
✎
17:08
|
(139) Я? Достаточно, в данный момент делаю прокект одновременно использующий Java, C#, Android и теперь ещё С++
|
|||
141
Serginio1
12.05.16
✎
17:09
|
(138) Будет если использовать SOAP. Там стандарты давно не менялись.
Кстати я делал в свое время для ТСД как в 8 ке так и в семерке через CSV. Универсально |
|||
142
Serginio1
12.05.16
✎
17:10
|
(140) Кстати, а .Net используешь Core?
|
|||
143
Serginio1
12.05.16
✎
17:12
|
(140) Так понимаю, что ты используешь как HTTP сервисы?
И зачем такая смесь? |
|||
144
Serginio1
12.05.16
✎
17:13
|
Не хватает еще ObjectiveC. Может Xamarin тебе поможет?
|
|||
145
Gary417
12.05.16
✎
17:13
|
(142) C# это у меня сайт на ASP.net
(143) смесь потому что проект на разное оборудование растянут, начиная от компа, raspberry и заканчивая контроллером arduino про Xamarin я думал, но с меня пока ASP хватит |
|||
146
Gary417
12.05.16
✎
17:16
|
вообще вместо C# был PHP т.к. я не хотел связываться с MS но требования к платформе изменились т.к. обломилась халявная 3х годовая подписка на Azure
|
|||
147
Serginio1
12.05.16
✎
17:18
|
(145) Ну ASP.net то нравится? Да и .Net с arduino работает.
https://www.google.ru/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0ahUKEwiDnd363NTMAhXTOSwKHXwVBRUQFggbMAA&url=https%3A%2F%2Fhabrahabr.ru%2Fpost%2F275439%2F&usg=AFQjCNHPZ1OU_a6vn6tE-oNFr8Yhl_n76w&bvm=bv.121658157,d.bGs&cad=rjt Я сам помню писал на 1C,Delphi,C#. Тяжело переключаться с языка. |
|||
148
Serginio1
12.05.16
✎
17:20
|
(146) Я приятелю помогал разобраться с PHP. По сравнению с asp.Net это наколеночная поделка.
|
|||
149
Gary417
12.05.16
✎
17:22
|
(147) я на C# программил когдато давно...поэтому ASP не такой и сложный
ардуину всёравно надо на С++ программировать, какая ему разница откуда к нему обращатся через компорт PHP да, наколеночная поделка так и есть. Но для ASP/JSP нужен более тяжёлый сервак. |
|||
150
Serginio1
12.05.16
✎
17:29
|
(149) Кстати сам видишь, что тяжело делать универсальные решения. Поэтому во многих случаях предпочтительнее разбить разработку под конкретную платформу. Во всяко случае под, Win будет уже рабочий вариант, а под Linux можно допиливать постепенно.
|
|||
151
Serginio1
12.05.16
✎
17:31
|
(149) Сейчас народ говорит, что хостинг стоит одинаково для asp и PHP http://rsdn.ru/?forum/job.search/6441062
|
|||
152
Gary417
12.05.16
✎
17:43
|
(150) только в моём случае рабочий вариант был под линуксом, а на ASP пришлось перейти (хотя в azure и можно поставить линух с php, но както это неправильно при таких возможностях нахаляву)
|
|||
153
Локи-13
12.05.16
✎
17:44
|
а разве в на шарпе бабла не больше, зачем тебе 1с ?
|
|||
154
Карупян
12.05.16
✎
17:45
|
(153) Он хочет нести добро в массы
|
|||
155
Serginio1
12.05.16
✎
17:55
|
153 Просто есть идеи которые хочется реализовать.
152 Кстати по поводу разных библиотек. Например сделав клиента дя 7.7 я могу использовать и для 8 ки, а для линукса так или иначе писать. Но большинство то кстати сидит на Win. Дешевле |
|||
156
Serginio1
13.05.16
✎
11:16
|
Пятница
|
|||
157
HxC 2-Step
13.05.16
✎
12:03
|
13
|
|||
158
Serginio1
14.05.16
✎
10:45
|
Начну с того, что в 1С есть технология Внешних компонент Native API https://its.1c.ru/db/metod8dev#content:3221:hdoc
которые работают как под Windows так и под Linux У меня есть компонента http://catalog.mista.ru/public/238584/ Использование сборок .NET в 1С 7.x b 8.x. Создание внешних Компонент. Суть которой оборачивание .Net объектов в Com объект с помощью создания класса, реализующего методы интерфейса IReflect Но хотелось бы прикрутить этот аналог к Linux используя ВК Native API На просторах интернета нашел ссылки вызова управляемого кода из неуправляемого http://forums.dotnetfoundation.org/t/how-to-call-a-net-core-library-from-native-code-on-linux/1576/2 Смысл идеи таков На стороне .Net выполнять метод. Параметры сериализуются в Stream. Сначала идет тип, затем данные. Параметры десериализутся и вызывается метод InvokeMember нужного типа. При передаче ссылок на объекты их нужно обернуть и сохранить в списке и в натив передавать индекс в списке. Так как параметры могут изменяться возвращаем как результат значения, так и параметры. Таким образом можно загружать любые сборки вызывать любые методы. Так как я не силен в С++ прошу направить на путь истинный или я могу помочь в интеграции натива и манагед |
|||
159
Serginio1
16.05.16
✎
14:16
|
понедельник
|
|||
160
Карупян
16.05.16
✎
14:19
|
Бросай 1С
|
|||
161
Serginio1
16.05.16
✎
14:50
|
(160) Возможно. Сейчас идея прикрутить .Net и Java к ВК Native под Линукс. Если и это будет не нужно, то возможно и брошу.
|
|||
162
Garykom
гуру
16.05.16
✎
15:12
|
(161) Может наоборот прикрутить конфигуратор 1С к .net и java ? Пишется конфа, далее нажимается кнопка... и вуяля имеем решение на .net|java полностью аналогичное решению на 1С, даже обмен данными работает ))
|
|||
163
Serginio1
16.05.16
✎
15:18
|
(162) А смысл? Под .Net там будут одни динамики. Как кстати в Java с ними?
А вок ВК прикрутить несложно, что расширит возможности Линукс. |
|||
164
Serginio1
16.05.16
✎
15:19
|
Написать аналог конфигуратора то не проблема. Проблема в типовых конфигурациях.
Можно даже Linq to EF прикрутить http://catalog.mista.ru/public/402038/ |
|||
165
Карупян
16.05.16
✎
15:21
|
что такое динамики?
|
|||
166
Serginio1
16.05.16
✎
15:23
|
||||
167
Garykom
гуру
16.05.16
✎
15:25
|
(164) Зачем аналог конфигуратора то писать? Когда он уже есть и рабочий? И умеет в текстовые файлы выгружать коонфигурацию!
Сделать чтобы нечто на .net|java могло читать эти файлы, создавать БД и выполнять код )) А писать конфигуратор это хуже чем писать велосипед когда он 1000 рубле стоит. |
|||
168
Garykom
гуру
16.05.16
✎
15:27
|
(167)+ Короче хочется http://www.oknosoft.ru/metadata/ с динамическим построением интерфейсов но не на JS а .net|java.
Будет хороший конкурент CUBA и частично совместимый с 1С. |
|||
169
Serginio1
16.05.16
✎
15:30
|
(167) Смотри 163
|
|||
170
Карупян
16.05.16
✎
15:32
|
Почему 1с все время пытаются сделать конкурента 1с?
|
|||
171
Карупян
16.05.16
✎
15:33
|
(166) В таких случаях в джаве используют тип Object
|
|||
172
Serginio1
16.05.16
✎
15:35
|
(168) Смыл в .Net и Java в типизации и компиляции. Смыл конфигурации это не метаданные, а код. А вот перевести из скриптового язка в типизированный не возможно.
(171) И может динамически выполнять методы с поздним связыванием? object obj = 24; dynamic dyn = 24; obj += 4; // так нельзя dyn += 4; // а так можно |
|||
173
Garykom
гуру
16.05.16
✎
15:48
|
(172) Из скриптового языка все прекрасно переводится и в типизированный и с дженерниками.
Причем довольно легко! Вот наоборот в скриптовый перевести обычно нереально без диких затрат времени, памяти и ресурсов процессорных. К примеру http://oscript.io/ Ему для нормального не хватает только методов обмена данными с большой 1С и методов вызова (точнее трансляции и вызова) из кода на 1С кода .Net. |
|||
174
Garykom
гуру
16.05.16
✎
15:49
|
(173)+ Хочется что, пишем по мануалу код (используя нативные классы .Net) причем на 1С (прям как в "обертке").
Далее запускаем его через 1script... |
|||
175
Garykom
гуру
16.05.16
✎
15:50
|
(174)+ Причем кроссплатформенно в т.ч. под linux и легкое взаимодействие с БД 1С.
|
|||
176
Serginio1
16.05.16
✎
16:15
|
(173) Для начала посмотри как работает подсказка по коду, когда нельзя вывести тип. Проблема с выводом типа.
А вот наоборот в .Net это легко с динамиками. (174) нативные классы .Net это как? натив это неуправляемый код например ВК Native. Но это все не актуально. А вот идея идея прикрутить .Net и Java к ВК Native под Линукс может быть востребована. Распыляться не хочется, а вот кушать охота. |
|||
177
Кирпич
16.05.16
✎
16:24
|
(176) а что такое "прикрутить .Net и Java к ВК Native под Линукс"?
чота аж интересно стало. |
|||
178
Serginio1
16.05.16
✎
16:33
|
(177) Смотри 158 и
http://ru.stackoverflow.com/questions/523386/%d0%92%d1%8b%d0%b7%d0%be%d0%b2-%d1%83%d0%bf%d1%80%d0%b0%d0%b2%d0%bb%d1%8f%d0%b5%d0%bc%d0%be%d0%b3%d0%be-%d0%ba%d0%be%d0%b4%d0%b0-net-core-%d0%b8%d0%b7-%d0%bd%d0%b5%d1%83%d0%bf%d1%80%d0%b0%d0%b2%d0%bb%d1%8f%d0%b5%d0%bc%d0%be%d0%b3%d0%be Реально сделать вызов из натиава управляемый код. А в .Net и Java сделать обертку по аналогии с v8: v8: Использование сборок .NET в 1С 7.x и 8.x И можно еще и прикрутить события по аналогии с Динамическая компиляция для использования .Net событий в 1С |
|||
179
Карупян
16.05.16
✎
16:37
|
(178) У тебя задачи интересные с точки зрения программиста, а не с точки зрения бизнеса
|
|||
180
Карупян
16.05.16
✎
16:39
|
Тебе вообще нужно из enterprise сектору уходить тогда получается.
Что-то типа яндекса или ms |
|||
181
Serginio1
16.05.16
✎
16:45
|
(179) Не прав. Например все мои задачи из реальной области применения. Что обмен ТСД с 1С по Tcp/Ip, что доступ к Вэб сервисам неподдерживаемыми 1С, парсинг сайтов итд.
Это все практические задачи. Просто одни это делают через закат солнца в ручную, другие вообще отказываются от решения. Вот например .Net в 1С. Парсинг сайтов, multipart/form-data, gzip итд легко использовать в 1С Вот другой пример интеграции но не с моей компонентой http://catalog.mista.ru/public/503059/ Просто есть конфликт 1С ники не знают классы .Net или Java. А другим нет дела до 1С. |
|||
182
Serginio1
16.05.16
✎
16:46
|
(180) Если бы поддержка .Net или Java была интегрирована в 1С, то многие стали бы использовать их для интеграции.
И кстати легче было бы продвигать на Запад. |
|||
183
Кирпич
16.05.16
✎
16:47
|
(178) если абстрагироваться от вопроса "нафиг это никому не надо", то тему "реально сделать вызов из натиава управляемый код" я ковырял еше лет 5 назад. Делал DLL на С№, которую потом использовал в Delphi. Извращался через дезассеблирование сборки и добаление в IL чего надо. В .NET можно даже скомпилированный машинный код в сборку запихнуть.
Так что шансы есть. По мне, так это нафиг никому не надо. |
|||
184
Garykom
гуру
16.05.16
✎
16:47
|
(181) Напиши книжку/учебник по .Net и Java для 1С-ников.
В стиле берем задачу и решаем ее на 1С, на .Net и на Java по очереди. И такой сборник решений вполне будет даже покупаем. |
|||
185
Кирпич
16.05.16
✎
16:48
|
С№ - C#
|
|||
186
Serginio1
16.05.16
✎
16:50
|
(184) Вот если бы 1С за это взялась, я бы им помог (широчайшая улыбка)
(185) Это я понял. |
|||
187
Gary417
16.05.16
✎
16:50
|
(184) <В стиле берем задачу и решаем ее на 1С, на .Net и на Java по очереди. >
Получится сборник Берём задачу, решаем её в экселе потом в блокноте по очереди :)) первые две страныцы эксель, дальше 300 страниц как тоже самое в блокноте сделать |
|||
188
Garykom
гуру
16.05.16
✎
16:52
|
(187) Нет нужны задачи которые на 1С просто не делаются, а вот на .Net или Java очень легко.
И там же основы C#/.Net и Java между задачками со всеми классами и т.д. |
|||
189
Serginio1
16.05.16
✎
16:52
|
(184) Ну если так.
Берем HttpСоединение и .Net в 1С. Парсинг сайтов, multipart/form-data, gzip итд Имея доступ к .Net и Java зачем нужен обрубок типа HttpСоединение |
|||
190
Serginio1
16.05.16
✎
16:53
|
189+ Берем HttpСоединение и .Net в 1С. Парсинг сайтов, multipart/form-data, gzip итд
|
|||
191
Pixelrat
16.05.16
✎
19:01
|
Знатное извращение: парсинг сайтов при помощи Java#
|
|||
192
Рэйв
16.05.16
✎
19:07
|
(0)Все не читал, может уже говорили. Но мое имхо - надо заниматься чем-то одним. И 1С и шарпы- очень большие области и у них, к сожалению очень мало точек соприкосновения. Так что всерьез занимаясь одним, ты кидаешь что то одно.
Выбор твой конечно. |
|||
193
Garykom
гуру
16.05.16
✎
19:15
|
(192) В корне неверно, так как нужны и узкие специалисты в разных отдельных отраслях. Так и нужны специалисты на стыке отраслей знающие и то и другое.
Потому что узкий при попытке выйти за пределы свое компетенции упирается в полное незнание. А универсал да хуже в обоих отраслях по отдельности но зато может сочетать и применять решения из другой отрасли. Попробуйте на 1С сделать парсинг PDF файлов к примеру. Или парсинг видео. Но если данные исходные находятся в 1С и результат надо в 1С засунуть обратно? И минимум надо 2 спецов по 1С и .Net/Java или одного универсала хватит. |
|||
194
Рэйв
16.05.16
✎
19:18
|
(193)>>Попробуйте на 1С сделать парсинг PDF файлов к примеру. Или парсинг видео.
Интересный задачи с теоритической точки зрения. С практической - мало кому вообще нужны. Я и говорил про ПРАКТИЧЕСКОЕ примененине. |
|||
195
Garykom
гуру
16.05.16
✎
19:23
|
(194) Да ну? Парсинг PDF постоянно нужен, в них биллинговые счета присылают операторы связи или банки постоянно.
Мы своих 2 года пинали чтобы начали в XLS присылать, так лучше бы они не присылали своих XSL в которых весь текст в объектах-надписях отдельных ля. А парсинг видео это типовая задача отслеживания и сравнения записей видеонаблюдения с записями СКУД и данных из учеток 1С и домена. Чтобы понять что никто не мухлюет с учетками и прочими карточками. |
|||
196
Рэйв
16.05.16
✎
19:25
|
(195)Это все намного легче делается уж точно не средствами 1С. :-)
|
|||
197
Рэйв
16.05.16
✎
19:25
|
+(195)Не, ну если есть тяга к мозговому мазохизму- тогда конечно.:-)
|
|||
198
Garykom
гуру
16.05.16
✎
19:26
|
(196) Упали что ли? Как это не средствами 1С если данные изначально в 1С лежат и/или в 1С их нужно засунуть чтобы там крутить.
И чтобы легко можно было подправить сразу в 1С не платя бешенные бабки за дописывание закрытого решения. |
|||
199
Рэйв
16.05.16
✎
19:27
|
(198)Можно вполне все это делать через те же xml форматы.
|
|||
200
Рэйв
16.05.16
✎
19:29
|
()два по сто
|
|||
201
Garykom
гуру
16.05.16
✎
19:29
|
(197) Причем тут мазохизм то? Вот банальное сканирование документов, когда уф и клиент/сервер а если еще и веб-клиенты как сделать?
Чтобы удобно было с прикреплением файлов сразу к документам в 1С? И быстро а не так что сначала сканим в папочку а потом оттуда файлики по одному добавляем. И чтобы сразу доки распознались и текст распознанный в индекс полнотекстового поиска в 1С добавился? |
|||
202
Garykom
гуру
16.05.16
✎
19:30
|
(199) Можно хоть через свои форматы изобретать, но одного спеца 1С не хватит. Речь что надо или несколько спецов или спец универсал!
|
|||
203
Рэйв
16.05.16
✎
19:31
|
(201)А ты собрался сканы в базе держать?
|
|||
204
Рэйв
16.05.16
✎
19:31
|
+(203)Расточительно .Как минимум:-)
|
|||
205
Garykom
гуру
16.05.16
✎
19:31
|
(202)+ И если этот спец универсал сделает по максимуму на 1С, то потом этот код почти любой обычный узкий спец 1С сможет допиливать/сопровождать. Не придется сишарпера или джависта каждый раз звать.
|
|||
206
Garykom
гуру
16.05.16
✎
19:32
|
(203) Смешной, я как раз против держания сканов внутри самой базы если их много файлов. База слишком быстро растет.
Нет лучше внешнее решение (хранилище) отдельное и привязка к 1С. |
|||
207
Pixelrat
16.05.16
✎
19:34
|
Видится отдельное приложение для работы с видео и обмен готовыми данными между ним и 1С.
|
|||
208
Рэйв
16.05.16
✎
19:34
|
(206)Вот мы и поняли что говорим об одном и том же:-).
Я как раз тоже за "внешнее" решение |
|||
209
Рэйв
16.05.16
✎
19:38
|
(205)Эта поделка все равно будет костыль. Потому что 1С под это не заточена.
|
|||
210
Serginio1
16.05.16
✎
19:53
|
(192) Вот пример из недавнего.
Обычно к любому торговому оборудованию идет SDK на .Net Прикрутить его не проблема. Одна из задач это расширить возможности 1С в том числе и под Linux. (194) На самом деле куча крупных фирм присылают заказы в PDF и плевать они хотели на Вэб сервисы, xml по xsd, JSON и тд. |
|||
211
Serginio1
16.05.16
✎
19:57
|
(209) Ты так или иначе используешь кучу ВК, COM (тот же ADO,Excel,Word) итд. 1С заточена по COM.
Есть вариант использования .Net и Java без COM. |
|||
212
Serginio1
17.05.16
✎
13:41
|
Вторник
|
|||
213
HxC 2-Step
17.05.16
✎
13:56
|
Май
|
|||
214
qwerty2469
17.05.16
✎
13:58
|
2016
|
|||
215
Garykom
гуру
17.05.16
✎
14:06
|
от Р. Х.
|
|||
216
Serginio1
18.05.16
✎
14:03
|
Среда, май, 18, 2016
|
|||
217
HxC 2-Step
18.05.16
✎
14:03
|
ДЕНЬ
|
|||
218
hr77
19.05.16
✎
15:15
|
Мне требуется программист 1С платформа 8
Требования: • Знание конфигураций 1С7.7Бухгалтерия, 1С7.7Зарплата и кадры, 1С7.7 Комплексная автоматизация, 1С: Бухгалтерия 2.0, 1С:Бухгалтерия 3.0, 1С:ЗУП2.0, 1С:ЗУП3.0, 1С:Комплексная автоматизация. • Знание платформ 1С7, 1С8. • Наличие сертификатов приветствуется. • Опыт внедрения программного продукта 1С приветствуется. Обязанности: • Сопровождение ПО на платформе 1С • Разработка ПО на платформе 1С (настройка прав пользователей, написание обработок, перенос данных, доработка текущих конфигураций, настройка обмена данными) • Консультация сотрудников по платформе 1С • Участвовать в консультациях по подбору ПО на платформе 1С Условия: • Работа в стабильной российской компании • Стабильный оклад + премии • Прозрачная система выплат. • Молодой дружный коллектив. |
|||
219
ДенисЧ
19.05.16
✎
15:16
|
(218) В Урюпинске за доширак?
|
|||
220
Pistol
19.05.16
✎
15:16
|
(218) Кто ты, чудное создание, чью тему только что снесли?
|
|||
221
Serginio1
19.05.16
✎
15:18
|
(218) Спасибо если с .Net для 1С не получится обращусь к Вам.
Пока теплится надежда, что .Net нужен 1С |
|||
222
Pistol
19.05.16
✎
15:18
|
(218) А, товарищи фанеру пилят, оптом и в розницу за наличный и безналичный... Летите, сударь, летите в Париж - там ваше место!
|
|||
223
hr77
19.05.16
✎
15:32
|
у нас крупный холдинг в Москве, требуется программист в г.Владимир(филиал)
|
|||
224
Pistol
19.05.16
✎
15:34
|
(223) Искренне, глубоко и сердечно похъй на вас.
Рекламные темы на этом форуме платные и оформляются надлежащим порядком. |
|||
225
Serginio1
27.05.16
✎
14:37
|
пятница
|
|||
226
RayCon
28.05.16
✎
04:00
|
(0) Хочешь продать свои умения - пиши так, чтобы понял тот, кто будет платить деньги. Иначе работодатель истолкует твоё желание работать на любимых тобою языках как удовлетворение твоих интересов за его счёт.
Кадровикам бессмысленно писать про классы - им надо писать умение решать конкретные задачи. Например, "могу синтегрировать с 1С любой софт", и далее - по перечню. (182) >И кстати легче было бы продвигать на Запад. Вот с этого места попродробнее... Изложи с поправкой на мною вышесказанное. Если лень писать, можешь рассказать устно по скайпу. |
|||
227
Serginio1
28.05.16
✎
08:02
|
(226) Что касается легче продвигать на запад, то это касается уже подготовленных программистов знающих я зыки под .Net и Java. Им проще использовать уже известные им классы и методы. Например я сам вместо 1С ких классов, использую нетовские так как они имеет бОльшие возможности. Тот же HTTPClient значительнее больше функционален нежели HTTPСоединение и иже с ними.
Есть куча мелких классов, но с достаточной функциональностью Например "Строка в дату. Универсальное решение" http://catalog.mista.ru/public/434345/ Для работы со строками в 1С только недавно ввели то, что есть в нетовском String https://msdn.microsoft.com/ru-ru/library/system.string.aspx Это касается Format, IndexOf(String,?Int32,?Int32,?StringComparison) итд. Так до сих пор нет StringBuilder. Конечно вместо него можно использовать ЗаписьXML.ЗаписатьБезОбработки. Но это не очевидно и не имеет всех возможностей. Я сам не могу держать в голове кучу методов и прочее и лезу в интернет за справкой или примерами. На том же stackoverflow.com можно найти кучу примеров для решения поставленной задачи. Если под Windows можно использовать COM объекты, то Linux лишен этого. Большинство используют Вэб сервисы. Так как писать ВК на C++ не совсем удобно. А вот здесь использовать классы .Net значительно удобнее. При этом код будет кроссплатформенным. Ну и самое главное в том, что классы используют латиницу, что почемуто отвергается нашими 1С никами. Хотя работа с классами .Net аналогична работой с Вэб сервисами. Прокси это объект, есть типы и объекты. Разницы использования .Net классов и Вэб сервисов особой нет. Даже .Net классы проще использовать. |
|||
228
Serginio1
28.05.16
✎
08:34
|
Опять же, что касается иностранцев. Для интеграции с различными системами есть куча классов написанных на .Net или Java. Если в России поставщики пишут примеры для интеграции на 1С, то за рубежом об этом даже и не знают.
И для интеграции проще взять пример например на C# и переписать его на 1С, чем все заново писать на 1С используя только инструменты 1С. Я в большинстве случаев использую именно .Net классы, так как они более функциональны, нежели аналоги на 1С. |
|||
229
vhl
28.05.16
✎
11:19
|
Тут вот люди искали:
https://habrahabr.ru/company/retailrocket/blog/301750/ Хотя ты, наверное, уже в курсе, но чем черт не шутит |
|||
230
PRO100 NigGaZ
28.05.16
✎
12:58
|
(0) в 1С отправь свое резюме :)
|
|||
231
RayCon
28.05.16
✎
13:10
|
(227) Похоже, ты не прочёл, что я написал. :(
Повторяю из (226): "Кадровикам бессмысленно писать про классы - им надо писать про умение решать конкретные задачи. Например, "могу синтегрировать с 1С любой софт", и далее - по перечню." Забудь про классы! Продавай себя, а не их! Мне, как работодателю, надо знать, какую бизнес-задачу ты умеешь решать. Соответственно, я хочу от тебя, например, услышать, какие западные бизнес-приложения ты можешь интегрировать с 1С. ERP-системы по перечню: SAP ERP Scala MS Dynamics AX MS Dynamics NAV Platinum ERP и т.д. BI-системы по перечню: Oracle Essbase Oracle Hyperion SAP BI IBM Cognos QlikView и т.д. Бухгалтерские системы по перечню: Datev QuickBooks Easy Accounting и т.д. А если ты не знаешь, какие из этих систем с какими классами работают, то, может, для повышения своей стоимости на рынке тебе имеет смысл прояснить этот вопрос? Иначе твоими работодателями будут, такие же как ты, знающие классы программисты. Замечу, что большинство программистов не умеет продавать свои продукты => много денег не предложат. |
|||
232
Злопчинский
28.05.16
✎
16:51
|
(231) Коля, спасибо за допразьЯснения
Я ему в примерно таком же ключе с другой стороны пытаюсь объяснить |
|||
233
rs_trade
28.05.16
✎
17:08
|
(231) < какие западные бизнес-приложения ты можешь интегрировать с 1С.
все перечисленное в итоге лишь лишь таблички в субд. поифг че интегрировать. зачем так много названий? |
|||
234
Serginio1
28.05.16
✎
17:28
|
(220) Спаибо. Интересная ссылка. Пока чистым C# истом не хочу.
(230) Отправил. Именно по .Net в 1С молчание. (231) Все, что нужно интегрируется. Не нужно знать все эти системы, нужно знать как их интегрировать. Так или иначе нужно общаться с теми людьми которые отвечают за эти системы и какие шлюзы они предоставляют. Где то это прямой доступ к БД, где то Вэб сервисы, а где то и набор .Net классов до доступа к этим системам. |
|||
235
rs_trade
28.05.16
✎
17:41
|
(234) ага. процесс интеграции всего переченя буржуазных чудосистем сводится к строке подключения и вопросу к сопровождающим прогам - в какой таблице у вас лежит эта хрень?
|
|||
236
Serginio1
28.05.16
✎
18:08
|
(235) :-)))
|
|||
237
Garykom
гуру
28.05.16
✎
20:41
|
(235) Ну вот нафуя секреты выдавать???
|
|||
238
Garykom
гуру
28.05.16
✎
20:43
|
(237)+ Кста "конкурентное преимущество" системы 1С что в нее данные загнать легко, а вот вытащить (из 1С) в стороннюю систему без 1С-ника сложно ;)
|
|||
239
D01
28.05.16
✎
20:51
|
(30) для решения подобных задач в 95% случаев можно использовать штатные средства, для оставшихся 5% - элементарный com-объект
|
|||
240
rs_trade
28.05.16
✎
21:23
|
(238) поспорил бы. то, что данные разбросаны по таблицам не является конкурентным преимуществом. олтп же. так везде. у 1С они они разбрасаны кстати логично.
|
|||
241
rs_trade
28.05.16
✎
21:28
|
смотрел в буржуйских системах. там тихий ужас. такое ощущение что каждый прог который там работал имел цель оставить после себя таблицу или индекс. 30 индексов на таблице и хрен потом разберешь где и зачем они нужны. в этом плане 1С-ные базы отличаются стройностью и логичностью.
|
|||
242
Serginio1
28.05.16
✎
21:50
|
(239) Только через одно место. Например есть уже готовая .Net библиотека с подписью документов, сериализация десериализация объектов в JSON с говыми методами отправки и получения ответов. Работать с ней намного легче чем со встроенными средствами 1С. Итд. Конечно можно и на 1С писать бинарные операции.
|
|||
243
Serginio1
28.05.16
✎
22:02
|
||||
245
Злопчинский
28.05.16
✎
22:31
|
(238) у мну товарищ дельфист прогу для жкх ваял и поддерживал
Там таблиц тоже мама не горюй было |
|||
246
Злопчинский
28.05.16
✎
22:33
|
(244) мне как потребителю продуктов такая фирма малоинтересна будет
|
|||
247
Serginio1
28.05.16
✎
22:38
|
(248) Ты кстати попробовал ТСД? Твоя проблема в том, что ты ищешь пути, которые тебе понятны. Но это не значит, что они оптимальны.
|
|||
248
Torquader
28.05.16
✎
22:58
|
Основная проблема интеграции 1С с чем либо ещё в том, что есть много программистов, которые успешно интегрировали в 1С свои решения, причём от совершенно разных языков.
Только вот когда начинаешь собирать эти решения выясняется, что они могут оказаться несовместимы между собой только из-за того, что кто-то использовал разные версии одного и того же. Понятно, что есть люди, которые смогут это всё объединить, только вот в 1С программируют часто вообще мало знающие, а им проще объяснить, что нужно купить новую версию чего-то стандартного, чем разбираться в коде. В результате, получается, что фирма платит несколько раз за одно и то же, и работать у неё это будет через одно место, так как со сменой программиста будет меняться подход, а вечных программистов не бывает. |
|||
249
Serginio1
28.05.16
✎
23:53
|
(248) Стандарт это ВК, а вот как раз ВК это и есть черная дыра. Используя классы .Net с этим может разобраться любой 1С ник знающий эти классы или любой С#, Basic.Net,Delphi.Net
Там все элементарно. |
|||
252
Serginio1
29.05.16
✎
00:07
|
(246) Кстати для семерки как раз .Net классы можно использовать на каждом шагу.
|
|||
253
Neg
29.05.16
✎
00:10
|
(0) Может тебе жениться?
|
|||
255
Serginio1
29.05.16
✎
00:14
|
(253) Женат 20 лет как уже, причем во второй раз.
|
|||
256
Neg
29.05.16
✎
00:18
|
"20 лет программирую, 20 лет женат..."
всё по 20-ть... |
|||
257
Serginio1
29.05.16
✎
00:23
|
(256) 20 это только на 1С. Учитывая Фортран, Паскаль и Delphi 30 получается.
|
|||
258
Neg
29.05.16
✎
00:26
|
(257) бейсик забыл,
учи где находится дебет с кредитом и быстрей работу найдешь. |
|||
259
Serginio1
29.05.16
✎
00:29
|
(258) Уже знаю. Бухи советутся. Работу я хочу именно в связке .Net и 1С
|
|||
260
Neg
29.05.16
✎
00:29
|
наверное все же находятся.
|
|||
262
Serginio1
29.05.16
✎
00:35
|
(261) Спасибо. Надеюсь, что ты ошибаешься и я найду, то что хочу
|
|||
263
Serginio1
29.05.16
✎
01:09
|
(239) На линуксе никакого COM объекта нет. А я предлагаю сделать обертку над .Net Core
|
|||
265
Serginio1
29.05.16
✎
08:26
|
(264) Импортозамещение
|
|||
266
Serginio1
29.05.16
✎
09:51
|
(261) asp.Net очень востребованная техгология.
Кстати 1C Messenger для отправки сообщений, файлов и обмена данными между пользователям пишется за пару дней. И получаем оповещение всех клиентов 1С, а в том числе и мобильных клиентов. Удобно использовать для создания ВК Быстрое создание Внешних Компонент на C#. Использовать более навороченных форм WPF в УФ c интеграцией 1С Очень удобный парсер HTML .Net в 1С. Парсинг сайтов, multipart/form-data, gzip итд с помощь него нет проблем распарсить любую страницу. Для динамических можно использовать Silenium http://ru.stackoverflow.com/questions/420354/%d0%9a%d0%b0%d0%ba-%d1%80%d0%b0%d1%81%d0%bf%d0%b0%d1%80%d1%81%d0%b8%d1%82%d1%8c-html-%d0%b2-net/420355#comment634426_420355 итд. Вплоть до того, что на каждом шагу прося драйвер для COM порта Динамическая компиляция для использования .Net событий в 1С И таких задач пруд пруди. Просто 1С ники не знают всех возможностей |
|||
268
Serginio1
29.05.16
✎
12:02
|
(267) Представляешь шарю и нет проблем.
Посмотри AngleSharp. Все мои разработки вызываются из 1С. А твои? |
|||
269
Serginio1
29.05.16
✎
12:06
|
268+ Кстати можно использовать и модули питона http://catalog.mista.ru/public/186206/
|
|||
270
Serginio1
29.05.16
✎
12:16
|
||||
273
Serginio1
29.05.16
✎
14:25
|
(271) Да есть Jint. Но полной интеграции нет. Есть Silenium
Еще ссылка http://selenium2.ru/docs/webdriver.html Chrome Driver разрабатывается и поддерживается участниками проекта Chromium Плюсы ?Запуск тестов в реальном браузере и поддержка JavaScript ?Так как Chrome базируется на движке Webkit, это позволит убедиться, что веб-сайт с известной долей вероятности работает и в браузере Safari. Однако учтите, что, поскольку Chrome использует интерпретатор JavaScript V8, а Safari - Nitro, исполнение JavaScript может отличаться. |
|||
274
Serginio1
29.05.16
✎
14:27
|
(271) Для большинства случаев достаточно просто распарсить страницу.
Вот еще ссылка на силениум .Net в 1С. Парсинг сайтов, multipart/form-data, gzip итд А вот пример применения JINT .Net в 1С. Парсинг сайтов, multipart/form-data, gzip итд |
|||
275
Serginio1
29.05.16
✎
14:28
|
Для большинства случаев нужно получить некие данные, занести в базу итд.
|
|||
276
Serginio1
29.05.16
✎
14:47
|
Что касается Linux то сейчас изучаю С++ и в скором времени сделаю порт к .Net Core. Пока же вместо dll и внутрипроцесного взаимодействия приходится задействовать Вэб сервисы написанных на C#, Java итд.
При этом использовать классы .Net может любой 1С. Повотрю они даже проще использования Вэб сервисов и объектов XDTO |
|||
279
Chainsaw
29.05.16
✎
15:45
|
(0), (266), (273) Seleneum он, S*e*lenium.
Задолбал уже, неграмотный. |
|||
280
Serginio1
29.05.16
✎
15:46
|
(277) Да их полно. Сравнить прайсы, получить информацию с сайта итд. Ко мне часто обращаются. Так, что ты не прав.
|
|||
281
Serginio1
29.05.16
✎
16:14
|
Или например парсить мисту на предмет интересных веток
|
|||
282
RayCon
29.05.16
✎
17:04
|
(233) Названий много по той простой причине, что деньги, в конечном итоге, платят за конкретные отверстия в стене в привязке к их координатам, глубине и материалу стены, а вовсе не за обещания их насверлить где угодно и сколько угодно каким угодно инструментом.
Если работник говорит, что он СДЕЛАЛ интеграцию 1С с таким-то КОНКРЕТНЫМ продуктом, на рынке он получаешь КОНКРЕТНУЮ стоимость. А если он говорит, что ничего не сделал, но можешь сделать всё, что угодно, то на рынке он ничего не стоит. Я пытаюсь донести мысль, что работодатель будет готов платить за решение его прикладных задач на том бизнес-приложении, которое он использует, а не за фундаментальные знание программиста по таблицам СУБД и абстрактные технологиям обмена данными. Резюме для ищущего работу программиста: хочешь хорошую зарплату - научись говорить на языке работодателя. Приведу аналогию: венчурные фонды финансируют не более 1-3% проектов по разработке софта по той простой причине, что у них никудышные бизнес-планы. Иными словами, в 97-99% плательщики денег даже не смотрят на крутизну программистов. |
|||
283
Serginio1
29.05.16
✎
17:18
|
(282) На самом деле я предлагаю инструмент который может решать огромное количество задач. То есть использовать мощь .Net в 1С на уровне применения Вэб сервисов. Не нужно писать никаких ВК. Код может разобрать любой 1С ник знакомый с библиотеками .Net.
Сам я иду в довесок к этому инструменту. В том числе и для адаптации под определенные условия. |
|||
284
ДенисЧ
29.05.16
✎
17:49
|
(283) Рабодателю не нужно "огромное количество задач".
Ему нужно решение строго тех задач, что у него сейчас возникают. |
|||
287
Serginio1
29.05.16
✎
18:21
|
(284) Это зависит от работадателя.
(285) Что бы сравнить на конкурентноспособность своих цен. (286) Вот только не надо про PHP писал и плевался. По сравнению с Asp. Net это наколеночная поделка. Ты когда что то хаешь, попробуй то что хаешь. Что именно выйдет эффективнее? Чем asp лучше? это тот же .Net. |
|||
288
Gary417
29.05.16
✎
18:21
|
(286) <В итоге в браузере всё это сравниать в сто раз проще, на php софт в сто раз эффективнее выйдет.>
ооо, а у вас нет опыта работы с 1С ? |
|||
289
Serginio1
29.05.16
✎
18:22
|
(286) Ты серьезно про браузер?
|
|||
291
Gary417
29.05.16
✎
18:28
|
(290) <Да помню я эту 1С, дерево деревом, не в обиду. >
тоесть не работали :) видели из-за спины как ктото работал и сделали кучу ценных выводов |
|||
294
Serginio1
29.05.16
✎
18:32
|
(290) То есть ты этой работой не занимался. А я занимался и знаю, как зачем и почему.
На самом деле таких задач пруд пруди. Влоть до поиска минимальной цены по куче сайтов. Отслеживание новых поступлений итд. Всё, что можно автоматизировать. (293) Ты в браузере глазками сравниваешь, или анализируешь HTML на тысячи позиций? |
|||
296
Serginio1
29.05.16
✎
18:39
|
(295) Еще раз повторю, что я эти занимался и например для запчастей есть артикулы, аналоги и прочие привязки.
Зачем мне класть в таблицу 1С, если я могу с ней сравнить. Есть варианты привязки кодов к справочнику в разрезе поставщиков итд. Выбираем минимальные цены. |
|||
297
Serginio1
29.05.16
✎
18:42
|
Я говорю о том, с чем сам работал. И знаю как привязвать товары. И у множества такие же привязки есть.
|
|||
300
Serginio1
29.05.16
✎
18:54
|
(298) Поверь есть, еще раз для каждого поставщика можно делать сопоставления итд.
То есть скачать прайсы, обработать сравнить это ну на .Net и 1С нельзя сделать? Ты серьезно? B как это я делаю? |
|||
301
Serginio1
29.05.16
✎
18:57
|
Причем не просто прайсами, а миллионными.
|
|||
302
Pistol
29.05.16
✎
19:02
|
(300) Ну, судя по тому, что ты ищешь работу, делаешь ты это плохо и спустя рукава.
Если ты собираешься в теме поиска работы доказывать, что дотнет это круто, то работу ты здесь не найдешь. А хотя может для этого доказывания ты ее и завел? |
|||
303
Serginio1
29.05.16
✎
19:06
|
(302) Я ищу работу, где я могу применить и развить все свои наработки. Заметь надпиcь неспешно.
Доказывать, что применение .Net в 1С для расширения возможностей не имеет смысла. Это очевидно. Как и применение С++, Java итд. |
|||
305
mksk
30.05.16
✎
10:03
|
(303)
ничего и не нужно доказывать. интеграция сама по себе это просто файлик, можно табличку в скулях. и описание формата обмена. всё. |
|||
306
Serginio1
30.05.16
✎
14:13
|
(305) Вот например Вэб сервис это интеграция, ODATA тоже интеграция. Есть наборы классов для простого обмена по HTTP.
Есть библиотеки для работы с мобильными принтерами и прочим торговым оборудованием. |
|||
307
Cloppton
30.05.16
✎
23:52
|
Кстати а с продвижением в интернете вы не сталкивались? С какими сервисами работали, если работали вообще? Лично я думаю насчет системы http://zenlink.ru/ , изучал в интернете предложения, это самый функциональный вариант
|
|||
308
RayCon
31.05.16
✎
07:30
|
(303)
>Я ищу работу, где я могу применить и развить все свои наработки. Ещё раз: рация - на бронепоезде! Я, как работодатель описал круг тех задач, которые мне нужно решать. Ты, как потенциальный работник, ни слова ни сказал, как ты их собираешься решать. Теперь ответь на простой вопрос: зачем мне такой работник, который обещает сделать всё, но даже на словами не может описать, что и как он планирует делать? Хотя бы на примере ранее сделанных работ и с отзывами удовлетворённых клиентов. |
|||
309
Pistol
31.05.16
✎
07:46
|
(308) Ты тоже не заметил надпись "неспешно". Доказывать не имеет смысла. Это очевидно.
Забей. Ничего нового не будет. |
|||
310
spock
31.05.16
✎
08:56
|
(308) "описал круг .. задач, которые .. нужно решать. Ты, .., ни слова ни сказал, как ты их собираешься решать." - вы друг другу не подходите, делов-то. Зачем опу так рвать?
|
|||
311
Serginio1
31.05.16
✎
09:52
|
(308) Ты абстрактно описал круг задач. На что тебе абстрактно был дан ответ.
Как только касается конкретики, то на просторах stackoverflow.com ищется решение на C# и переводится на 1С. Даже имея опыт решения задач, я смотрю, что нового есть итд. Если же нет такого решения то, задаю вопрос на соответствующих форумах. Так быстрее и эффективнее, так как невозможно все держать в голове. Но главное найти решение и выбрать нужную технологию для интеграции. |
|||
312
Serginio1
31.05.16
✎
10:18
|
Кстати в том же X++ используется мой ананалог
ClrObject https://blogs.msdn.microsoft.com/x/2010/01/19/traversing-elements-in-an-ienumerable-from-x/ static void GenericTypeDemo(Args _args) { ClrObject o = new ClrObject(“System.Collections.Generic.List`1[System.Int32]”); ClrObject enumerator; int theValue; // o is an instance of an IEnumerable<int> o.Add(1); o.Add(4); o.Add(12); print o.ToString(); enumerator = o.GetEnumerator(); while (enumerator.MoveNext()) { theValue = enumerator.get_Current(); print theValue; } pause; } |
|||
313
Serginio1
31.05.16
✎
10:21
|
То есть в Microsoft Dynamics AX применять мой аналог это нормально
https://msdn.microsoft.com/en-us/library/clrobject.aspx https://msdn.microsoft.com/en-us/library/clrobject.new.aspx А в 1С это не нужно? |
|||
314
elCust
31.05.16
✎
10:35
|
Вот возникнет на производственном предприятии вопрос - не распределяются расходы на себестоимость.
Либо сотрудник с больничного решил пойти в отпуск, а затем снова на больничный с сохранением всего, что можно. А ТС оказывается только обертку умеет делать в .Net. |
|||
315
Господин ПЖ
31.05.16
✎
10:36
|
(314) тебе про фому, ты про ерему...
|
|||
316
oleg_km
31.05.16
✎
10:41
|
(314) А у нашего директора регулярно заканчивается кофе и сигареты. Правда у него не хватает ума отправить в ларек разработчика 1С. Может это бухи должны учиться правильно делать? У нас по крайней мере есть эксперт-аналитик, она эти задачи расколдовывает. А программист может программировать должен, в том числе и с применением других средств разработки. Идите дальше себестоимость крутите или больничные, больше конечно нет задач по автоматизации.
|
|||
317
Serginio1
31.05.16
✎
10:48
|
(314) Вообще то я 1С ник со знанием .Net.
Там где я приходил, решал те задачи кторые до меня не были решены. А решалось за счет использования технологий не вшитых в 1С. По твоему получается, что дополнительные возможности ну никак не смогут решить проблему распределения себестоимости? Кстати у меня есть и универсальные механизмы списания партий http://catalog.mista.ru/public/371762/ а гркппировку в ТЗ использую чуть ли не каждый день. |
|||
318
Господин ПЖ
31.05.16
✎
11:00
|
>дополнительные возможности ну никак не смогут решить проблему распределения себестоимости?
fifo - сокровенное знание 1с-ников... |
|||
319
Serginio1
31.05.16
✎
11:06
|
(318) Кстати в 1С нет очередей fifo и lifo
аналогов Queue и Stack |
|||
320
Господин ПЖ
31.05.16
✎
11:12
|
(319) там много чего нет... сделать shuffle в векторе - уже "задача" для кодирования
|
|||
321
Gary417
31.05.16
✎
11:14
|
(319) а что их наличие обязательно в языке?
Я помню в допотопные времена читал книжку по ООП и на VB6 "вручную" делал и очереди и стеки и связные списки... |
|||
322
Кирпич
31.05.16
✎
11:20
|
(319) сделать в 1с стек - это 10 строчек кода. Не подключать же для этого 300 мегабайт дотнета мля.
|
|||
323
Gary417
31.05.16
✎
11:24
|
(322) во во
|
|||
324
Serginio1
31.05.16
✎
11:31
|
(322) Посмотри сколько подключается. Но когда ты используешь .Net ты используешь кучу классов а не только стек.
И тогда твои 10 строчек превращаются в библиотеку на 300 мегабайт |
|||
325
Serginio1
31.05.16
✎
11:32
|
(322) Еще раз посмотри 313.
|
|||
326
Кирпич
31.05.16
✎
11:34
|
(325) на накой он мне сдался этот .NET
я Python люблю. буду Python в 1с запихивать и на мисте всем доказывать, что без Python в 1с очень плохо. |
|||
327
Serginio1
31.05.16
✎
11:39
|
(322) Кстати откуда у тебя информация насчет 300мб?
Я специально проверил на небольшой библиотек вычисляющей HMAC Увеличилось всего на 1 мб. при подгрузке других библиотек память увеличивается незначительно. (326) Используй IronPython http://metanit.com/sharp/tutorial/9.3.php |
|||
328
Serginio1
31.05.16
✎
11:42
|
(326) Вот еще использование Питона
http://catalog.mista.ru/public/186206/ Я разве доказываю, что без .Net очень плохо? Я лишь говорю, что можно легко решать множество задач. Я же тебе его не навязываю. Я показываю примеры, как можно решить задачу с помощью .Net а ты волен сам выбирать способ решения. |
|||
329
DDwe
31.05.16
✎
11:43
|
(327) Ну Net один фиг иметь на машине надо.
|
|||
330
Сниф
31.05.16
✎
11:43
|
(44) <Например в среде .Net не понимают зачем 1С, а в среде 1С не понимают зачем .Net. Так непонятно где я свой среди, а где чужой среди своих>
Издержки интеграции ) |
|||
331
Serginio1
31.05.16
✎
11:46
|
(329) Ну так она идет вместе с Windows и обновляется.
(330) Спасибо за поддержку. |
|||
332
Gary417
31.05.16
✎
11:46
|
(327) <Кстати откуда у тебя информация насчет 300мб? >
А сколько версит .Net? |
|||
333
Кирпич
31.05.16
✎
11:46
|
(327) да угомонись ты уже. кому надо, тот пользуется и .NET и питонами и дельфями. чо из этого такой шум делать? зачем этот бесконечный позор? ради чего? денег тебе за это не платят. заработать на этом ты ничего не заработаешь.
|
|||
334
Gary417
31.05.16
✎
11:47
|
(331) <Ну так она идет вместе с Windows и обновляется. >
не все версии |
|||
335
Serginio1
31.05.16
✎
11:47
|
(333) Что бы зашел в эту ветку и высказал всё, о чем думаешь по этому поводу.
|
|||
336
Serginio1
31.05.16
✎
11:48
|
(334) Ну я же никого не заставляю использовать. Кому надо установят. По твоему вообще программировать на .Net нет смысла?
|
|||
337
Кирпич
31.05.16
✎
11:49
|
(335) И всё? Ты типа тролль такой? .NET Троль?
понятно. |
|||
338
Serginio1
31.05.16
✎
11:51
|
(333) Ко мне часто обращаются для решения различных задач.
(337) Ну конструктива от тебя нет. Так, что по поводу тролей ты погорячился. Эта ветка по поиску работы кстати. |
|||
339
Кирпич
31.05.16
✎
11:58
|
(338) "Ко мне часто обращаются для решения различных задач. "
Ну так заведи блог или сайт и там пиши какие задачи решал. типа портфолио. список решенных задач люди почитают, а на .NET ты их решал или не на .NET это вряд ли кому нибудь интересно. |
|||
340
oleg_km
31.05.16
✎
12:00
|
(337) Вот же люди. Когда тебе припрет, будешь же высунув язык бегать кричать: спасайте. Хотя ты не будешь, ты же даже не будешь знать, что твоя проблема может быть решена с помощью .НЕТ.
(339) Так он его практически и ведет, пусть и в несколько сумбурной форме. |
|||
341
Serginio1
31.05.16
✎
12:08
|
(339) Так http://catalog.mista.ru/profile/82159/public/ вот список задач. Люди читают и обращаются.
Но мне то главное, что бы не я решал, а пользовались моими инструментами. Вот например http://job.mista.ru/users.php?id=63142 давно использует. И я очень этому рад. (340) Олег привет. Спасибо за поддержку. |
|||
342
Кирпич
31.05.16
✎
12:09
|
(340) я никогда не бегаю высунув язык. я в состоянии решить свои проблемы сам. в том числе и на .NET
|
|||
343
Serginio1
31.05.16
✎
12:11
|
(342) Тогда почему не используешь моюразработку?
Я её кстати делал для вэб сервисов с кучей классов. Был выбор либо делать для каждого класса обертку вручную, либо автоматически. |
|||
344
Кирпич
31.05.16
✎
12:12
|
(341) ну вот и слава богу. пока не вынудишь их себя прорекламировать, так и будут буштеть под нос "NET NET C# NET 1C NET NET 1C"
|
|||
345
Kupogun
31.05.16
✎
12:13
|
(333)(337)(342) откуда столько истерики?
ТС любит 1с и .net, хочет найти работу на стыке этих технологий. Что в этом плохого? |
|||
346
Кирпич
31.05.16
✎
12:15
|
(343) ну не нужно мне. нет надобности. задачи, связанные с 1с обычно мелкие и проще самому написать, чем искать решение и потом разбираться в чужой лабуде, если она нестандартная.
|
|||
347
Serginio1
31.05.16
✎
12:15
|
(344) Я кстати давно уже никому советы не даю. А вот тебя почему то в эту ветку тянет? Только зачем? Что тебя так тревожит?
Мне же не интересно что ты бухтишь. У меня своих дел полно. |
|||
348
Serginio1
31.05.16
✎
12:17
|
(346) То есть если бы эта лабуда была стандартная ты бы пользовался?
И что нужно сделать, что бы она была стандартной? |
|||
349
Serginio1
31.05.16
✎
12:19
|
(346) А там и разбираться то особо то нечего.
Использование классов .Net в 1С для новичков ты хоть попробуй. А то Книгу писателя не читал, но осуждаю. |
|||
350
Кирпич
31.05.16
✎
12:20
|
(346) "И что нужно сделать, что бы она была стандартной"
чтобы все ей пользовались |
|||
351
Serginio1
31.05.16
✎
12:23
|
(350) Еще раз использование классов .Net не сложнее использования Вэб сервисов.
Если бы 1С внедрила по аналогии с Microsoft Dynamics AX CLRObject ты бы не говорил, что это дерьмо? И то, что .Net можно использовать и на Линукс. |
|||
352
Serginio1
31.05.16
✎
12:25
|
(350) Посоветуй куда лучше написать, что бы хотя бы рассмотрели эту идею использования .Net в 1С.
|
|||
353
Кирпич
31.05.16
✎
12:26
|
(351) Если бы 1С внедрила, я был бы только за. И чтобы это было на русском языке. Ибо 1с.
|
|||
354
Кирпич
31.05.16
✎
12:27
|
(352) нахреначь лучше большую ВК на .NET и запихай туда кучу полезного (даже очереди и стеки)
|
|||
355
Кирпич
31.05.16
✎
12:30
|
(351) "И то, что .Net можно использовать и на Линукс."
кстати, пробовал установить core .net на линукс. чота заругалось и не установилось. |
|||
356
Serginio1
31.05.16
✎
12:30
|
(353) Например вэб сервисы все на не русском. Тебя же это не воротит. А локализовать все методы даже стандартных классов это расточительно
(354) Зачем? Уже есть обертка используй Л Ю Б О Й класс. Ты хоть попробуй. http://ru.stackoverflow.com/questions/527763/%d0%9a%d0%b0%d0%ba-%d0%b2%d1%8b%d0%b7%d0%b2%d0%b0%d1%82%d1%8c-%d0%bc%d0%b5%d1%82%d0%be%d0%b4-%d0%b8%d0%b7-c-%d0%b2-1%d0%a1/527802#527802 |
|||
357
Serginio1
31.05.16
✎
12:31
|
(355) Сейчас уже RC2 вышел. Посмотри какие версии поддерживает
|
|||
358
Кирпич
31.05.16
✎
12:33
|
(356) "Тебя же это не воротит." почему не воротит. воротит. одинеснику нужно на русском.
" А локализовать все методы даже стандартных классов это расточительно " так все не надо. только то, что в 1с нехватает. а нехватает немного. |
|||
359
Господин ПЖ
31.05.16
✎
12:37
|
>И чтобы это было на русском языке.
тогда про победное шествие за пределами 1/6 можно забыть |
|||
360
Сниф
31.05.16
✎
12:38
|
(331)> Спасибо за поддержку
Пожалуйста! Меня тоже никто не понимает ) Хотя я тебя понимаю, хоть частично, твои советы на форумах очень часто по делу. |
|||
361
Кирпич
31.05.16
✎
12:38
|
(359) так на русском и английском в 1с всё вроде. не?
|
|||
362
Serginio1
31.05.16
✎
12:40
|
(358) Не поверишь, но очень много. Теже Вэб сервисы с WS протоколами. Даже Header не поддерживается. Есть куча библиотек на все случаи жизни.
Но проблема в том, что 1С это не нужно. Они в Native ВК даже аналог Idispatch не ввели, что бу можно было использовать объекты 1С и передавать свои объекты. Сейчас буду с этим разбираться. (359) Согласен. Это кстати нужно и 1С самой. Так как там многие знакомы с C# и Java и им проще использовать знакомые классы (360) (handshake) |
|||
363
Mikeware
31.05.16
✎
12:42
|
(360) (362)
— Доктор, соседи называют меня сумасшедшим, потому что я люблю сосиски. — Ерунда какая, я тоже люблю сосиски. — О-о, тогда пойдемте я покажу вам свою коллекцию!!!! © |
|||
364
Serginio1
31.05.16
✎
12:47
|
(361) Кстати методы Менеджер COM-соединений на английском
И даже ProgID на английском Соединитель = Новый COMObject("V83.COMConnector"); Да и многие используют кучу COM объектов которые на не русском |
|||
365
Кирпич
31.05.16
✎
12:49
|
(362) вот и реши проблему конкретную проблему с вебсервисами и продавай. нафиг пропагандировать какой то С№ среди одинесников, ели одинеснику проще заплатить 1 раз тыщу рублей и получить за работу 10, чем сидеть изучать какие то классы .NET, которые ему будут нужны раз в два года.
|
|||
366
Кирпич
31.05.16
✎
12:50
|
(364) ну используют. писать то неудобно и выглядит некрасиво
|
|||
367
Кирпич
31.05.16
✎
12:56
|
+(366) хотя я не против, если вообще язык 1с заменят на C#. да и вообще на английском всё делать. но раз уж так повелось уже...
|
|||
368
Сниф
31.05.16
✎
12:57
|
(362) Прикинь, что я вчера придумал. Опять не поймут. Чат в Конфигураторе. Прямо в Конфигураторе можно организовать чат с пользователем 1С.
http://i80.fastpic.ru/big/2016/0531/f2/39e415247233cce35d1d1521f4bf0af2.png |
|||
369
Mikeware
31.05.16
✎
12:57
|
(364) Это хорошо или плохо?
(366) проблема в "переключении языков"... а в остальном, если одинаково - то хоть как. |
|||
370
Кирпич
31.05.16
✎
12:58
|
(368) у тя в телефоне чатов мало чтоли
|
|||
371
Serginio1
31.05.16
✎
12:58
|
(366) А при использовании кириллицы в C# тоже выглядит некрасиво. А тратить кучу времени на руссификацию нет смысла. Это тысячи класов с десятками методов и свойств
Я пропагандирую и количество последователей увеличивается. И это хорошо. (367) Проблема в только в том, что если 1С внедрит доступ .Net из каропки то все будут пользоваться. |
|||
372
Mikeware
31.05.16
✎
12:58
|
(368) ты лучше чат с сервером организуй...
|
|||
373
Кирпич
31.05.16
✎
12:59
|
(371) адептов :)
|
|||
374
Serginio1
31.05.16
✎
13:00
|
(368) Интересно. И интересно как?
(372) Можно и с сервером запустив цикл с ожидание срабатывания эвента по событию 1C Messenger для отправки сообщений, файлов и обмена данными между пользователям |
|||
375
Serginio1
31.05.16
✎
13:02
|
Понял. Прикольно.
|
|||
376
Сниф
31.05.16
✎
13:07
|
(374) > Интересно. И как?
Открой в Кофигураторе обработку и мы сможем с тобой чатиться прямо сейчас) https://yadi.sk/d/VFRjT6zKs9Chm |
|||
377
Сниф
31.05.16
✎
13:08
|
+(376) Макет ПолеHTML в режиме Просмотр
|
|||
378
Serginio1
31.05.16
✎
13:11
|
Я понял. На чем сервер написан?
|
|||
379
Mikeware
31.05.16
✎
13:14
|
(374) главное, чтоб сервер осмысленно отвечал...
|
|||
380
Сниф
31.05.16
✎
13:15
|
(378) Ответил в чате)
Сервер в данный момент - это скрипт Node.js открытый в редакторе в режиме отладки) |
|||
381
Сниф
31.05.16
✎
13:16
|
(379) Мы уже чатимся с http://job.mista.ru/users.php?id=49865 в Конфигураторе )
|
|||
382
Serginio1
31.05.16
✎
13:16
|
(379) Все зависит от вопроса.
(380) Угу Понял. У меня аналог на SignalR |
|||
383
Кирпич
31.05.16
✎
13:35
|
вот вам еще тема. прикручивайте node.js к 1С. Там тоже много всего красивого и интересного. вполне заменит .NET
|
|||
384
Сниф
31.05.16
✎
13:46
|
(383) ты почему еще не в чате?)
|
|||
385
Кирпич
31.05.16
✎
13:49
|
(384) я уже не в том возрасте, чтобы чатиться
|
|||
386
Сниф
31.05.16
✎
13:50
|
(384) Со своими? В Конфигураторе? В Конфигураторе, Карл!
|
|||
387
Сниф
31.05.16
✎
13:53
|
т.е. (386) к (385)
Для тех, кто пришел позже: 1. Качается внешняя обработка из (376) 2. Открывается в конфигураторе. Формы не нужны. Открываем Макеты -> IndexHtml. Тип макета - Html. Выбираем вкладку "Просмотр" и оказываемся в чате узников Конфигуратора. |
|||
388
Кирпич
31.05.16
✎
13:58
|
(387) как правильно назвать этот стремительный прорыв? свистелка или перделка?
|
|||
389
Сниф
31.05.16
✎
14:00
|
(388) Микросервисы! Вот если так назовешь, то не ошибешься.
|
|||
390
Кирпич
31.05.16
✎
14:03
|
вот прикольная штука
http://catalog.mista.ru/public/292440/#slide-to-cc_templates |
|||
391
Сниф
31.05.16
✎
14:06
|
(390) не понял прикола.
Pourquoi? - (франц) На кой? - (русск) |
|||
392
Кирпич
31.05.16
✎
14:11
|
(391) Pourquoi ai-je besoin d'une t?l?vision dans le configurateur?
|
|||
393
Сниф
31.05.16
✎
14:15
|
(393) Э.. оперативное общение с инициатором инцидента? Поиск коллег по ремеслу попить вечером в пятницу пива?
|
|||
394
Кирпич
31.05.16
✎
14:19
|
(393) а почему именно в конфигураторе? тебя к нему приковали чтоли?
|
|||
395
Сниф
31.05.16
✎
15:02
|
(394) Нет, клиент HTML. Я собственно, делал обработку и сам офигел, когда увидел, что она работает даже в режиме конфигуратора. Живучая, значит, технология.
О библиотеке socket.io: "Так, для современной версии браузера socket.io будет использовать WebSocket, при отсутствии в клиенте подцержки такой технологии задействует flash, а если и ero нет, будет применяться, например, Forever Iframe. Подобный подход позволяет работать в реальном времени практически во всех используемых в настоящее время браузерах. " |
|||
396
Сниф
31.05.16
✎
15:06
|
(394) И эта хрень работает даже в такой агрессивной среде, как конфигуратор )
|
|||
397
RayCon
31.05.16
✎
15:59
|
(309)
>Ты тоже не заметил надпись "неспешно". Доказывать не имеет смысла. Это очевидно. Заметил. Просто хотел помочь человеку, чтобы "неспешно" не превратилось в "никогда". >Забей. Ничего нового не будет. Похоже, ты прав: топикстартер не хочет даже задумываться на тему, что надо продавать себя, а не некие, любимые им, классы. (310) >вы друг другу не подходите, делов-то. Это я уже понял: такого сотрудника точно не возьму. И даже рекомендовать знакомым не буду, хотя, не далее, как сегодня, мне пришёл запрос на двух прогов, причём один из них должен быть универсалом. (311) >Ты абстрактно описал круг задач. На что тебе абстрактно был дан ответ. Если то, что написано в (231) абстрактно, то "Вопросов больше не имею". (с) Илья Ильф, Евгений Петров |
|||
398
Господин ПЖ
31.05.16
✎
16:09
|
>А если ты не знаешь, какие из этих систем с какими классами работают, то, может, для повышения своей стоимости на рынке тебе имеет смысл прояснить этот вопрос?
дадада... sap bi в каждом киоске ведь стоит - п.э. любой 1с-ник в курсе какие средствами интеграции располагает эта система. ну и проектов у него тоже по ней вагон... и по сути (233) +1 много названий, но по сути конь в вакууме... к тех. спецу с вопросами такого уровня не входят |
|||
399
Бертыш
31.05.16
✎
16:11
|
Коллега. Добавлю 5 копеек свои. Я тупой 1С ник с вытекающим непринятием английского синтаксиса, то есть без знания английского. Месяц назад мне понадобилось написать парсер сайта. Я ткнулся и тыкался в разные языки, но на деле убедился что лепше всего документирован и писать легче на C#. У меня есть лицензионная Visual Studio 2010 Team и там подсказки и документация по русски практически. Плюс в рунете есть замечательные форумы где как оказалось, по причине того что сабдж существует довольно долго, мне уже даже не надо задавать свои вопросы а достаточно посмотреть что отвечали тем кто уже с данной проблемой сталкивался. Плюс переводы на русский в MSDN. В общем 2 недели, а точнее 5 ок вечеров и я смог наваять себе нужное мне полноценное приложение.
Вопросы: - Я специалист со знанием 1С и C# после этого? Что там собственно специалисту с опытом работы, то есть с наличием программистского склада мышления в C# изучать? А по теме могу связать Вас с одной конторой которой требуется интегрировать продукт на C# с разрабатываемой Вами же конфигурацией на 1С 8. Правда сидят они у нас в Брянске. Я к ним пойти не могу по причине того что у меня уже есть работа которая меня устраивает. |
|||
400
Бертыш
31.05.16
✎
16:11
|
400
|
|||
401
Serginio1
31.05.16
✎
16:38
|
(397) В 311 тебе дан развернутый ответ. Все зависит от постановки задачи.
В 231 никакой конкретики нет. Есть только названия продуктов. И что я должен ответить? То что работал с ними? Или все таки важно какую задачу нужно решить? |
|||
402
Serginio1
31.05.16
✎
16:58
|
Сейчас поковырялся с Native ВК.
1. Передать ВК в качестве параметра нельзя. 2. .Net поддерживает перегрузку методов с несколькими параметрами. Приходится указывать максимальное количество, а возвращать bool CAddInNative::GetParamDefValue(const long lMethodNum, const long lParamNum, tVariant *pvarParamDefValue) { TV_VT(pvarParamDefValue) = VTYPE_HRESULT; return true; } любой vt отличный от 0. В метод идет кстати с 0. На самом деле есть идея использовать аналог IDispatch У которого 2 метода. 1. По анаогии с нетовским InvokeMember https://msdn.microsoft.com/ru-ru/library/66btctbe(v=vs.110).aspx 2. void Done(); при завершении работы объекта Подсчет ссылок ведется на стороне 1С. На стороне ВК используются только на время вызова метода. Тогда написать обертку можно очень легко. |
|||
403
Сниф
31.05.16
✎
16:59
|
(0) Работу ты конечно найдешь, но, как я скромно думаю, для раскрытия твое потенциала нужно продвигать готовый сервис, а не резюме.
|
|||
404
Serginio1
31.05.16
✎
17:06
|
(399) Спасибо. Ну удаленно то можно хоть в Америке.
Полностью согласен насчет MSDN, форумов. Кстати сейчас и http://ru.stackoverflow.com/ развивается. Хотя на англоязычном активность на порядки выше. Но и на этом тебе ответят на любые вопросы. Есть RSDN, cyberforum.ru |
|||
405
Serginio1
31.05.16
✎
17:09
|
(403) В интересах самой же 1С продвигать. Если сделать интеграцию через 402 то можно прикручивать и .Net и Java и Питоны и прочие платформы с информацией о типе
|
|||
406
Сниф
31.05.16
✎
17:25
|
(405) Что такое "интеграция через 402" ? )
|
|||
407
Кирпич
31.05.16
✎
17:27
|
(406) матофильтр не пропускает, потому и пишет "интеграция через 402"
|
|||
408
Serginio1
31.05.16
✎
17:30
|
(406) 402 это номер поста
|
|||
409
Сниф
31.05.16
✎
17:30
|
(407) Почему не через 404? Кажется, я что-то упускаю, как говорят манъяки и копы в фильмах.
|
|||
410
Сниф
31.05.16
✎
17:31
|
(408) Понял. Извини, кажется, что я тут флужу, но это я тебе ветку поднимаю.
|
|||
411
Кирпич
31.05.16
✎
17:34
|
(405) ты бы на пальцах объяснил чего ты делаешь с помощью этого 402
написал бы текст программы на языке 1с. так вот это мол будет выглядеть. нифига же непонятно людям чего ты изобретаешь там. |
|||
412
Serginio1
31.05.16
✎
17:42
|
(411) Ну это не для 1С.
В Native BK есть базовый класс с виртуальными методами IComponentBase bool CAddInNative::Init(void* pConnection) long CAddInNative::GetInfo() void CAddInNative::Done() bool CAddInNative::RegisterExtensionAs(WCHAR_T** wsLanguageExt) long CAddInNative::GetNProps() long CAddInNative::FindProp(const WCHAR_T* wsPropName) const WCHAR_T* CAddInNative::GetPropName(long lPropNum, long lPropAlias) bool CAddInNative::GetPropVal(const long lPropNum, tVariant* pvarPropVal) bool CAddInNative::SetPropVal(const long lPropNum, tVariant* varPropVal) bool CAddInNative::IsPropReadable(const long lPropNum) bool CAddInNative::IsPropWritable(const long lPropNum) long CAddInNative::GetNMethods() long CAddInNative::FindMethod(const WCHAR_T* wsMethodName) const WCHAR_T* CAddInNative::GetMethodName(const long lMethodNum, const long lMethodAlias) long CAddInNative::GetNParams(const long lMethodNum) bool CAddInNative::GetParamDefValue(const long lMethodNum, const long lParamNum, tVariant *pvarParamDefValue) bool CAddInNative::HasRetVal(const long lMethodNum) bool CAddInNative::CallAsProc(const long lMethodNum, tVariant* paParams, const long lSizeArray) bool CAddInNative::CallAsFunc(const long lMethodNum, tVariant* pvarRetValue, tVariant* paParams, const long lSizeArray) void CAddInNative::SetLocale(const WCHAR_T* loc) bool CAddInNative::setMemManager(void* mem) |
|||
413
Serginio1
31.05.16
✎
17:48
|
На самом деле нужны только
Init(void* pConnection) Done() А все остальные замещает нетовский аналог public object InvokeMember( string name, BindingFlags invokeAttr, object[] args ) Где BindingFlags - перечисление отвечающее за тип вызова (метод,чтение или установка свойства) https://msdn.microsoft.com/ru-ru/library/system.reflection.bindingflags(v=vs.110).aspx |
|||
414
Serginio1
31.05.16
✎
17:51
|
И этот объект можно было бы создавать на стороне ВК и передавать в параметрах ВК. При этом можно передавать и объекты 1С
|
|||
415
Сниф
31.05.16
✎
17:57
|
Serginio1 поддержу ветку
А что ты думаешь про наследование в 1С на обработках? Например, обработка "Животное" имеет метод "ВыдатьЗвук()". Неопределенное животное выдает звук: "Ыыы!". Создаем еще две обработки - Кошка и Собака. Обе обработки имеют свойство Родитель - обработка "Животное". Для "псевдонаследования" нужно, чтобы обработка имела только один метод - ВыполнитьКоманду(). Если метод "ВыдатьЗвук" не определен для кошки, то в модуле обработке обращаемся к Родитель.ВыдатьЗвук(). |
|||
416
Pistol
31.05.16
✎
18:05
|
||||
417
Serginio1
31.05.16
✎
18:07
|
(415) 1С идет по пути утиной типизации. Смысл такой если у неё есть метод ВыдатьЗвук значит она животное.
На самом деле в 1С есть совмещение клиентского и серверного кода что упрощает разработку. Но хочется то большего. В .Net есть такие кострукции как yield и await. Смылс их в том, что они на основании метода создают класс с переменными метода и методами которые вызываются после определенных событий. Так с помощью них можно решать проблемы с модальностью. Можно запихивать серверный код внутри клиентского. Ну и конечно на основе таких классов делать замыкания. |
|||
418
Сниф
31.05.16
✎
18:14
|
(417)
Через Выполнить - если в обработке (Кошка) реализован метод ВыдатьЗвук(стр) (Сообщить "Мяу," + стр); то кошка мяукает. А если для собаки не реализован метод ВыдатьЗвук(), то в Попытке/Исключении идет обращение к Родитель.ВыдатьЗвук(). То есть собака выдает звук базового животного, так как у нее непрописан метод в обработке. |
|||
419
Serginio1
31.05.16
✎
18:18
|
(418) Это все понятно. Это можно и сейчас завести поле родитель и присвоить модуль родителя. Но это менее актуально по сравнению с 417. Там резко производительность повышается.
|
|||
420
Кирпич
31.05.16
✎
18:23
|
(412) ничо не понял. Это для 1с или не для 1с? ВК не для 1с? Если для 1с то нипиши пример кода на 1с.
|
|||
421
Кирпич
31.05.16
✎
18:26
|
Звук базового животного:))
|
|||
422
Сниф
31.05.16
✎
18:59
|
(421) Ыыы)
|
|||
423
Pistol
31.05.16
✎
20:00
|
Вот так вот, не напрягаясь, животрепещущую тему о героическом дотнете свели к крикам животных. Браво! =)
|
|||
424
Serginio1
31.05.16
✎
22:36
|
(421)
В 412 Это класс наследник IComponentBase, базового класса для всех вк. Я показал какие внутри него методы. А в 413 мое видение этого класса. На 1С сейчас это выглядит как ПодключитьВнешнююКомпоненту(ИмяФайла, ИмяМетки,ТипВнешнейКомпоненты.Native); Компонента = Новый("AddIn."+ИмяМетки+"."+ИмяРасширения); Ты Native ВК ещё не писал? |
|||
425
Кирпич
31.05.16
✎
22:55
|
(424) "Ты Native ВК ещё не писал?.
Да штук восемь написал. меня вот это интересует "И этот объект можно было бы создавать на стороне ВК и передавать в параметрах ВК. При этом можно передавать и объекты 1С" как ты объекты собрался передавать? 1с же вроде запрещает это в NativeAPI |
|||
426
Garykom
гуру
01.06.16
✎
00:06
|
(425) А кто мешает создать объект в памяти и передать (базовые то типы можно же передавать) "ссылку на объект" а по сути некий адрес в памяти?
|
|||
427
Злопчинский
01.06.16
✎
00:55
|
Как писать программы на 1С, чтоб их понял не только процессор, но и человек?
Вводная статья по рефакторингу в среде 1С Известен такой анекдот. Вызывает профессор-лингвист студента к доске и говорит: «Пиши: Глокая куздра штеко будланула бокра и курдячит бокренка». «Чего-чего?» было спросил студент, но с авторитетом профессора спорить не стал и честно записал эту абракадабру. А теперь, - сказал профессор, объясни – о чем говорится в этом предложении? На студента стало жалко смотреть и лектор сжалился. - Ну, кто здесь главное действующее лицо? - Ку… куздра, - промямлил студент - А какая она, эта куздра? - Глокая! - уже уверенней произнес студент - А на кого направлено действие? - На бокра! - И что эта куздра сделала? - Она его будланула! – выкрикнули из аудитории со смехом. - И штеко, причем, будланула, добавил, улыбнувшись, профессор. - А вот бокр – он живой? Студент задумался… - А! Да! У него бокренок есть! - У бочки тоже есть бочонок, но это не значит, что она живая. Если бы бокр был неживой, мы бы сказали «булданула бокр», это винительный падеж «кого, что». Итак, не зная смысла ни одного существительного, прилагательного или глагола мы уже можем достаточно много рассказать о происшедшем. Информацию об этом мы извлекли из вроде бы незначащих вещей – падежей, союзов, окончаний, определяющих отношения между словами в предложении. Теперь вернемся от языковедения к программированию. При чем здесь Глокая куздра? Много говорилось о том, что названия процедур, функций и переменных должны быть «говорящими» должны соответствовать логике их использования. Но не менее говорящими должны быть и связи между идентификаторами! Даже не зная конкретного смысла программы, можно с первого взгляда увидеть, как она устроена. |
|||
428
Злопчинский
01.06.16
✎
00:56
|
Как этого достичь?
Возьмем Глокую куздру. Но что это? Известно, что Глокая куздра может выполнять несколько действий. Она умеет будлануть, а умеет и курдячить т.е. представляет собой несколько связанных действий. Также известно, что эта куздра именно глокая, т.е. есть изменяемый параметр, явно в природе существуют и другие куздры – неглокие. В 1С логичнее всего оформить нашу куздру как обработку. Ведь бокров она именно «обрабатывает». Теперь, если ввести в тексте программы Куздра. (с точкой), то система покажет все, что эта куздра умеет делать. Глокая пусть будет реквизитом обработки. Сегодня Куздра будет Глокая, т.е. Куздра.Глокая = Истина Дальше возьмемся за бокра. Документ или справочник наш герой, не так важно, т.к. сам он ничего не делает, кроме одного: как мы помним, куздра его будланула. Т.е. явно состояние бокра изменилось, произошло действие! Что у нас отвечает за действие, что в 1С заменяет глаголы? Процедуры и функции. Теперь нужно выбрать, что будем применять. Можно написать Куздра.Будланула(бокра); и это будет почти по-русски. Но из этой записи совершенно не понятно, изменился бокр или нет. Опять же, куздра булданула его штеко т.е. с параметром. Получится Куздра.Булданула(Бокра, Штеко) Здесь непонятно, кого куздра булданула – бокра или штеко, что является результатом действия, а что - его параметром. Самый правильный выход – написать Бокр = Куздра.Будланула(Бокр, Штеко) Теперь все методически правильно. Бокр является параметром и результатом (т.е. изменено его состояние, это объект над которым произошло действие), штеко – параметр. Соответственно продолжим наше повествование. Из него не совсем понятно, когда же это все кончится, когда глокая куздра все-таки закурдячит бокренка, ведь висящая программа нам не нужна. Допустим, бокренка есть функция Конец(), которая определяет конец закурдяченности. Получится такая вот такая конструкция Пока Не Бокренок.Конец() Цикл Бокренок = Куздра.Курдячит(Бокренок) КонецЦикла Здесь мы выразили непрерывное, повторяющееся действие через цикл (допустив, что прекращение действия зависит от Бокренка. Если оно зависит, например, от Бокра или состояния самой ГлокойКуздры, это тоже можно было выразить). Дальше еще можно добавить связь между Бокром и Бокренком. Оба они бокры! Значит, это можно выразить, объединив их в структуру, что может понадобиться, например, если нужно будет передать куда-то всех бокров скопом, а не поодиночке. |
|||
429
Злопчинский
01.06.16
✎
00:57
|
Итого у нас получилось
Куздра.Глокая = Истина; Бокры.Бокр = Куздра.Будланула(Бокры.Бокр, Штеко); Пока Не Бокры.Бокренок.Конец() Цикл Бокры.Бокренок = Куздра.Курдячит(Бокры.Бокренок); КонецЦикла; Конечно, по сравнению с богатством русского языка, в пересказе на макроязыке 1С некоторые нюансы шедевра потерялись, но главная нить по-прежнему вполне улавливается. А значит и в языке программирования операторы отношения и присваивания имеют выразительный смысл, который можно и нужно использовать! Формализуем правила Связанные между собой по-смыслу действия процедуры и функции полезно объединять Нужно четко отделять само действие, объект, на который действие направлено и параметры действия. Это три разные вещи! Для показа изменения состояния объектов данных нагляднее использовать функции, а не процедуры. А так как функция возвращает только один результат не нужно одной процедурой менять все сразу! ГлокаяКуздра(Бокра, Бокренка, Будланула, Курдячит) это не наш путь! Продолжение - следует! |
|||
430
Злопчинский
01.06.16
✎
00:58
|
Можно предположить, что Куздра стала глокой именно после булдания бокра и глокой является именно во время курдчания бокренка... то есть типа так:
.. Бокры.Бокр = Куздра.Булданула(Бокры.Бокр, Штеко); Пока Не Бокры.Бокренок.Конец() Цикл Бокры.Бокренок = Куздра.Курдячит(Бокры.Бокренок); Куздра.Глокая = Истина; КонецЦикла; Куздра.Глокая = Ложь; .. согласитесь - результат состояния Куздры - принципиально иной у автора и приведенном мной коменте... |
|||
431
Злопчинский
01.06.16
✎
00:59
|
> куздра куздрячит.
давайте не будем скатываться к примитивизму... "куздра куздрячит" - понятно, что это обозначает действие _изначально_ характерное для куздры... но как таковая куздра сама по себе - нас не интересует... "кузрячит" - эквивалентно "рабочий работает" - т.е. энтропия данного сообщеняи близка к 0... "Куздра ... курдячит" - гораздо более емкое обпределение действия, которое поязволяет сделат вывод о том, что куздра имеет не одну степень свободы (куздрячит) а - гораздо больше! т.е. отсюда можно сделать вывод что куздра - суть многофункциональный объект/субъект! это подтверждается также и тем, что куздра еще может/умеет/выполняет БУЛДАНИЕ БОКРА, т.е. как минимум, куздра имеет три стпени свободы - 1.куздрячение (как изначально принадлежащее куздре по самоей ее сути) 2. кудрячение (бокренка!!!! не кого именно, а как минимум - бокренка) и 3. булдание (бокра, а не кого попало)... .. вышеприведенный анализ позволяет также сделать вывод о том, что куздра - многофункциональный субъект/объект с избирательной "программой" действия, определяемой окружающей обстановкой (бокренка - кудрячит, болдание - бокра), т.е. присутствует обратная связь в определяющих мотивах поведения куздры... ..Вопрос о том, является ли куздра искуственным объектом/субъектом, однозначно определяемым конечным набором кортежей "действие куздры - объект вблизи куздры", или же куздра является объектом живой природы с ненормированным поведением в условиях нормированной/ненормированной внешней обстановки - на данный момент остается открытым... |
|||
432
Злопчинский
01.06.16
✎
00:59
|
||||
433
Serginio1
01.06.16
✎
07:37
|
413+ Ну конечно нужно добавить
bool CAddInNative::setMemManager(void* mem) (425) Сейчас нельзя, но я предлагаю вариант типа IDispatch где можно передавать в том числе и объекты 1С. Сейчас придется использовать двоичные данные, что бы в них устанавливать свою структуру для того, что бы понять что это за объект. При получении такого объекта на стороне 1С нужно создать ВК обертку и передать эту структуру. Внутри уже вызывать методы используя ссылку. При передачи в параметрах такой структуры, нужно получать ссылку и передавать уже на сторону .Net. Можно обойтись и просто ссылкой, но тогда при передаче параметров будет непонятно, что это ссылка. БинарныеДанные тоже придется упаковывать в эту структуру. |
|||
434
Serginio1
01.06.16
✎
07:59
|
433 Можно конечно использовать информацию о методе, так как так или иначе нужно передавать в GetNParams количество параметров. Но в .Net есть перегрузка методов где параметр может быть и интом и объектом
|
|||
435
Кирпич
01.06.16
✎
09:10
|
(433) "Сейчас нельзя, но я предлагаю вариант типа IDispatch где можно передавать в том числе и объекты 1С"
1С не даст тебе передать объект и точка. Куда ты будешь пихать этот свой IDispatch? Тут без хака никак. |
|||
436
Кирпич
01.06.16
✎
09:13
|
(433) "Сейчас придется использовать двоичные данные, что бы в них устанавливать свою структуру для того, что бы понять что это за объект. "
я от тебя добиваюсь уже второй день, чтобы ты написал как это будет выглядеть в коде 1с, но тебя похоже это вообще не интересуеть :)) программирование сферического коня в вакууме мля. |
|||
437
mksk
01.06.16
✎
09:13
|
ADO на скуль достаточно чтобы не делать мозги
|
|||
438
Serginio1
01.06.16
✎
09:56
|
(436)
Возьме для примера Комовский вариант Список=Врап.СоздатьОбъект("System.Collections.Generic.List`1[System.String]"); Для сч=1 По 10 Цикл Список.Add(строка(сч)); КонецЦикла; На Native будет так. Врап=Новый("Addin.VK.WrapperNet"); Список=Новый("Addin.VK.NetObject"); Данные=Врап.СоздатьОбъект("System.Collections.Generic.List`1[System.String]"); Объект.Обернуть(Данные); Для сч=1 По 10 Цикл Список.Add(строка(сч)); КонецЦикла; |
|||
439
Serginio1
01.06.16
✎
09:57
|
(435) Все течет все меняется. Еще раз если сделать базовый класс по аналогии с 413 то можно все
|
|||
440
Serginio1
01.06.16
✎
09:58
|
438+ Вот так будет
Врап=Новый("Addin.VK.WrapperNet"); Список=Новый("Addin.VK.NetObject"); Данные=Врап.СоздатьОбъект("System.Collections.Generic.List`1[System.String]"); Список.Обернуть(Данные); Для сч=1 По 10 Цикл Список.Add(строка(сч)); КонецЦикла; |
|||
441
Кирпич
01.06.16
✎
09:59
|
(440) ну слава богу. теперь понятно.
|
|||
442
Serginio1
01.06.16
✎
10:00
|
(441) Не богу, а мне!
И я могу передавать Данные в параметрах |
|||
443
Кирпич
01.06.16
✎
10:01
|
+(441) только с объектами самой 1с засада
|
|||
444
Serginio1
01.06.16
✎
10:05
|
(443) Можно сделать по аналогии с Net и хранить объекты в массиве и передавать индекс на них.
Если нужны данные вызывать внешнее событие, в событии выставлять значение. Но лучше добиваться от 1С что бы они сделали аналог Idispatch как 413. |
|||
445
Кирпич
01.06.16
✎
10:13
|
(444) да блин такой огород городить. 1с правильно всё делает. И объекты запрещает передавать тоже правильно.
Мой подход такой: Нужно сделать что-то что 1с делать не умеет, напиши ВК с конкретным функционалом и приложи бумажку с описанием функций. Всё конкретно, понятно и не противоречит концепции предложенной фирмой 1с. А эти обертки и свистелки это не по мне. |
|||
446
Serginio1
01.06.16
✎
10:20
|
(445) То ессть в Microsoft Dynamics дураки?
Интересно, что в Microsoft Dynamics AX есть ClrObject ?https://msdn.microsoft.com/en-us/library/clrobject.aspx ?https://msdn.microsoft.com/en-us/library/clrobject.new.aspx Вот пример применения ?https://blogs.msdn.microsoft.com/x/2010/01/19/traversing-elements-in-an-ienumerable-from-x/ Вот поэтом в том же линуксе используют Вэб сервисы, а не ВК. 1С позволяет передавать объекты (IDispatch), но только в COM. Я в 413 предлагаю его аналог. И это никак не противоречит концепции. |
|||
447
Serginio1
01.06.16
✎
10:23
|
(445) На самом деле Внутри COM те же обертки свистелки.
Transparent Proxy, Real Proxy |
|||
448
spock
01.06.16
✎
10:32
|
что же вы такое курите?
|
|||
449
Кирпич
01.06.16
✎
10:33
|
(448) чай
|
|||
450
Кирпич
01.06.16
✎
10:34
|
(446) COM это готовые объекты с описанием того, что они делают. Т.е та же ВК. А если все начнут вставлять в 1с всякую мелочь типа System.Collections.Generic.List, то получится бардак, который в 1с не нужен. Ибо сила 1с в стандартах. Все одинесники должны понимать, что пишут другие одинесники. А когда один нафигачит в код объектов из .NET, второй нафигачит объектов из питона, третий из своего любимого Java. Это же крокодил какой то.
|
|||
451
Serginio1
01.06.16
✎
10:41
|
(450) Так оно сейчас так и получается. Для Win есть куча библиотек на COM. А вот для Линукс нет COM вообще. Писать Native ВК не особо то продуктивно. А вот написать библиотеку на C# или JAva и документировать методы, то это ничем не будет отличаться от COM.
|
|||
452
Serginio1
01.06.16
✎
10:42
|
(450) мелочь типа System.Collections.Generic.List в большинстве случаев идет в параметрах методов более мощных библиотек
|
|||
453
Кирпич
01.06.16
✎
11:02
|
(451) "Для Win есть куча библиотек на COM" да не нужны в 1с кучи библиотек на COM. В 1С ИЗРЕДКА возникают прикладные задачи, которые нельзя решить на языке 1с. Например задача об упаковке в контейнеры или ещё какая нибудь хрень.
"Писать Native ВК не особо то продуктивно" чо там непродуктивного? А сидеть втыкать в справку .NET, копипастить оттуда названия методов и переключаться без конца с русского на английский это продуктивно? Ладно бы просто заставить ВК выполнить кусок кода на С# куда не шло, но вот это русско-английское дотнет месиво в модуле 1с это идиотизм, я щетаю. |
|||
454
Serginio1
01.06.16
✎
11:26
|
(453) Угу начиная от ADO, Экселей с вордами итд.
Еще раз Вэб сервисы сплошь на латинице. При этом ты же не кричишь на каждом шагу, что это идиотизм? Ну напиши ВК с сотней методов и классов. И сравни продуктивность. Написать библиотеку на кирилице тебе никто не запрещает. Все в твоих руках. |
|||
455
Кирпич
01.06.16
✎
11:40
|
Экселей с вордами уже есть и по другому тут не будет. А вот самому себе писать русско-английское дотнет месиво в модуле 1с это идиотизм.
|
|||
456
Кирпич
01.06.16
✎
11:45
|
(454) "Ну напиши ВК с сотней методов и классов" таких задач не бывает для ВК
|
|||
457
Serginio1
01.06.16
✎
11:52
|
(455) Ну ты же пишешь. СОМ, ОбъектXDTO (заметь в названии 2 языка) Методы вэб сервисов. И с Экселеи и Вордом.
На линуксе то нет COM. И из линукса большинство используют Вэб сервисы которые на латинице. Мало того 1С хочет на зарубежный рынок, а там мешанины не быдет. (456) Да? Вот тебе небольшие библиотечки .Net в 1С. Парсинг сайтов, multipart/form-data, gzip итд Опять же тот же Эксель Ворд |
|||
458
Кирпич
01.06.16
✎
12:07
|
(457) "Да? Вот тебе небольшие библиотечки "
Да. Не нужны эти библиотечки. Нафига делать парсинг сайта на 1с. Смысл? Выигрыша в скорости нет. Писать неудобно. Лучше сделай отдельную ВК или отдельный EXE для парсинга конкретного сайта или напиши скрипт на каком нибудь node.js. Задача разовая. Зачем мучить себя и того, кто придет после тебя. |
|||
459
Serginio1
01.06.16
✎
12:22
|
(458) Во во куча DLL b Exe вместо одной. Плюс регистрация итд. При этом написать парсинг может любой 1С ник на примерах. А сайтов может быть десятки. Проблема еще в том, что DLL ки висят в памяти и не выгружаются. А код на 1С можно править в любой момент.
Насчет неудобства. То да как правило я пишу сначала на C# потом переношу на 1С. Но например так как кода для парсинга сайтов пришлось писать много, то писал прямо на 1С и никаих неудобст не почувствовал. Ты то хоть попробовал? |
|||
460
Serginio1
01.06.16
✎
12:23
|
459 Люди пользуются и не жужжат. Там другая проблема нужно разбираться с селекторами.
|
|||
461
Кирпич
01.06.16
✎
12:28
|
(459) "То да как правило я пишу сначала на C# потом переношу на 1С" вот этого я и не хочу делать. Хочу писать на C# и запускать в 1С. А уж через DLL или EXE или через ВК, которая загружает файл с кодом на С# и выполняет, это уже кому как нпавится.
|
|||
462
Serginio1
01.06.16
✎
13:09
|
(461) Еще раз приведу пример как я начал делать. Я был таким как и ты писал COM DLL коих была куча.
Но раз мне стала проблема соединиться с Вэб сервисом с WS протоколами коих 1С не поддерживает. В .Net это делается элементарно через Добавить ссылку на службу и получить WCF клинта. Но вод беда этих классов под сотню и столько же методов. Оборачивать это все вручную муторно. А вот через обертку легко. Дальше все DLL нужно регистрировать. Используя мою обертку это не нужно. И можешь использовать кириллицу в названиях методов и никакого смешения языков не будет. В конце концов не хочешь не используй. Я же тебя не заставляю. |
|||
463
Кирпич
01.06.16
✎
13:34
|
(462) "Оборачивать это все вручную муторно. А вот через обертку легко. " Нафиг оборачивать 100 функций, если можно сделать одну DLL с одной функцией типа "ПолучитьДанныеССервиса()" или "ЗапиститьСервис()"
"Дальше все DLL нужно регистрировать" dll можно не регистрировать уже лет восемь. да и NativeAPI уже есть. "В конце концов не хочешь не используй. Я же тебя не заставляю." так я и не буду испольщовать. нафиг я буду свои глаза ломать. |
|||
464
Serginio1
01.06.16
✎
13:55
|
(463) Не ломай.
Еще раз программируя на C# ты можешь передавать только COM совместимые типы. Сразу видно ты не работал с Вэб сервисами? ОбъектXDTO. Ничем тебе ПолучитьДанныеССервиса() не поможет. Нужно создавать объекты XDTO передавать их в методы. Получать итд. На NativeAPI ты на C# уже не попишешь. Только делать обертку через C++/CLI. И вот я предлагаю тебе писать на C#, но использовать её через Native ВК. А вот на C# пиши на кирилице и все будет на одном языке. Никто же не запрещает. |
|||
465
Serginio1
01.06.16
✎
13:56
|
Ктати кргда ты говоришь про NativeAPI, то ты даже не понял, что в 412
|
|||
466
Кирпич
01.06.16
✎
14:07
|
(464)"На NativeAPI ты на C# уже не попишешь" да можно, только никто не пишет.
"Нужно создавать объекты XDTO передавать их в методы." ну если надо, то ради бога. "А вот на C# пиши на кирилице и все будет на одном языке." еще этого не хватало. "то ты даже не понял, что в 412" там вроде интерфейс на С++. что я должен там ещё понять? |
|||
467
Serginio1
01.06.16
✎
14:12
|
(466)
На NativeAPI ты на C# уже не попишешь" да можно, только никто не пишет Покажи пример. Буду благодарен. Кстати Использование .NET сборок в 1С 8.2, 8.3 без установки и без регистрации в реестре http://catalog.mista.ru/public/300091/ Но там можно использовать только простые типы. >>А вот на C# пиши на кирилице и все будет на одном языке." еще этого не хватало Ты же хочешь, что бы методы были на кириллице? Ты же пишешь ВК. А для натива C++ основной. |
|||
468
Кирпич
01.06.16
✎
14:21
|
(497) "Покажи пример. Буду благодарен. Кстати" на форуме инфостарта поищи. там был уже ненормальный дотнетчик, который эту проблему решал. и таки решил.
"Ты же хочешь, что бы методы были на кириллице?" я хочу чтобы было на одном языке и работало быстро. пофиг на каком. можно в 1с писать на английском, но дергать методы ВК в цикле будет долго и код будет непонятный. я за то, чтобы ВК делала свою сложную работу и выдавала в 1с готовый результат. "Ты же пишешь ВК. А для натива C++ основной." NativeAPI и на ассемблере можно писать. и на IL ассеблере тоже. |
|||
469
mksk
01.06.16
✎
15:33
|
(0)вы можете предложить что-то конкретное?
|
|||
470
Serginio1
01.06.16
✎
15:35
|
>> я хочу чтобы было на одном языке и работало быстро. пофиг на каком. можно в 1с писать на английском, но дергать методы ВК в цикле будет долго и код будет непонятный. я за то, чтобы ВК делала свою сложную работу и выдавала в 1с готовый результат.
Так пиши DLL и подгружай через мою оболочку. Не надо думать о COM итд. И поверь написать просто DLL намного проще чем возиться с ВК. |
|||
471
Serginio1
01.06.16
✎
15:37
|
(469) http://ru.stackoverflow.com/questions/527763/%d0%9a%d0%b0%d0%ba-%d0%b2%d1%8b%d0%b7%d0%b2%d0%b0%d1%82%d1%8c-%d0%bc%d0%b5%d1%82%d0%be%d0%b4-%d0%b8%d0%b7-c-%d0%b2-1%d0%a1/527802#527802
Сейчас пробую прикрутить .Net Core через нативе Вк http://ru.stackoverflow.com/questions/523386/%d0%92%d1%8b%d0%b7%d0%be%d0%b2-%d1%83%d0%bf%d1%80%d0%b0%d0%b2%d0%bb%d1%8f%d0%b5%d0%bc%d0%be%d0%b3%d0%be-%d0%ba%d0%be%d0%b4%d0%b0-net-core-%d0%b8%d0%b7-%d0%bd%d0%b5%d1%83%d0%bf%d1%80%d0%b0%d0%b2%d0%bb%d1%8f%d0%b5%d0%bc%d0%be%d0%b3%d0%be |
|||
472
Кирпич
01.06.16
✎
16:25
|
(470) "Так пиши DLL и подгружай через мою оболочку." я и свою оболочку сделаю, если мне надо будет.
"И поверь написать просто DLL намного проще чем возиться с ВК." одинаково. взять шаблон и добавить названия своих методов это минутное дело. |
|||
473
Serginio1
01.06.16
✎
16:30
|
(472) Ну можешь взять мою разработку и наваять свою.
Так ВК то на чем пишешь? На самом деле проще написать DLL на C# чем возиться с ВК. Но ты хозяин барин. Пиши на чем угодно. Но проблема то Линукс как раз в том, что ВК писать неудобно. Проще Вэб сервис наваять на любом высокоуровневом языке. |
|||
474
Help1с
02.06.16
✎
14:40
|
не совсем в тему. :)
автор, помоги пожалуйста ЭЦП, Сетрификат, Подпись. Продолжение. |
|||
475
Бертыш
03.06.16
✎
14:42
|
(0) Интересует твой опыт для внешних компонент под 1С на C# для наполнения твоими бесплатными статьями с инфостата своего сайта по теме внешних компонент. Я то только начал смещаться в сторону C#, а у тебя уже вон какой опыт. Давай дружить. Можно стартап под тему компонент замутить.
|
|||
476
Serginio1
03.06.16
✎
14:57
|
(475) Ок. Говори, что надо постараюсь помочь чем смогу.
Просто мало кому это нужно, хотя написать компоненту, значительно проще чем предлагает 1С. В том числе и использование Глобального Контекста и Внешних Событий их замена через использование событий через Добавить обработчик |
|||
477
Garykom
гуру
03.06.16
✎
15:10
|
Проблема 1С с NativeAPI и C#/.Net как понимаю только в переменных-объектах?
Технически можно извратиться слегка и использовать переменные внутри ВК, а для получения их значений в 1С реализовать ВК.Get("Перем1").AsString()/AsInt()/AsDate() и т.д. |
|||
478
Serginio1
03.06.16
✎
15:25
|
(477) Проблема NativeAPI и C# в том, что нужно хранить ссылки в массиве на стороне .Net в массиве и передавать на сторону 1С индекс в массиве.
Второе, это то, что в NativeAPI нет аналога IDispatch нужно в параметрах передавать структуру упакованную в двоичные данные, что бы было понятно, что это объект. Так как даже имея информацию о методе могут быть перегрузки как с объектом так и int. Ну и соотвественно нужно вручную оборачивать объекты На Native будет так. Врап=Новый("Addin.VK.WrapperNet"); Список=Новый("Addin.VK.NetObject"); Данные=Врап.СоздатьОбъект("System.Collections.Generic.List`1[System.String]"); Объект.Обернуть(Данные); Для сч=1 По 10 Цикл Список.Add(строка(сч)); КонецЦикла; |
|||
479
Serginio1
03.06.16
✎
15:26
|
Объект.Обернуть(Данные);
читать как Список.Обернуть(Данные); |
|||
480
Garykom
гуру
03.06.16
✎
15:33
|
(478) Может так не выделываться а по принципу запросов в 1С?
Создается объект запрос, пишется-присваивается код запроса, устанавливаются параметры, выполняется и получаем результат. Так и тут для начала сделать, создаем объект ВК, устанавливаем код C# (нативный) и параметры, выполняем. Результат выполнения получаем и используем в 1С. |
|||
481
Garykom
гуру
03.06.16
✎
15:35
|
(480)+ Да писать придется на нативном C#/.Net но возможно это будет даже проще без постоянных оберток?
Тупой копи-пасте из примеров в инете, небольшой допил в начале и в конце и сразу использование. Но что удобно так динамическое создание кода для выполнения в .Net, причем без VS и прочих студий/компиляторов. |
|||
482
Serginio1
03.06.16
✎
15:40
|
(483) У нативного .NEt та же сборка мусора, а NativeAPI позволяет передвать только простые типы. Уже сделана такая обертна на основе CLR Host http://catalog.mista.ru/public/300091/
Но он только под вин и Статические классы не поддерживаются; Конструктор должен быть без параметров; Поддерживаются только следующие типы для обмена с 1С: System.String; System.Boolean; System.Int32; System.Double; System.Byte[]; Out и ref параметры не поддерживаются в связи с тем, что не получилось это реализовать, см. описание метода, если кто разберется, как это сделать, буду очень рад. |
|||
483
Garykom
гуру
03.06.16
✎
15:44
|
(482) Там не то, там сборки готовые позволяет юзать из 1С без регистрации как ВК.
Но как создать эту сборку причем очень просто сразу из 1С? Причем создать с нужным кодом с помощью кода на языке 1С? |
|||
484
Кирпич
03.06.16
✎
15:47
|
(480) вот вот. типа как Windows Script использовать
|
|||
485
Garykom
гуру
03.06.16
✎
15:52
|
(484) Самый профит что можно будет начинать делать библиотеку плагинов/расширений к этой ВК.
Т.е. реализовали нечто на C#/.Net и засовываем в свою либу которая штатно к ВК подключается и процедуры/функции оттуда можно вызвать. |
|||
486
Garykom
гуру
03.06.16
✎
15:53
|
(485)+ хм... а если в ВК встроить аналог NuGet...
|
|||
487
Serginio1
03.06.16
✎
15:53
|
(483) Я уже написал. Сейчас С++ изучаю и попробую для начала это прикрутить http://www.fancy-development.net/hosting-net-core-clr-in-your-own-process
|
|||
488
Garykom
гуру
03.06.16
✎
15:56
|
(487) Интересненько... Встроить CLR внутрь 1С NativeAPI ВК на C++?
Без внешнего (снаружи ВК) сохранения кода и компиляции сборок? |
|||
489
Serginio1
03.06.16
✎
15:58
|
(483) У меня тоже готовые сборки. Классы то хранятся в сборках. Просто у него объекты не возвращаются, а делается оберка над объектом по передаме строковому представлением типа
(488) На .Net пишем класс со статическими методами. Передамем в параметрах ссылку на память в которую сериализуются параметры и название метода. Обычный маршалинг |
|||
490
xxTANATORxx
06.06.16
✎
11:58
|
(0)сейчас был звонок, ищут прогерра 1С со знанием языка С, говорят что не могут найти такового
интересует? |
|||
491
Gary417
06.06.16
✎
12:10
|
(490) <не могут найти такового>
очень любопытно было бы узнать сколько денег дают P.S. чисто из интереса, не претендую т.к. си не знаю |
|||
492
Господин ПЖ
06.06.16
✎
12:14
|
>говорят что не могут найти такового
гинекологи со знанием ухо-горло-носа тоже редки |
|||
493
xxTANATORxx
06.06.16
✎
12:19
|
(491)про деньги не заводили разговор
|
|||
494
Serginio1
06.06.16
✎
12:24
|
(490) Я сейчас только С++ изучаю для использования .Net в NativeAPI.
|
|||
495
Gary417
06.06.16
✎
12:26
|
(493) жаль, потому что обычно на этом разговор и заканчивается ;))
|
|||
496
xxTANATORxx
06.06.16
✎
12:28
|
(494)вот эти товарищи звонили workservice.ru с телефона 4956426359
|
|||
497
Serginio1
06.06.16
✎
12:45
|
(496) Если С то я его знаю на уровне изучения, но не применения.
Большое спасибо за информацию. |
|||
498
xxTANATORxx
06.06.16
✎
12:50
|
(497)та мошт им это и нужно
просьба к модераторам: удалите плиз сообщение (496) |
|||
499
Serginio1
06.06.16
✎
12:53
|
(498) Там еще внутренний номер нужно знать
|
|||
500
Serginio1
06.06.16
✎
12:54
|
(498) Ты им письмо напиши
|
|||
501
Serginio1
06.06.16
✎
16:49
|
Попробовал вызвать CoreCLr из натива.
создал тестовый класс public class Program { public static object ExecuteMethod(object objOrig, string MethodName, params object[] argsOrig) { object res = null; // var obj = objOrig; Type T = objOrig.GetType(); var list = new List<Type>(); foreach (var obj in argsOrig) list.Add(obj.GetType()); var Method=T.GetMethod(MethodName, list.ToArray()); res = Method.Invoke(objOrig, argsOrig); System.Diagnostics.Debug.WriteLine("ExecuteMethod = " + res.ToString()); return res; } public static int TestFunction(int i) { // Console.OutputEncoding = Encoding.UTF8; var rn = new Random(i); // int res = rn.Next(1000); int res =(int)ExecuteMethod( rn,"Next",10000); return res; } } |
|||
502
Serginio1
06.06.16
✎
16:54
|
Пример взял отсюда http://www.fancy-development.net/hosting-net-core-clr-in-your-own-process
И соответственно вызов typedef int (STDMETHODCALLTYPE *ManagedMethod)(int); HRESULT CreateDelegate2(ICLRRuntimeHost2* pCLRRuntimeHost, DWORD appDomainID, wstring AssemblyName, wstring ClassName, wstring MethodName, INT_PTR *fnPtr) { HRESULT hr = pCLRRuntimeHost->CreateDelegate( appDomainID, AssemblyName.c_str(), ClassName.c_str(), MethodName.c_str(), (INT_PTR*)fnPtr); return hr; } И вызов ManagedMethod pTestFunction; hr = CreateDelegate2(pCLRRuntimeHost, domainId, L"CoreClrDLL", L"CoreClrDLL.Program", L"TestFunction", (INT_PTR*)&pTestFunction); if (FAILED(hr)) { printf_s("Failed to create a delegate to the managed entry point: (%d).\n", hr); } else printf_s("result method pTestFunction(555) : (%d).\n", pTestFunction(555)); |
|||
503
Serginio1
06.06.16
✎
17:16
|
Нет InvokeMember придется вручную искать перегруженную функцию.
Вобщем оболочку можно сделать |
|||
504
Serginio1
10.06.16
✎
10:11
|
0
голос против accept В поисках замены InvokeMember мне посоветовали использовать DLR http://rsdn.ru/forum/dotnet/6464866.1 Суть такова, что бы заставить искать подходящий метод DLR по количеству аргументов. Можно нагенерировать методы по количеству параметров например до 16 и для каждого типа и имени метода сохранять и вызывать. http://rsdn.ru/forum/dotnet/6465142.1 Но есть недостаток, этот подход не касается ref и out параметров. В итоге решил сам искать нужный метод. Здесь набросок того как искать. http://rsdn.ru/forum/dotnet/6466131.1 И при таком подходе можно добавить для каждого типа типы содержащие методы расширители и их использовать при поиске нужно сигнатуры. Кроме того можно использовать дженерик методы тип которых можно определить по типу параметров. |
|||
505
Serginio1
15.06.16
✎
12:37
|
Добил поиск метода
http://rsdn.ru/forum/dotnet/6471273.1 Поэкспериментировал с CallBack [UnmanagedFunctionPointer(CallingConvention.Cdecl)] delegate void myDelegate(IntPtr thisptr); public static void TestCallBack(IntPtr Str,IntPtr FuncPtr) { myDelegate fun = Marshal.GetDelegateForFunctionPointer<myDelegate>(FuncPtr); fun(Str); var str = Marshal.PtrToStringUni(Str); } На С++ typedef void(STDMETHODCALLTYPE *ManagedTestCallBack)(const wchar_t*, void(*) (const wchar_t*)); typedef void(STDMETHODCALLTYPE *ManagedTestCallBack)(const wchar_t*, void(*) (const wchar_t*)); void TestCallBack(const wchar_t* str) { printf_s("Return string %S.\n", str); } ManagedTestCallBack pTestCallBack; hr = CreateDelegate2(pCLRRuntimeHost, domainId, L"CoreClrDLL", L"CoreClrDLL.Program", L"TestCallBack", (INT_PTR*)&pTestCallBack); if (FAILED(hr)) { printf_s("Failed to create a delegate to the managed entry point: (%d).\n", hr); } else { wchar_t* str = L"Test str from unmanaged"; pTestCallBack(str, TestCallBack); } ManagedTestCallBack pTestCallBack; hr = CreateDelegate2(pCLRRuntimeHost, domainId, L"CoreClrDLL", L"CoreClrDLL.Program", L"TestCallBack", (INT_PTR*)&pTestCallBack); if (FAILED(hr)) { printf_s("Failed to create a delegate to the managed entry point: (%d).\n", hr); } else { wchar_t* str = L"Test str from unmanaged"; pTestCallBack(str, TestCallBack); } Работает. Так что можно память выделять на стороне натива и использовать обратные вызовы. |
|||
506
Serginio1
15.06.16
✎
12:38
|
||||
507
Serginio1
16.06.16
✎
14:32
|
Сделал маршалинг из _tVariant натива в манагед
http://rsdn.ru/forum/dotnet/6472655.1 |
|||
508
Gary417
16.06.16
✎
14:59
|
пора уж блог заводить, а то на форуме это выгдядит "Тихо сам с собою, я веду беседу" (с)
|
|||
509
Serginio1
16.06.16
✎
15:04
|
Я этим просто приподымаю ветку. Может кого и заинтересует.
По мере продвижения выкладваю сюда http://ru.stackoverflow.com/questions/523386/%d0%92%d1%8b%d0%b7%d0%be%d0%b2-%d1%83%d0%bf%d1%80%d0%b0%d0%b2%d0%bb%d1%8f%d0%b5%d0%bc%d0%be%d0%b3%d0%be-%d0%ba%d0%be%d0%b4%d0%b0-net-core-%d0%b8%d0%b7-%d0%bd%d0%b5%d1%83%d0%bf%d1%80%d0%b0%d0%b2%d0%bb%d1%8f%d0%b5%d0%bc%d0%be%d0%b3%d0%be |
|||
510
Кирпич
16.06.16
✎
15:08
|
(509) а чо такое "Элемент + 44"?
|
|||
511
Serginio1
16.06.16
✎
15:10
|
(510) Это смещене vt
|
|||
512
Serginio1
22.06.16
✎
10:28
|
В общем выхожу на финишную прямую
http://rsdn.ru/forum/dotnet/6478527.1 |
|||
513
Serginio1
23.06.16
✎
11:50
|
Наткнулся на то, что двоичные данные нельзя передать.
Может есть обходной путь? |
|||
514
Garykom
гуру
23.06.16
✎
11:52
|
(513) В строку их
|
|||
515
Serginio1
23.06.16
✎
13:00
|
(514) Это понятно. Интересно а почему ДД то нельзя?
Получить можно, но передать нет? |
|||
516
Serginio1
24.06.16
✎
10:49
|
Сделал
Перем Врап,СсылкаНаДомен; Функция СоздатьОбъектПоСсылке(Ссылка) рез = Новый("AddIn.NetObjectToNative.NetObjectToNative"); рез.УстановитьСсылку(СсылкаНаДомен,Ссылка); возврат рез КонецФункции // СоздатьОбъектПоСсылке() Процедура КнопкаВыполнитьНажатие(Кнопка) СылкаСБ=Врап.Новый("System.Text.StringBuilder","Первая Строка"); //Сообщить(СылкаСБ); СсылкаCultureInfo=Врап.ПолучитьТип("System.Globalization.CultureInfo"); СсылкаCultureInfo=Врап.Новый(СсылкаCultureInfo,"es-ES"); // СultureInfo=СоздатьОбъектПоСсылке(СсылкаCultureInfo); СБ=СоздатьОбъектПоСсылке(СылкаСБ); Сообщить(СБ.Capacity); Сообщить(СБ.ПолучитьСсылку()); СсылкаInvariantCulture=СultureInfo.InvariantCulture; // К сожалению 1С вызывает метод имеющий возвращаемое значение как функцию даже если вызов идет как процедура //Нужно очистить ссылку в списке объектов ссылка=Сб.Append("Новая Строка"); Врап.ОчиститьСсылку(ссылка); ссылка=Сб.AppendLine(); Врап.ОчиститьСсылку(ссылка); ссылка=Сб.Append("Вторая Строка"); Врап.ОчиститьСсылку(ссылка); ссылка=Сб.AppendLine(); Врап.ОчиститьСсылку(ссылка); ссылка=Сб.AppendFormat("AppendFormat {0}, {1}, {2}, {3}, {4},", "Строка", 21, 45.89, ТекущаяДата(),истина ); Врап.ОчиститьСсылку(ссылка); ссылка=Сб.AppendLine(); Врап.ОчиститьСсылку(ссылка); // Так как в параметрах можно передавать только простые типы закодирум ссылку на объект в строку ссылка=Сб.AppendFormat(СсылкаCultureInfo,"AppendFormat {0}, {1}, {2}, {3}, {4},", "Строка", 21, 45.89, ТекущаяДата(),истина ); Врап.ОчиститьСсылку(ссылка); ссылка=Сб.AppendLine(); Врап.ОчиститьСсылку(ссылка); ссылка=Сб.AppendFormat(СсылкаInvariantCulture,"AppendFormat {0}, {1}, {2}, {3}, {4},", "Строка", 21, 45.89, ТекущаяДата(),истина ); Врап.ОчиститьСсылку(СсылкаInvariantCulture); Сообщить(СБ.ToString()); СБ.Capacity=40; Сообщить(СБ.Capacity); // Очистка ссылок СБ и СultureInfo осуществляется внутри ВК КонецПроцедуры Процедура ПриОткрытии() ИмяФайла="d:\MyPrograms\VNCOMP83\AddInNetObjectToNative\AddInNetObjectToNative\Debug\AddInNetObjectToNative.dll"; ПодключитьВнешнююКомпоненту(ИмяФайла, "NetObjectToNative",ТипВнешнейКомпоненты.Native); Врап = Новый("AddIn.NetObjectToNative.LoaderCLR"); CoreClrDir="c:\Program Files\DNX\runtimes\dnx-coreclr-win-x86.1.0.0-rc1-update1\bin\"; ДиректорияNetObjectToNative="d:\MyPrograms\VNCOMP83\NetObjectToNative\NetObjectToNative\bin\Debug\"; СсылкаНаДомен=Врап.СоздатьОбертку(CoreClrDir,ДиректорияNetObjectToNative,""); КонецПроцедуры |
|||
517
Serginio1
24.06.16
✎
10:57
|
Модераторам. Можно код выделить?
Пока сделал для Win. Допилю еще вызовы методов расширений. Вызов дженериков определяемых по типу. Но по моему никому это не надо. А жалко. Под линукс проще писать расширения будет. Чуть позже наришу статью и выложу исходники |
|||
518
Кирпич
24.06.16
✎
11:08
|
Я себе сделал типа такое и мне хватает.
Прог = " // |public static class AddinHelloClass |{ | public static int AddinМойМетод(ref string s) | { | s = ""hello""; | return 100500; | } |}"; Шарп.ДобавитьМодуль(Прог); Шарп.Компилировать(); стр = "раз два три"; ч =Шарп.МойМетод(стр); Сообщить(стр); Сообщить(ч); |
|||
519
Кирпич
24.06.16
✎
11:11
|
т.е. тупо готовую программу в виде текста компилирую и когда надо выполняю. без всяких глазоломательных оберток. текст модулей можно хранить в БД, в макетах или файлах.
|
|||
520
Garykom
гуру
24.06.16
✎
11:12
|
(518) Давно на это и намекал )) и не надо больше никаких извратов.
Точнее параметры туда и результаты оттуда еще как то и все. |
|||
521
Garykom
гуру
24.06.16
✎
11:14
|
(519) ВК NativeAPI и классик и чтобы под linux на mono тоже работало на сервере
И на ИС продавать поддержку или наборы готовых "текстов программы" |
|||
522
Кирпич
24.06.16
✎
11:15
|
(520) ну результаты оттуда идут нормально. сделаю на досуге чтобы можно было из шарпа внешнее событие вызывать. больше особо ничего и не требуется.
|
|||
523
Serginio1
24.06.16
✎
11:16
|
(519) А как события прикручивать?
Ну если ты видел у меня этот подход много где используется. В том числе и Scripting API |
|||
524
Кирпич
24.06.16
✎
11:17
|
(523) "у меня этот подход много где используется" ну и правильно. больше ничего и не надо, имхо.
|
|||
525
Garykom
гуру
24.06.16
✎
11:18
|
(523) Да у тебя получается мощнее не просто вызов стороннего кода из 1С, а полноценное взаимодействие с этим кодом.
По сути система получается из 2 языков одновременно работающих 1С и .Net |
|||
526
Кирпич
24.06.16
✎
11:19
|
(523) события сделаю. там ничего сложного не вижу. только нужно решить как удобнее сделать.
|
|||
527
Garykom
гуру
24.06.16
✎
11:19
|
(525)+ А в (518) работает только по очереди или 1С или .Net
|
|||
528
Serginio1
24.06.16
✎
11:20
|
||||
529
Serginio1
24.06.16
✎
11:22
|
(526) Так у меня это все есть.
Да и суть то новой компонеты в том, что это работает без COM и может работать на Линкусе. |
|||
530
Кирпич
24.06.16
✎
11:26
|
(529) ну у меня тоже Native API. На счет Линукса не знаю, может и на Линуксе работает. :)
Но писать как в (516) вы меня не заставите. Я лучше напишу и отлажу в VS, а потом скопипастю в 1С. |
|||
531
Serginio1
24.06.16
✎
11:57
|
(530) Ну я никого не заставляю.
Проблемы в архитектуре ВК 1. Вызов метода как процедуры должен и вызвать метод CallAsProc 2. Добавить возможность передавать в параметрах ВК и возвращать ВК что бы обойтись без ссылок. А так по линуксом это значительно проще чем писать отдельно ВК |
|||
532
Serginio1
24.06.16
✎
12:00
|
||||
533
Serginio1
24.06.16
✎
12:40
|
Кстати в примере ошибка прокралась
СылкаСБ=Врап.Новый("System.Text.StringBuilder","Первая Строка"); //Сообщить(СылкаСБ); СсылкаCultureInfo=Врап.ПолучитьТип("System.Globalization.CultureInfo"); СсылкаCultureInfo=Врап.Новый(СсылкаCultureInfo,"es-ES"); // Здесь уже СсылкаCultureInfo указывает на объект // СultureInfo=СоздатьОбъектПоСсылке(СсылкаCultureInfo); И СultureInfo это не тип а объект СсылкаCultureInfo,"es-ES"); // Вызываем статический метод СсылкаInvariantCulture=СultureInfo.InvariantCulture; он проходит, так как нет проверки на статик. Я думаю так и оставить. Можно из объекта как в Delphi вызывать и методы объекта и статические |
|||
534
Gary417
24.06.16
✎
12:43
|
(533) <Врап.Новый(СсылкаCultureInfo,"es-ES"); >
Hablo espanol? |
|||
535
Gary417
24.06.16
✎
12:43
|
+тьфу habla espanol?
|
|||
536
Serginio1
24.06.16
✎
12:46
|
Наверное взял из примера
es-ES Испанский (Испания) Международная: 0x00000C0A Традиционные: 0x0000040A |
|||
537
Кирпич
24.06.16
✎
13:13
|
(532) и чо там смотреть? опять 8 листов русско-турецкого кода на который я смотреть не могу. а что мне нужно я и так знаю.
|
|||
538
Кирпич
24.06.16
✎
13:14
|
(531) "Вызов метода как процедуры должен и вызвать метод CallAsProc"
ты хочешь сказать, что 1с не вызывает CallAsProc? у меня вызывает вроде. |
|||
539
Serginio1
24.06.16
✎
13:36
|
(538) Вызывает если HasRetVal возвращает ложь.
Но например если я вызываю Сб.AppendLine(); // А у него есть возвращаемое значение this То даже если метод возвращает значение нужно вызывать CallAsProc Тогда не нужно оборачивать результат. |
|||
540
Кирпич
24.06.16
✎
14:20
|
(539) ну это так и должно быть. как говорил один мой шеф: "если решение некрасивое, то оно обычно и неправильное" :)
|
|||
541
Garykom
гуру
24.06.16
✎
14:25
|
(540) Даже неправильные решения могут быть востребованными и хорошо оплачиваемыми.
|
|||
542
Кирпич
24.06.16
✎
15:43
|
(541) это ты намекаешь на сборнуюю РФ по футболу?
|
|||
543
Кирпич
24.06.16
✎
15:50
|
СсылкаCultureInfo=Врап.ПолучитьТип("System.Globalization.CultureInfo");
Вот автор, например, предлагает после каждой выпитой рюмки, ездить в гараж на электричке за соленым огурцом, а я предлагаю съездить в гараж, привезти банку огурцов и сидеть спокойно выпивать и закусывать. Какой метод правильный? Я думаю мой. |
|||
544
Serginio1
24.06.16
✎
17:31
|
Правильны это тот который удобный.
Еще раз у меня используется Scripting Api из Каропки. При этом я могу передавать любые объекты. В том числе и объекты 1С. Могу пользоваться IronPithon. Только это не относится к теме. А именно кросплатформенная ВК использования классов .Net в 1С. А твой метод использует Hosting API? |
|||
545
Serginio1
24.06.16
✎
17:33
|
(543) Чуть позже сделаю загрузку классов из сторонних сторонних сборок.
|
|||
546
oleg_km
24.06.16
✎
18:11
|
(543) Твой метод реализует процедурный подход. А метод автора объектный. Ты можешь сохранить объект дот нета допустим в реквизит формы и повторно его использовать в течении жизни формы?
|
|||
547
Serginio1
25.06.16
✎
16:53
|
(543) На самом деле я начал использовать классы .Net для использования Вэб сервисов неподдерживаемых 1С с кучей классов которые используют данные 1С и записываются. Все построено на классах. Так вот выбор был делать ручную обертку или автоматическу. Твой подход с кимпиляцией текста не подходит. Нужно сериализовывать объекты десериализовывать. Для передачи в методахь и возврата. Это частный подход который используется как при компиляции событий, так и для заполнения данных 1С так и для получения делегатов
|
|||
548
Serginio1
25.06.16
✎
16:53
|
(543) Для упрощения получения объектов можно создать методы
Функция Ъ(Ссылка) рез = Новый("AddIn.NetObjectToNative.NetObjectToNative"); рез.УстановитьСсылку(СсылкаНаДомен,Ссылка); возврат рез КонецФункции // СоздатьОбъектПоСсылке() Функция ъНовый(стр) возврат ъ(Врап.Новый(стр)); КонецФункции Функция ъТип(стр) возврат ъ(Врап.ПолучитьТип(стр)); КонецФункции Процедура ТестСокпВызоваНажатие(Элемент) // Вставить содержимое обработчика. СБ=ъНовый("System.Text.StringBuilder"); CultureInfo=ъТип("System.Globalization.CultureInfo"); CultureInfoES=ъ(Врап.Новый(CultureInfo.ПолучитьСсылку(),"es-ES")); Сообщить(CultureInfoES.ПолучитьСсылку()); Сообщить(СБ.Capacity); Сообщить(СБ.ПолучитьСсылку()); InvariantCulture=ъ(CultureInfo.InvariantCulture); ссылка= InvariantCulture.ПолучитьСсылку(); // К сожалению 1С вызывает метод имеющий возвращаемое значение как функцию даже если вызов идет как процедура //Нужно очистить ссылку в списке объектов ссылка=Сб.Append("Новая Строка"); Врап.ОчиститьСсылку(ссылка); ссылка=Сб.AppendLine(); Врап.ОчиститьСсылку(ссылка); ссылка=Сб.Append("Вторая Строка"); Врап.ОчиститьСсылку(ссылка); ссылка=Сб.AppendLine(); Врап.ОчиститьСсылку(ссылка); ссылка=Сб.AppendFormat("AppendFormat {0}, {1}, {2}, {3}, {4},", "Строка", 21, 45.89, ТекущаяДата(),истина ); Врап.ОчиститьСсылку(ссылка); ссылка=Сб.AppendLine(); Врап.ОчиститьСсылку(ссылка); // Так как в параметрах можно передавать только простые типы закодирум ссылку на объект в строку ссылка=Сб.AppendFormat(InvariantCulture.ПолучитьСсылку(),"AppendFormat {0}, {1}, {2}, {3}, {4},", "Строка", 21, 45.89, ТекущаяДата(),истина ); Врап.ОчиститьСсылку(ссылка); ссылка=Сб.AppendLine(); Врап.ОчиститьСсылку(ссылка); ссылка=Сб.AppendFormat(CultureInfoES.ПолучитьСсылку(),"AppendFormat {0}, {1}, {2}, {3}, {4},", "Строка", 21, 45.89, ТекущаяДата(),истина ); Сообщить(СБ.ToString()); СБ.Capacity=40; Сообщить(СБ.Capacity); КонецПроцедуры |
|||
549
DES
25.06.16
✎
19:43
|
(518) Я дика извиняюсь, это реальность или фантастика ?
|
|||
550
DES
25.06.16
✎
20:34
|
(0) Если помнишь, я тебе давно надоедал насчет
врап=новый COMОбъект("NetObjectToIDispatch45"); в 1с 7.7 ? Теперь я взялся за ум и перешел на 8.3. И у меня вопрос, есть ли что-то новое по этой теме для 8? |
|||
551
Garykom
гуру
25.06.16
✎
21:11
|
(549) это даже проще даже без вк можно
|
|||
552
DES
25.06.16
✎
21:23
|
без ВК любой Д сможет
|
|||
553
Garykom
гуру
25.06.16
✎
21:29
|
(552) Не в этом смысла, динамическая компиляция .net можно через запись файлика и выполнение командасистемы или выполнить
|
|||
554
DES
25.06.16
✎
23:00
|
(553) в виде примера можно ?
|
|||
555
Garykom
гуру
25.06.16
✎
23:06
|
||||
556
Serginio1
26.06.16
✎
00:11
|
(549) Смотри 528.
|
|||
557
Кирпич
26.06.16
✎
09:47
|
(551) можно и без ВК, только данные через файлы передавать и внешнее событие никак не вызвать.
|
|||
558
Кирпич
26.06.16
✎
09:53
|
(548) "Для упрощения получения объектов можно создать методы"
да у меня претензии к скорости выполнения такого кода и сложности разработки. Я то один раз в VS все напишу и с отладчиком, в нормальной IDE все отлажу, а тебе приходится русско-буржуйскую кашу ковырять прямо в 1С. Это же муторно и некрасиво. А про передачу объектов 1с в ВК я так и не понял. Оно у тебя работает или нет? |
|||
559
Кирпич
26.06.16
✎
09:55
|
(549) я думаю, лет 8 уже как не фантастика.
|
|||
560
DES
26.06.16
✎
11:15
|
(556) напомни, все еще нужно что-то регистрировать в винде 2008R2 чтобы заюзать твою обертку в 8.3 ?
|
|||
561
Serginio1
26.06.16
✎
12:07
|
(559) Да. Вот пример с подгрузкой сборок.
HttpClient=ъТип("System.Net.Http.HttpClient, System.Net.Http, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"); HttpClientHandler = ъТип("System.Net.Http.HttpClientHandler, System.Net.Http, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"); DecompressionMethods= ъТип("System.Net.DecompressionMethods, System.Net.Primitives, Version=4.0.11.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"); handler = ъНовый(HttpClientHandler.ПолучитьСсылку()); // Можно использовать и так. Только Не соберем ссылки //handler.AutomaticDecompression=Врап.OR(DecompressionMethods.GZip,DecompressionMethods.Deflate); ссылкаGZip=DecompressionMethods.GZip; ссылкаDeflate=DecompressionMethods.Deflate; handler.AutomaticDecompression=Врап.OR(ссылкаGZip,ссылкаDeflate); Врап.ОчиститьСсылку(ссылкаGZip); Врап.ОчиститьСсылку(ссылкаDeflate); Клиент = ъ(Врап.Новый(HttpClient.ПолучитьСсылку(),handler.ПолучитьСсылку())); uriSources ="https://msdn.microsoft.com/en-us/library/system.net.decompressionmethods(v=vs.110).aspx"; Стр=ъ(Клиент.GetStringAsync(uriSources)).Result; Сообщить(СтрДлина(стр)); |
|||
562
Serginio1
26.06.16
✎
12:12
|
(560 Инструкция в шапке Использование классов .Net в 1С для новичков
кроме того рядом с NetObjetToIDispatch45.dll лежит RegAsm.bat который нужно запустить от имени администратора |
|||
563
Serginio1
26.06.16
✎
12:20
|
(558) У меня разные подходы. В том числе и твой. Я например заполняю ТаблицуЗначений внутри .Net класса. Могу использовать DLL, могу DynamicMethod.
На самом деле, я легко пишу как ты говоришь мешанину и на 1С. Её проще править и отлаживать. Внутри 1С. Еще раз повторю у тебя очень частный случай возможностей моей компоненты. Но она мощнее так как позволяет использовать объекты, в том числе и 1С. Использование событий .Net объектов. Асинхронное программирование. Но это опять не по теме. Сейчас я говорю о кроссплатформенном использовании классов .Net в 1С. |
|||
564
Кирпич
26.06.16
✎
17:10
|
(563) "Я например заполняю ТаблицуЗначений внутри .Net класса"
Такое в NativeAPI возможно? Я от не понимаю как ты это делаешь. Пример есть? Только не надо вываливать листинг на 150 строк :) |
|||
565
Serginio1
26.06.16
✎
18:20
|
(564) В NativeAPI нет. А в COM легко.
Но на самом деле можно и через Native. Но только на Виндовс. Обернуть любой объект через СОМ объекта у которого запросить Long на себя, который можно передавать в параметрах и вызывать на нем методы IDispatch. |
|||
566
DES
26.06.16
✎
21:46
|
(565) подскажи почему не присваивается значение структуре ?
newid = Врап.ПолучитьТип("System.Guid").NewGuid().ToString(); ТипRequest = Врап.ПолучитьТип("ServiceEfactura.ServiceReference.InvoicesRequest"); ТипЛист = Врап.ПолучитьТип("System.Collections.Generic.List`1"); ТипInvoiceIndentificator = Врап.ПолучитьТип("ServiceEfactura.ServiceReference.InvoiceIndentificator"); Request = Врап.СоздатьОбъект(ТипRequest); ТипЛистОбъект = Врап.ТипКакОбъект(ТипЛист); ТипизированныйЛист = ТипЛистОбъект.MakeGenericType(ТипInvoiceIndentificator); SeriaAndNumbers = Врап.СоздатьОбъект(ТипизированныйЛист); SeriaAndNumber = Врап.СоздатьОбъект(ТипInvoiceIndentificator); SeriaAndNumber.Number = "000000001"; SeriaAndNumber.Seria = "EAA"; SeriaAndNumbers.Add(SeriaAndNumber); request.RequestId = newid; // тут нормально присваивается А тут затык, так как это массив. request.SeriaAndNumbers = SeriaAndNumbers; пишет ошибка в методе SeriaAndNumbers не найден метод *.*.*.*.SeriaAndNumbers.mscorlib |
|||
567
Serginio1
26.06.16
✎
22:03
|
Нужно смотреть тип ServiceEfactura.ServiceReference.InvoiceIndentificator
Заведи отдельную ветку. |
|||
568
Serginio1
26.06.16
✎
22:18
|
Возможно у тебя тип request.SeriaAndNumbers
ServiceEfactura.ServiceReference.InvoiceIndentificator[] Тогда request.SeriaAndNumbers = SeriaAndNumbers.ToArray(); |
|||
569
DES
27.06.16
✎
00:11
|
да, спс, таки оно.
|
|||
570
Serginio1
27.06.16
✎
12:12
|
Поработал с интерфейсами и Энумераторами
Функция ПолучитьЭнумератор(Объект) Перечислимый=ъ(Врап.ПолучитьИнтерфейс(Объект.ПолучитьСсылку(),"IEnumerable")); ПеречислительСсылка=Перечислимый.GetEnumerator(); // На всякий случай приведем к Интерфейсу IEnumerator Перечислитель=ъ(Врап.ПолучитьИнтерфейс(ПеречислительСсылка,"IEnumerator")); Врап.ОчиститьСсылку(ПеречислительСсылка); // Можно и так //IEnumerable=ъТип("System.Collections.IEnumerable"); //IEnumerator=ъТип("System.Collections.IEnumerator") // Перечислимый=ъ(Врап.ПолучитьИнтерфейс(Объект.ПолучитьСсылку(),IEnumerable)); //ПеречислительСсылка=Перечислимый.GetEnumerator(); // На всякий случай приведем к Интерфейсу IEnumerator // Перечислитель=ъ(Врап.ПолучитьИнтерфейс(ПеречислительСсылка,IEnumerator)); //Врап.ОчиститьСсылку(ПеречислительСсылка); возврат Перечислитель КонецФункции // ПолучитьЭнумератор() Процедура ТестЭнумератораНажатие(Элемент) List=ъТип("System.Collections.Generic.List`1[System.String]"); //Сообщить(Врап.ИнформацияОТипе(List.ПолучитьСсылку())); //IEnumerable=ъТип("System.Collections.IEnumerable"); //IEnumerator=ъТип("System.Collections.IEnumerator"); Список=ъНовый(List.ПолучитьСсылку()); Для сч=1 По 10 Цикл Список.Add(строка(сч)); КонецЦикла; // Нет поддержки энумераторов. В COM есть //Для каждого стр Из Список Цикл //Сообщить(стр); //КонецЦикла; СписокЭнум=ПолучитьЭнумератор(Список); Пока СписокЭнум.MoveNext() Цикл // Врап.ВСтроку вывоит строковое представление всех типов в том числе числовые, строки, неопределено Сообщить(СписокЭнум.Current); КонецЦикла; КонецПроцедуры |
|||
571
Serginio1
27.06.16
✎
12:24
|
Протестировал out параметры
TryGetValue(ключ, out значение)) Процедура TestDictionaryНажатие(Элемент) // Вставить содержимое обработчика. Словарь= ъНовый("System.Collections.Generic.Dictionary`2[System.String,System.Int32]"); Для сч=1 По 10 Цикл Словарь.Add(строка(сч),сч); КонецЦикла; зн=0; Если Словарь.TryGetValue("5",зн) Тогда Сообщить(зн); КонецЕсли; КонецПроцедуры |
|||
572
Serginio1
28.06.16
✎
12:03
|
Проверил производительность
http://rsdn.ru/forum/dotnet/6484358.1 миллион вызовов функции .Net занимает порядка 3 секунд, на моем не можном компе. |
|||
573
Serginio1
28.06.16
✎
15:20
|
А вот в 1С
// Вставить содержимое обработчика. КоличествоИтераций=20000; Тестовый=ъТип("TestDllForCoreClr.Тестовый, TestDllForCoreClr, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"); Тест=ъ(Врап.Новый(Тестовый.ПолучитьСсылку()," Свойство из Конструктора")); stopWatch = ъНовый("System.Diagnostics.Stopwatch,System.Runtime.Extensions, Version=4.0.11.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"); стр=""; Тест.ПолучитьЧисло(1); НачВремя=ТекущаяДата(); stopWatch.Start(); Для сч=1 по КоличествоИтераций Цикл Тест.ПолучитьЧисло(сч); КонецЦикла; stopWatch.Stop(); ВремяВыполнения=ТекущаяДата()-НачВремя; Сообщить("ПолучитьЧисло ="+ВремяВыполнения); ВывестиВремя(stopWatch); 1 секунда на 20 000 вызовов . против 1 секунда на 300 000. |
|||
574
Serginio1
28.06.16
✎
15:32
|
Да еще зачем то хочет установить свойство Elapsed
Хотя никакой установки нет Процедура ВывестиВремя(знач stopWatch) ts = ъ(stopWatch.Elapsed); String=ъТип("System.String"); // Format and display the TimeSpan value. Hours=ts.Hours; Minutes=ts.Minutes; Milliseconds=ts.Milliseconds; Seconds=ts.Seconds; elapsedTime = String.Format("{0:00}:{1:00}:{2:00}.{3:00}",Hours, Minutes, Seconds,Milliseconds / 10); Сообщить(elapsedTime); КонецПроцедуры |
|||
575
Кирпич
28.06.16
✎
15:34
|
(0) вчера студент приходил, вебсервис синтезатора речи Ivona испытывали.
как с помощью врапера его к 1с прикрутить? ниже работающий пример на С#: using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net; using System.Security.Cryptography; using System.Text; using System.Web.Script.Serialization; using System.Runtime.InteropServices; class Program { const string AccessKey = "GDNAJP73IAROH72QWEHA"; const string SecretKey = "9Q7vSMMvVbMw8t9Ti5HRTSWde1E4cah9N9DV8pG7"; [DllImport("winmm.dll")] private static extern long mciSendString(string strCommand, StringBuilder strReturn, int iReturnLength, IntPtr hwndCallback); static void Main() { string errortext = ""; try { var path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.ApplicationData) + "1.mp3"; File.Delete(path); byte[] voice = IvonaCreateSpeech("Привет, красавчики!"); File.WriteAllBytes(path, voice); string command = "play " + path + " wait "; mciSendString(command, null, 0, IntPtr.Zero); File.Delete(path); return; } catch (WebException ex) { errortext = ex.Message; } catch (Exception ex) { errortext = ex.Message; } Console.WriteLine(errortext); } //----------------------------------------------------------------------------- //----------------------------------------------------------------------------- private static byte[] IvonaCreateSpeech(string text) { var date = DateTime.UtcNow; const string algorithm = "AWS4-HMAC-SHA256"; const string regionName = "eu-west-1"; const string serviceName = "tts"; const string method = "POST"; const string canonicalUri = "/CreateSpeech"; const string canonicalQueryString = ""; const string contentType = "application/json"; const string host = serviceName + "." + regionName + ".ivonacloud.com"; var obj = new { Input = new { Data = text, Type = "text/plain" }, OutputFormat = new { Codec = "MP3", SampleRate = 22050 }, Parameters = new { Rate = "medium", Volume = "medium", SentenceBreak = 500, ParagraphBreak = 800 }, Voice = new { Name = "Tatyana", Language = "ru-RU", Gender = "Female" } }; var requestPayload = new JavaScriptSerializer().Serialize(obj); var hashedRequestPayload = HexEncode(Hash(ToBytes(requestPayload))); var dateStamp = date.ToString("yyyyMMdd"); var requestDate = date.ToString("yyyyMMddTHHmmss") + "Z"; var credentialScope = string.Format("{0}/{1}/{2}/aws4_request", dateStamp, regionName, serviceName); var headers = new SortedDictionary<string, string> { {"content-type", contentType}, {"host", host}, {"x-amz-date", requestDate} }; string canonicalHeaders = string.Join("\n", headers.Select(x => x.Key.ToLowerInvariant() + ":" + x.Value.Trim())) + "\n"; const string signedHeaders = "content-type;host;x-amz-date"; var canonicalRequest = method + '\n' + canonicalUri + '\n' + canonicalQueryString + '\n' + canonicalHeaders + '\n' + signedHeaders + '\n' + hashedRequestPayload; var hashedCanonicalRequest = HexEncode(Hash(ToBytes(canonicalRequest))); var stringToSign = string.Format("{0}\n{1}\n{2}\n{3}", algorithm, requestDate, credentialScope, hashedCanonicalRequest); byte[] signingKey = GetSignatureKey(SecretKey, dateStamp, regionName, serviceName); var signature = HexEncode(HmacSha256(stringToSign, signingKey)); var authorization = string.Format("{0} Credential={1}/{2}/{3}/{4}/aws4_request, SignedHeaders={5}, Signature={6}", algorithm, AccessKey, dateStamp, regionName, serviceName, signedHeaders, signature); // Send the request var webRequest = WebRequest.Create("https://" + host + canonicalUri); byte[] buffer = ToBytes(requestPayload); webRequest.Method = method; webRequest.Timeout = 20000; webRequest.ContentType = contentType; webRequest.Headers.Add("X-Amz-date", requestDate); webRequest.Headers.Add("Authorization", authorization); webRequest.Headers.Add("x-amz-content-sha256", hashedRequestPayload); webRequest.ContentLength = buffer.Length; using (Stream newStream = webRequest.GetRequestStream()) { newStream.Write(buffer, 0, buffer.Length); newStream.Flush(); } var response = (HttpWebResponse)webRequest.GetResponse(); using (Stream responseStream = response.GetResponseStream()) { if (responseStream != null) { using (var memoryStream = new MemoryStream()) { responseStream.CopyTo(memoryStream); return memoryStream.ToArray(); } } } return new byte[0]; } private static byte[] GetSignatureKey(String key, String dateStamp, String regionName, String serviceName) { byte[] kDate = HmacSha256(dateStamp, ToBytes("AWS4" + key)); byte[] kRegion = HmacSha256(regionName, kDate); byte[] kService = HmacSha256(serviceName, kRegion); return HmacSha256("aws4_request", kService); } private static byte[] ToBytes(string str) { return Encoding.UTF8.GetBytes(str); } private static string HexEncode(byte[] bytes) { return BitConverter.ToString(bytes).Replace("-", string.Empty).ToLowerInvariant(); } private static byte[] Hash(byte[] bytes) { return SHA256.Create().ComputeHash(bytes); } private static byte[] HmacSha256(String data, byte[] key) { return new HMACSHA256(key).ComputeHash(ToBytes(data)); } } |
|||
576
Serginio1
28.06.16
✎
15:50
|
И? Нужно каждую сборку регистрировать. Кроме того если нужно подправить на сервере например нужно сервер останавливать, так как DLL не выгружается.
Используй HTTPClient там есть расширение PostAsJsonAsync. И зачем мусорить ветку. Я прекрасно все знаю. |
|||
577
Serginio1
28.06.16
✎
15:51
|
Я это и на 1С прекрасно напишу. Без всяких DLL и регистрации.
|
|||
578
Кирпич
28.06.16
✎
15:55
|
(576) я думал ты себе в портфолио запишешь. типа вот 1с человеческим голосом заговорила.
(577) не. на 1с не получится. там какие то хеши, массивы... |
|||
579
Кирпич
28.06.16
✎
15:58
|
(576) "так как DLL не выгружается" кстати проблема. NET вк не выгружаются сами, хоть тресни, а обычные выгружаются.
|
|||
580
Serginio1
28.06.16
✎
16:09
|
(578) Легко. Вот код для 7 ки
Функция ВычислитьHMAC(key,стр) врап=СоздатьОбъект("NetObjectToIDispatch45"); врап.УстЭтоСемерка(); // если только латиница //encoding=Врап.ПолучитьТип("System.Text.Encoding").ASCII; encoding=Врап.ПолучитьТип("System.Text.Encoding").UTF8; keyByte = encoding.GetBytes(key); hmacmd5 = Врап.СоздатьОбъект("System.Security.Cryptography.HMACMD5",keyByte); hmacsha1 = Врап.СоздатьОбъект("System.Security.Cryptography.HMACSHA1",keyByte); messageBytes = encoding.GetBytes(стр); hashmessage = hmacmd5.ComputeHash(messageBytes); hashmessage2 = hmacsha1.ComputeHash(messageBytes); BitConverter=Врап.ПолучитьТип("System.BitConverter"); Strhashmessage=СтрЗаменить(BitConverter.ToString(hashmessage),"-",""); Strhashmessage2=СтрЗаменить(BitConverter.ToString(hashmessage2),"-",""); Сообщить(Strhashmessage); Сообщить(Strhashmessage2); КонецФункции// ВычислитьHMAC() |
|||
581
Serginio1
28.06.16
✎
16:11
|
Почему в этой ветке нет подсветки кода?
|
|||
582
Зая Бусечка
28.06.16
✎
16:12
|
(581) Подсветка работает только в разделе 1с. Ибо нефиг
|
|||
583
Кирпич
28.06.16
✎
16:14
|
(580) это всё вместо двух строчек? ого.
private static byte[] HmacSha256(String data, byte[] key) { return new HMACSHA256(key).ComputeHash(ToBytes(data)); } |
|||
584
Serginio1
28.06.16
✎
16:17
|
(582) То есть в поиске работы кода не может быть?
(579) На 1С можно все. В том числе и выполнение асинхронных методов, подключение к событиям. И все это возможно и на Линукс. Тут все кричали .Net отстой он не кросплатформен. Я даю кроссплатформенный вариант. Который может выполняться и на Линукс (584) Там тоже 2 строчки только алгоритмы разные hmacsha1 = Врап.СоздатьОбъект("System.Security.Cryptography.HMACSHA1",keyByte); hashmessage2 = hmacsha1.ComputeHash(messageBytes); |
|||
585
Serginio1
28.06.16
✎
16:19
|
Или
Врап.СоздатьОбъект("System.Security.Cryptography.HMACSHA1",keyByte).ComputeHash(messageBytes); |
|||
586
Кирпич
28.06.16
✎
16:21
|
(585) о. так гораздо лучше
|
|||
587
Serginio1
28.06.16
✎
16:22
|
(583) И еще раз как это относится к Linux?
Я показываю кроссплатформенный код. Который можно улучшить если 1С предпримет шаги для оптимизации своей Native ВК или введения новой более оптимальной версии. |
|||
588
Serginio1
28.06.16
✎
16:24
|
Или можно так
ъНовый("System.Security.Cryptography.HMACSHA1",keyByte).ComputeHash(messageBytes); |
|||
589
Зая Бусечка
28.06.16
✎
16:25
|
(587) Если бы 1с "предпринимала шаги", мы бы ещё долго и счастливо сидели на 77
|
|||
590
Кирпич
28.06.16
✎
16:26
|
(587) "И еще раз как это относится к Linux?"
да никак. я про линукс и не заикался. |
|||
591
Serginio1
28.06.16
✎
16:30
|
(589) Дело в том, что Native ВК они сделали. Но уже сейчас много недостатков.
1. Нельзя передать или возвратить объект ВК 2. Метод имеющий возвращаемое значение вызывается как функция не зависимо от тог как вызывается метод. Даже когда он вызывается как процедура ВК требует возвращаемое значение. 3. При возврате bool SetPropVal(const long lPropNum, tVariant* varPropVal) и GetPropVal при возврате ложь исключение не вызывается 4. Зачем то происходит установка свойств там где этого в коде нет. И вызываются по некольку раз. |
|||
592
Serginio1
28.06.16
✎
16:31
|
(590) А вся это ветка посвящена Кроссплатформенному использованию классов .Net в 1С.
|
|||
593
Кирпич
28.06.16
✎
16:34
|
(592) так а я как узнаю, что она посвящена там чему то. написано "Неспешно ищу работу. 1С + .Net"
С названием, кстати, не согласен. Нет такой отрасли народного хозяйства "1С + .Net". Хотя, если цель - создать такую отрасль из голого пальца, то пожалуйста. |
|||
594
Serginio1
28.06.16
✎
17:05
|
(593) Дело в том, что 1С может использовать кроссплатформенность .Net на прямую. Можно для определенных типов прописать рускоязычные ресурсы. Это легко сделать.
Например в Microsoft Dynamics AX есть ClrObject. И 1С ничем не хуже. При этом если в .Net практически ничего не ломается, то 1С постоянно косячит JOB: HTTPСоединение и SSL connect error И поверь если бы 1С ввела поддержку .Net все прекрасно писали бы используя классы .Net так как из каропки. А интегрировать на самом деле много. Ко мне сейчас много обращаются, а у меня вот времени нет совсем. |
|||
595
Gary417
28.06.16
✎
17:25
|
(594) <При этом если в .Net практически ничего не ломается, то 1С постоянно косячит JOB: HTTPСоединение и SSL connect error>
Ну ненадо, когда начинаются нюансы с алгоритмами шифрования, требованиями FIPS и т.п. всякие глюи и у явы и у .net и вообще с пустого места начинают выползать |
|||
596
Serginio1
28.06.16
✎
17:44
|
(595) Ну размер библиотек 1С и .Net несопоставим. А вот твой пример касается нового.
Но аналоги HTTPСоединения никогда не ломались, хотя и значительно мощнее. Помню вэб сервисы слетели и пришлось ждать обновления. Ну и по мелочи там сям. |
|||
597
Serginio1
28.06.16
✎
17:46
|
И каксается я так понимаю, что нет поддержки на уровне ОС
https://msdn.microsoft.com/ru-ru/library/aa738624(v=vs.110).aspx |
|||
598
Serginio1
28.06.16
✎
20:07
|
Кстати .Net Core релизнули. А Samsung подтвердил поддержку
https://blogs.msdn.microsoft.com/dotnet/2016/06/27/announcing-net-core-1-0/ Samsung присоединяется к .NET Foundation Повышенный интерес к .NET Ядро также приводится к более глубокому взаимодействию в .NET Foundation , которая в настоящее время управляет более чем 60 проектов. Сегодня мы объявляя Samsung в качестве нового члена . В апреле Red Hat, Мозги Jet и Единство приветствовали Руководящей группы технического .NET Foundation. ".NET Является отличным технология , которая значительно повышает производительность труда разработчиков. Samsung вносит свой ??вклад в .NET Ядро на GitHub - особенно в области поддержки ARM - и мы с нетерпением ожидаем дальнейшего содействия в .NET сообщества с открытым исходным кодом. Samsung рада присоединиться к технической руководящей группы .NET Foundation и помочь большему количеству разработчиков пользоваться преимуществами .NET. "Хонг-Сек Ким, вице - президент Samsung Electronics. Вклады от Samsung были впечатляющими. У них есть отличная команда разработчиков, которые проявили интерес к .NET Core. Мы рады иметь их как часть большой команды |
|||
599
Serginio1
29.06.16
✎
09:57
|
(575) Кстати давно делал. Есть COM класс
glSpeechApi = Новый COMОбъект("SAPI.SpVoice"); Для каждого звук из glSpeechApi.GetVoices() Цикл Сообщить(Звук.ID); Если Найти(Звук.ID,"Alyona22k")>0 Тогда glSpeechApi.voice=Звук; КонецЕсли; КонецЦикла; и вызов glSpeechApi.Speak(стр); |
|||
600
Serginio1
30.06.16
✎
15:38
|
Выложил статью и исходники
https://habrahabr.ru/post/304482/ |
|||
601
Serginio1
01.07.16
✎
13:27
|
Выложил статью с исходниками Разработка ? Кроссплатформенное использование классов .Net в 1С через Native ВК. Или замена COM на Linux
https://habrahabr.ru/post/304542/ |
|||
602
russiavp
02.07.16
✎
12:34
|
Помощь нужна в настроике саита на Битрикс. платно. Сам я не шарю от сова совсем
Проблема такая. Связь с 1С у саита есть. Товар выгружается в инфоблок-элементы, но в каталог-товары не выгружается, хотя раньше се работало. И соответстенно на саите товары не появляются. Обратился к одному программисту с заданием настроить накопительные скидки, в итоге произошел какои-то сбои, человек слинял и на звонки не отечает. Другои программист по саитам два дня уже не может ничего сделать. Честно говоря устал уже бороться. Услуги оказывают некачественно, обманывают и просто разводят на бабло. Помогите настроить ради Бога, уже руки опускаются и плкать хочется. С саитом уже третии месяц вожусь и все никак не могу добиться результатов ни от кого. Оплачу работу, |
|||
603
Serginio1
02.07.16
✎
15:55
|
(602) Это не ко мне. Я битриксом не занимаюсь. Да и атеист .
Сделай сдельный топик. Сюда все равно мало кто заглядывает. |
|||
604
PR
02.07.16
✎
16:05
|
(602) Судя по уровню твоей грамотности мой опыт подсказывает, что ты нам вешаешь лапшу на уши.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |