Вход | Регистрация
    1  2  3  4  5  6  7  8  9  10  11   

Собираюсь писать ВК для 1С на C#

Ø [длинная ветка, 21.12.20 - 20:41]
Собираюсь писать ВК для 1С на C#
Я
   Гений 1С
 
11.12.20 - 19:44
Пример буду брать из "Технологии внешних ВК" на ИТС.
Вопрос такой - где брать платформу C# (IDE)?

По сути, мне надо обертку над DLL писать.
Раньше ее писал на VB6, но пора переходить на C#, у производителя оборудования пример на C#, кроме того нужна версия компоненты на 32 и 64 разряда.
   Serginio1
 
301 - 17.12.20 - 10:19
(295) А зачем тебе вообще ВК если ты события не используешь?
Взял бы мою компоненту и не парился. Там кстати есть поддержка событий на уровне Подключить Обработчик.
Посмотрел бы подключается ли моя ВК
   Serginio1
 
302 - 17.12.20 - 10:33
(301) Ну а так если .Net это просто обертка над нативными библиотеками, то проще нанять студента и оформить это на C++
   Гений 1С
 
303 - 17.12.20 - 10:38
(301) мне нужна совместимость с прошлой ВК на уровне названия методов.
   Гений 1С
 
304 - 17.12.20 - 10:38
(299) прости, но 0 бит
   Гений 1С
 
305 - 17.12.20 - 10:39
(299) 3 раза "правильное" повторил. Это реклама 1С? ггг
   Garykom
 
306 - 17.12.20 - 10:40
(302) >нанять студента

Да где вы этих студентов берете и чтобы оно работало без глюков?
   Garykom
 
307 - 17.12.20 - 10:41
(305) Это попытка намекнуть что проблема не в 1С а в кривых руках ))
   Garykom
 
308 - 17.12.20 - 10:42
(306)+ Без глюков на всех версиях платформы 1С и видов клиентов и на сервере.
   Кирпич
 
309 - 17.12.20 - 11:01
(306) на фриланс ру или на мисте
   Garykom
 
310 - 17.12.20 - 11:02
(309) И много тут программистов C++ ?
   Кирпич
 
311 - 17.12.20 - 11:07
(310) Навалом
   Кирпич
 
312 - 17.12.20 - 11:07
(310) Ты, например.
   Гений 1С
 
313 - 17.12.20 - 11:12
(307) не исключено. Но т.к. причина кривизны не разъясняется, то 0 бит.
   Serginio1
 
314 - 17.12.20 - 11:15
(0) Не знаю, что у тебя не получается. Сейчас не поленился и попробовал ТестВКУФ.erf в тонком клиенте. Всё работает!
   Гений 1С
 
315 - 17.12.20 - 11:19
(314) код скинь подключения, гляну, саму DLL на fixin@mail.ru
   Гений 1С
 
316 - 17.12.20 - 11:22
   Serginio1
 
317 - 17.12.20 - 11:27
Я же тебе ссылки все давал.
https://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

Там есть
Исходники и DLL можно скачать здесь http://files.rsdn.org/19608/%d0%a4%d0%b0%d0%b9%d0%bb%d1%8bNetObjectToIDispatch.zip

Соответственно код ВК находится в ...\ФайлыNetObjectToIDispatch\NetObjetToIDispatch45\NetObjetToIDispatch45\AddinFor1C.cs
Сама Dll "D:\Programms\ФайлыNetObjectToIDispatch\DLLNetObjetToIDispatch45\NetObjetToIDispatch45.dll"

Код вызываемой библиотеки в папке ФайлыNetObjectToIDispatch\ТестВК\
Ну и внешний отчет ..ФайлыNetObjectToIDispatch\ВнешниеОтчеты\ТестВКУФ.erf
В макете уже лежит ТестВК.Dll
   Garykom
 
318 - 17.12.20 - 11:27
(312) Из меня программист С++ в лучшем случае на уровне джун++
   Кирпич
 
319 - 17.12.20 - 11:57
(318) Да пойдет. Шо такое указатель понимаешь и хватит.
   Кирпич
 
320 - 17.12.20 - 12:01
(313) Если тебе по рукам в детстве мопед не проехал, то причина кривизны генетическая. Чо тут объяснять.
   acht
 
321 - 17.12.20 - 12:06
(313) Геня, ты со своим "0 бит" тааакой клёёёвый, жаль что не умешь ничего.
   Garykom
 
322 - 17.12.20 - 12:14
(313) Сенкс за идею.
Теперь я знаю как назвать франч если вдруг захочу его открыть: "Нулевой Бит"
   Aswed
 
323 - 17.12.20 - 12:17
Капец. Гений ты до сих пор ещё что то можешь писать!? Офигеть просто!
Я думал что ты давно уже подхватил какой нить трипер и скопытнулся от него))))))
   Garykom
 
324 - 17.12.20 - 12:17
(322)+
Стоит взвод молодых бойцов.
Старшина:
- По порядку номеров рассчитайсь!
Солдат-программист:
- Можно вопрос?
- Можно...
- А в какой системе? Десятичной? Шестнадцатеричной?
- Для дураков объясняю, в десятичной!
- Понял! Нулевой!
   Кирпич
 
325 - 17.12.20 - 12:18
(321) Щас его Serginio1 научит делать ВК через жопу. В 2000 году наш гений забыл С++, а в 2020 году он вспомнит C#
   Ненавижу 1С
 
326 - 17.12.20 - 12:21
(319) указатели в С были еще, тут как минимум надо знать про ссылки
   Serginio1
 
327 - 17.12.20 - 12:22
(325) Ну он хоть старается "Вспомнить Всё". Через жопу или нет, но использовать код в 1С это оочень легко.
Намного проще чем писать ВК на С++ и прочее.
   Кирпич
 
328 - 17.12.20 - 12:26
(327) Я не знаю легко там или нет, но без твоей помощи оно, по моему, ни у кого не получается
   Гений 1С
 
329 - 17.12.20 - 12:26
(325) по прежнему 0 бит.
(317) а, ты про свою компоненту, а как ее протестить, есть какой-нибудь метод типа Show или About? Мне нужно просто проверить как ее в ТК зарегить?
   Гений 1С
 
330 - 17.12.20 - 12:27
(327) мне кажется этот подход не технологичным, прости. Хотя может и ошибочно. Но использовать ВК-прокладку, чтобы юзать методы другой DLL, бррр
 
 
   Гений 1С
 
331 - 17.12.20 - 12:28
(322) А Первый Бит не предъявит? Лучше "Нулевой Байт" или даже "Нулевой Терабайт"
   acht
 
332 - 17.12.20 - 12:28
   Serginio1
 
333 - 17.12.20 - 12:28
(328) Потому, что без знания .Net тяжело сразу писать. Нужно хотя бы книжки почитать.
А так тот, кто знаком с .Net все достаточнно просто
   Гений 1С
 
334 - 17.12.20 - 12:30
(333) я вот подумал, что клиенту это .NET не вперлось. Лучше на чистом C++ написать и не париться о regasm и прочих бубнах с танцем. Этим и займусь, пожалуй
   Кирпич
 
335 - 17.12.20 - 12:31
(333) Гений не читает книжек. Он копипастит и проверяет работает или нет. Если происходит зависание компьютера, то перезагрузка и заново.
   Garykom
 
336 - 17.12.20 - 12:32
(330) >использовать ВК-прокладку, чтобы юзать методы другой DLL, бррр

Ты еще не понял что тебе придется тащить с собой tc-b_new_sdk.dll и юзать из своей ВК на чем угодно?
   Гений 1С
 
337 - 17.12.20 - 12:32
(335) Чтобы сразу исключить кривотолки, спрошу напрямую - Кирпич, какое у тебя место на инфостарте? ;-)
   Гений 1С
 
338 - 17.12.20 - 12:32
(336) это не критично, я и раньшее ее тащил
   Кирпич
 
339 - 17.12.20 - 12:33
(334) " клиенту это .NET не вперлось" Нифига себе! Да там же linq!
   Garykom
 
340 - 17.12.20 - 12:33
(335) А как он успевает?
   Serginio1
 
341 - 17.12.20 - 12:34
(329) Ну не читатель ты. Ты смотрел код?
AddinFor1C.cs
[ComVisible(true)]
[ProgId("AddIn.GlobalContext1C")]
[Guid("8693BBEC-C964-4478-AFCB-E8D15FD8F4F6")]

public class GlobalContext1C : IInitDone, ILanguageExtender

Она нужна для получения Контекста 1С. И вызывается одно свойство
public void FindProp([MarshalAs(UnmanagedType.BStr)]
    String propName,
     ref Int32 propNum)
    {
        if (propName.Trim().ToUpper() == "ГЛОБАЛЬНЫЙКОНТЕКСТ")
        {
            propNum = 0;
            return;
        }
        throw new COMException(String.Format("Свойство {0} не поддерживается", propName));

    }
  public void GetPropVal(
      Int32 propNum,
      [MarshalAs(UnmanagedType.Struct)]
    ref object propVal)
    {
        if (propNum == 0) propVal = глобальныйКонтекст;
    }
Можешь также и использвать её и у себя. Передавать этот кнтекст в свой объект а с ним работать как IDispatch объектом.
Либо прописывать всю хрень в
void GetNMethods(ref int plMethods);
    void FindMethod(string bstrMethodName, ref int plMethodNum);
    void GetMethodName(int lMethodNum, int lMethodAlias, ref string pbstrMethodName);
    void GetNParams(int lMethodNum, ref int plParams);
    void GetParamDefValue(int lMethodNum, int lParamNum, ref object pvarParamDefValue);
    void HasRetVal(int lMethodNum, ref bool pboolRetValue);
    void CallAsProc(int lMethodNum, [MarshalAs(UnmanagedType.SafeArray)] ref Array paParams);
    void CallAsFunc(int lMethodNum, ref object pvarRetValue, [MarshalAs(UnmanagedType.SafeArray)] ref Array paParam);
   Serginio1
 
342 - 17.12.20 - 12:35
(334) Согласен пиши!!!
   Гений 1С
 
343 - 17.12.20 - 12:35
(341) прости, а как это поможет регистрации ВК в тонком?
   Гений 1С
 
344 - 17.12.20 - 12:36
(341) Да, мне проще прописывать в GetNMethods
   Кирпич
 
345 - 17.12.20 - 12:36
(337) А как мое место на инфостарте влияет на мои способности?
   Serginio1
 
346 - 17.12.20 - 12:36
(334)то есть раньше regsvr32 тебя не напрягало?
   Гений 1С
 
347 - 17.12.20 - 12:36
(345) на способности "пиздеть" никак, продолжай в том же духе, просто твой белый шум несколько однообразен, в качестве обратной связи
   Serginio1
 
348 - 17.12.20 - 12:37
(343) Ты запускал ТестВКУФ.erf в тонком? Там как раз для достука к контексту 1С используется ВК
   Гений 1С
 
349 - 17.12.20 - 12:37
(346) ну я хотя бы победил регистрацию таких компонент в тонком в свое время. ;-) а тут еще надо искать номер последней сборки, regsvr32 он то оидн
   Гений 1С
 
350 - 17.12.20 - 12:38
(348) погоди, как 1С регистрирует ВК в тонком?
   Ненавижу 1С
 
351 - 17.12.20 - 12:38
(334) не осилил, понятно
   Кирпич
 
352 - 17.12.20 - 12:39
(347) Ну так ты не обращай внимание на мой белый шум
   Serginio1
 
353 - 17.12.20 - 12:39
(337) А как это место можно посмотреть?
(350) Все так же через regasm
   Garykom
 
354 - 17.12.20 - 12:40
(342) нафига если можно взять https://github.com/jtisler/anviz и прямо из 1С http запросами?
Но там в протоколе их придется разобраться
   Гений 1С
 
355 - 17.12.20 - 12:40
(352) ок, договорились.
(351) может оно и не надо
(353) http://catalog.mista.ru/top100/user/index.php?period=ALL&sort=rate
Только этих regasm много, возникают нюансы с версиями сборок, ну его в сад, этот #NET
   Кирпич
 
356 - 17.12.20 - 12:41
(354) Кому разбираться то
   Garykom
 
357 - 17.12.20 - 12:41
(355) "не шмогла"
   Гений 1С
 
358 - 17.12.20 - 12:41
(354) у Anviz нет открытого HTTP-API, хотя это конечно, странно, но мы имеем таких китайцев, а не других
   Serginio1
 
359 - 17.12.20 - 12:43
Кстати
COM+-компонент для 1С на C#
http://rsdn.org/article/dotnet/cs1c.xml
И можешь вызывать хоть из 32 или 64 разрядных 1С
   Гений 1С
 
360 - 17.12.20 - 12:43
(359) попробуй ее на ТК зарегить ради интереса, мне лень.
 
 
   Serginio1
 
361 - 17.12.20 - 12:45
http://rsdn.org/forum/src/751285.flat#751285
(360) У меня куча дел, а я здесь помогаю. Все ухожу
   Serginio1
 
362 - 17.12.20 - 12:45
(360) Ты бы хоть, что то попробовал, что я даю. У меня то работает.
   acht
 
363 - 17.12.20 - 12:47
(360) > мне лень
0 бит
   Ненавижу 1С
 
364 - 17.12.20 - 12:48
А на Си++ в каком компиляторе и IDE будешь делать?
   Гений 1С
 
365 - 17.12.20 - 12:48
Кстати по Native API:
Типы VTYPE_INTERFACE, VTYPE_VARIANT не поддерживаются

Я правильно понимаю, что массив COMSAFEARRAY в NATIVE тоже не поддерживатеся? или поддерживается?
   Гений 1С
 
366 - 17.12.20 - 12:48
(364) на VC, раз скачал
   Кирпич
 
367 - 17.12.20 - 12:50
(365) Очень правильно понимаешь. Переходи к пункту (33) или дай денег Garykom и он всё устроит
   Кирпич
 
368 - 17.12.20 - 12:51
ой (23)
   Гений 1С
 
369 - 17.12.20 - 12:51
(367) Хотя вот это внушает надежду, что передаваемые из 1С значения поддерживаются: "Возвращаемые значения типа VTYPE_ARRAY и VTYPE_BYREF не поддерживаются."
   CODA
 
370 - 17.12.20 - 12:51
Тот случай, когда по названию топика узнал афтора.
   Garykom
 
371 - 17.12.20 - 12:52
(367) Не уверен что у него денег хватит
Мне как то влом в https://github.com/jtisler/anviz/blob/master/Docs/CommsProtocol.pdf разбираться
   Кирпич
 
372 - 17.12.20 - 12:52
Компонента может возвращать любые двоичные данные, например – сформированное изображение штрих-кода. Для этого данные помещаются в поле pstrVal структуры tVariant, в strLen – размер данных, а тип устанавливается в VTYPE_BLOB. "1С:Предприятие" использует для них тип ДвоичныеДанные.
   Кирпич
 
373 - 17.12.20 - 12:54
(371) Да там 10 функций скопипастить из примера
   Кирпич
 
374 - 17.12.20 - 12:54
Я бы за десятку сделал бы
   Garykom
 
375 - 17.12.20 - 12:58
(373) я не уверен можно ли с замками делать то что он хочет
   Гений 1С
 
376 - 17.12.20 - 12:59
(374) то "Денег не хватит", то "За десятку". ;-) не думаю, что имеет смысл делегировать, мне еще с этой ВК придется долго жить, лучше самому.
   Гений 1С
 
377 - 17.12.20 - 12:59
(375) ну на Бейсик Зольдатен я то делал. ;-)
   Гений 1С
 
378 - 17.12.20 - 13:27
ГМ, в VC пример не открывается:
Невозможно найти средства сборки для v120_xp. Установите v120_xp, чтобы выполнить сборку с использованием средств сборки v120_xp.
https://askdev.ru/q/ne-udaetsya-nayti-instrumenty-sborki-dlya-v120-platform-toolset-v120-23106/
   Serginio1
 
379 - 17.12.20 - 13:29
(355) Пиши под .Net Standard 2 или .Net Framework 4.6.1 и проблем не будет.
Создай батничек и регистрируй
"C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe"
"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe"

Проблем нет. Но пиши лучше на С++
   Гений 1С
 
380 - 17.12.20 - 13:37
(379) так в тонком не регится
   Serginio1
 
381 - 17.12.20 - 13:42
(380) Ну у меня то работает. Я не знаю почему у тебя не работает. Ты так мой пример и не попробовал.
   Serginio1
 
382 - 17.12.20 - 13:43
Запусти РегистрацияКомСервера.exe от администратора
   Кирпич
 
383 - 17.12.20 - 13:49
(378) Срочно переходи на C#
   Кирпич
 
384 - 17.12.20 - 13:50
+(378)Пока оно не начало опухать
   H A D G E H O G s
 
385 - 17.12.20 - 13:51
(378) Бггггг

вы используете Visual C++ 2012, который является v110. v120 означает Visual C++ 2013.
таким образом, либо изменить параметры проекта для использования toolset v110, либо установить Visual Studio 2013 на этом компьютере и использовать VS2013 для его компиляции.
   Гений 1С
 
386 - 17.12.20 - 13:51
(382) РегистрацияКомСервера.exe - это что за утилита?
   H A D G E H O G s
 
387 - 17.12.20 - 13:51
Бгагага
Суко, до слёз.
   H A D G E H O G s
 
388 - 17.12.20 - 13:52
Суровые трушные ЯПы поют Сергею солдатский гранж
https://youtu.be/ATdaQv1qcP0
   Serginio1
 
389 - 17.12.20 - 13:58
(386) Ты хоть скачал http://files.rsdn.org/19608/%d0%a4%d0%b0%d0%b9%d0%bb%d1%8bNetObjectToIDispatch.zip

Пойми ты даже если не хочешь её использовать, там куча примеров. Та же ВК итд
За чем я тут распинаюсь?
   Гений 1С
 
390 - 17.12.20 - 14:01
(389) скачал и чем это мне поможет, если я решил на Си++ перейти?
   H A D G E H O G s
 
391 - 17.12.20 - 14:01
(389) Я не знаю, зачем? Я вообще с вас чешуею, носитесь с какими то сборками, regasm-ами.

Открыл Delphi, добавил в проект новое описание метода и пиши.
Если есть какая-то отдельная подсистема - добавил новый объект, в него накидал методов и пиши.
   Кирпич
 
392 - 17.12.20 - 14:02
(389) Да подожди ты. Твои ссылки с первого раза в адресной строке невозможно правильно набить. Какую нибудь букву пропустишь и заново набирай
   Гений 1С
 
393 - 17.12.20 - 14:02
(389) я запустил регистрацию ком-сервера для своей компоненты, но в ТК все равно после этого не регистрируется:
ИмяВК="AddIn.ExtTest";    
об = Новый COMОбъект(ИмяВК);
Сообщить(об);
СИ = Новый СистемнаяИнформация();
Сообщить(СИ.ТипПлатформы);
ок=ПодключитьВнешнююКомпоненту(ИмяВК);
Сообщить("Результат: " + ОК);
net = Новый (ИмяВК);
Сообщить(net);
net.Show("yes");
   Кирпич
 
394 - 17.12.20 - 14:02
(391) А как же linq?
   H A D G E H O G s
 
395 - 17.12.20 - 14:03
(394) Я не знаю, что это
   Гений 1С
 
396 - 17.12.20 - 14:03
(391) Delphi - это ж голимый Паскаль? Или туда уже Си добавили?
   H A D G E H O G s
 
397 - 17.12.20 - 14:04
(396) Голимейший.
   H A D G E H O G s
 
398 - 17.12.20 - 14:04
Походу заяц несудьбы написать Сергею ВК
https://youtu.be/jtNT_NBoXWw
   Кирпич
 
399 - 17.12.20 - 14:05
(391) Delphi умер. Ты программируешь на мёртвом. Это отвратительно. И linq нет.
   Кирпич
 
400 - 17.12.20 - 14:05
(398) картинка хорошая. на майку
  1  2  3  4  5  6  7  8  9  10  11   

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.