Имя: Пароль:
1C
1С v8
Как воспользоваться библиотекой реализованной по технологии Win API из 1с 8.3?
0 Игорь1с
 
28.10.21
09:58
Собственно есть библиотека trans2quik.dll написанная по технологии Win API
Хочу воспользоваться ее функционалом из 1с 8.3.
Вопрос: как это сделать?
1 Garykom
 
гуру
28.10.21
10:00
(0) callback'и есть?
Или только простые вызовы без передачи адресов функций для обратных вызовов
2 Игорь1с
 
28.10.21
10:05
Есть callback'и
3 NorthWind
 
28.10.21
10:15
(0) на .net обертка какая-то была, посмотри посты от Serginio1
4 Garykom
 
гуру
28.10.21
10:35
(2) тогда проблема
имхо лучше всего исходники dll и переписать на ВК для 1С
5 Игорь1с
 
28.10.21
10:47
(4) К сожалению у меня совсем нет навыков переписывания dll на ВК для 1С.
Да и исходники эти товарищи (https://arqatech.com) вряд ли дадут.
Сами писать по технологии COM не будут - их уже просили :)

Получается тупик?
6 Garykom
 
гуру
28.10.21
10:49
(5) Нет обертку написать внешнюю которая юзает эту dll и каким то образом обменивается с 1С
Можно из ВК для 1С юзать DLL или внешняя прогу аля микросервис и с 1С по http например или еще как
7 Garykom
 
гуру
28.10.21
10:52
(6)+ начать с https://forum.quik.ru/forum12/topic1109/
там есть интересные ссылки и можно попытаться связаться с авторами постов
8 Garykom
 
гуру
28.10.21
10:53
(7)+ соединить с https://github.com/Zawullon/fpnativeapi если 1С 8
9 Garykom
 
гуру
28.10.21
10:56
(8) подразумевал https://quik2dde.ru/viewtopic.php?id=48
это самое простое, чтобы не возиться с C++
10 Кирпич
 
28.10.21
11:12
(5) "Получается тупик?"
Нифига, ты оптимист :)
Найди программиста и он тебе сделает, если самому лень. Вон Garykom висит на форуме с утра до вечера. Бездельник.
11 Garykom
 
гуру
28.10.21
11:15
12 Игорь1с
 
28.10.21
11:18
(10) У меня компетенции не хватает самому сделать. Но денег заплатить тому, кто сделает - готов. Если кому интересно - пишите в личку.
13 Игорь1с
 
28.10.21
11:20
(9) Вдел эти посты.. Вот тут даже один подключился из 1С... https://forum.quik.ru/messages/forum12/message39179/topic4670/#message39179 но на личку пока не ответил
14 Кирпич
 
28.10.21
11:25
(12) Ну вот. А говорил тупик. Можешь, кстати, через костыль сделать. Там я вижу у них пример в Excel. Из 1с к Excel же можно подключиться ;) Я правда сам никогда так делать не пробовал.
15 Игорь1с
 
28.10.21
11:26
(9) Там ведь Delphi. А хочется реализовать торгового робота из знакомой языковой среды - у меня это 1С
16 Garykom
 
гуру
28.10.21
11:27
17 H A D G E H O G s
 
28.10.21
11:28
(10) он занят изготовлением убийцы тимвиевера, не наговаривай.
18 Garykom
 
гуру
28.10.21
11:28
19 Игорь1с
 
28.10.21
11:30
(16) Читаю
20 Garykom
 
гуру
28.10.21
11:38
(17) погугли "убийца тимвьювера" и скажи что это не успехъ? жалко притопили ветку так бы еще выше поднялся в поисковиках
21 Кирпич
 
28.10.21
11:44
(20) Ты убил тимвьювер этой веткой чтоли?
22 Кирпич
 
28.10.21
11:45
(16) Автор, похоже, хотел сделать такую же ненужную фигню, но его уже опередили.
23 Garykom
 
гуру
28.10.21
11:47
(21) Угу почти
Почти год у меня ТВ при активном использовании никаких требований к платности и покупке не выставляла
Как отшептало ))
Потом я перешел на VNC со своими допилками и стало пофиг
24 Игорь1с
 
28.10.21
11:54
Автор хочет реализовать торгового робота (простенького, не высокочастотного) для срочного рынка используя знакомую ему среду разработки - 1С.
И получается так, что российских брокеров позволяющих ему реализовать желаемое - нет.
"Лучшее" что есть - API Тинькова, но там нет фьючерсов.
25 Кирпич
 
28.10.21
12:00
(24) А. Так ты чисто для себя. Это тебе типа лень учить эти всякие QPILE и QLUA и ты решил в 1с заколхозить
26 Игорь1с
 
28.10.21
12:03
(16) Спасибо за ссылку. Похоже автор этой конфы пошел в сторону https://ru.tradingview.com
Зачем? вряд ли угонится.
он пишет о своей разработке: "    Обмен информацией с QUIK настроен максимально прозрачно. Используется механизм OLE (Microsoft Access) и текстовые файлы." - Так я могу сделать... но после Тиньков API это кажется ... ну чем-то древним. Думал: "может можно без этого всего?"
27 Garykom
 
гуру
28.10.21
12:03
(24) хттп апи с веб-пушами было бы оптимально для 1С
28 Garykom
 
гуру
28.10.21
12:04
(27)+ есть вариант это сделать в виде микросервиса
29 H A D G E H O G s
 
28.10.21
12:06
Я, суко, ждал этого!
30 Кирпич
 
28.10.21
12:08
(27) Оптимально для 1с это ВК. Остальное - костыли с проводами.
31 Garykom
 
гуру
28.10.21
12:09
(29) а (6) ты пропустил? там я сразу привел два варианта для 1С или ВК или "микросервис"
32 Кирпич
 
28.10.21
12:09
(29) Щас еще адепт linq придет и через месяц всё будет сделано с помощью Ъ и C#. Автор так и не поймет как это работает, но будет счастлив.
33 Игорь1с
 
28.10.21
12:10
(25) Да, для себя. QPILE и QLUA - уже прошел, даже наваял торгующих роботов.. Но проблема в трудности отладки кода и визуализации результата.
В сборе и обработке статистики. Если логика торговли усложняется - беда просто с этим. Получается основное время и усилия идут на сам кодинг и тестирование. А хочется что бы голова была занята идеей торговли.. Не хочется делать лишнего одним словом
34 Garykom
 
гуру
28.10.21
12:10
(30) ВК это много гемора если честно
Когда надо осень-осень быстро и без http/публикации да иного выхода нет
35 Кирпич
 
28.10.21
12:11
(34) Ну не знаю. Я бы за полдня управился бы. Правда я ничего в этих биржах не смыслю.
36 Garykom
 
гуру
28.10.21
12:11
(35) я тоже почти не смыслю в этих биржах ))
37 Кирпич
 
28.10.21
12:12
(33) А ты шаришь в этой dll? Что какие функции делают.
38 Игорь1с
 
28.10.21
12:15
(37)
TRANS2QUIK_IS_DLL_CONNECTED Проверка соединения библиотеки Trans2QUIK.dll с Рабочим местом QUIK
TRANS2QUIK_IS_QUIK_CONNECTED Проверка соединения терминала QUIK с сервером QUIK
TRANS2QUIK_SEND_ SYNC _TRANSACTION Отправка синхронной транзакции
TRANS2QUIK_SEND_ ASYNC _TRANSACTION Отправка асинхронной транзакции
TRANS2QUIK_CONNECTION_STATUS_CALLBACK Описание прототипа функции обратного вызова для контроля за состоянием соединения между Trans2QUIK.dll и используемым терминалом QUIK и между используемым терминалом QUIK и сервером
TRANS2QUIK_SET_CONNECTION_STATUS_CALLBACK Описание прототипа функции обратного вызова для обработки полученной информации о соединении
TRANS2QUIK_TRANSACTION_REPLY_CALLBACK Описание прототипа функции обратного вызова для обработки полученной информации об отправленной транзакции
TRANS2QUIK_SET_TRANSACTIONS_REPLY_CALLBACK Функция устанавливает функцию обратного вызова TRANS2QUIK_TRANSACTION_REPLY_CALLBACK
TRANS2QUIK_ORDER_STATUS_CALLBACK Описание прототипа функции обратного вызова для обработки полученной информации по заявке
TRANS2QUIK_TRADE_STATUS_CALLBACK Описание прототипа функции обратного вызова для обработки полученной информации по сделке
TRANS2QUIK_SUBSCRIBE_ORDERS Функция создания списка инструментов по классам,по которому будут приниматься заявки
TRANS2QUIK_SUBSCRIBE_TRADES Функция создания списка инструментов по классам,по которому будут приниматься сделки
TRANS2QUIK_START_ORDERS Вызов функции инициирует процесс получения заявок по инструментам, список которых был сформирован предварительным вызовом функции TRANS2QUIK_SUBSCRIBE_ORDERS
TRANS2QUIK_START_TRADES Вызов функции инициирует процесс получения сделок по инструментам, список которых был сформирован предварительным вызовом функции TRANS2QUIK_SUBSCRIBE_TRADES
TRANS2QUIK_UNSUBSCRIBE_ORDERS Вызов функции прерывает работу функции TRANS2QUIK_START_ORDERS и производит очистку списка получаемых инструментов, сформированного функцией TRANS2QUIK_SUBSCRIBE_ORDER
39 acht
 
28.10.21
12:25
(29) Я не сдержался, извинити =)
https://ibb.co/MkZN7PY
40 Kassern
 
28.10.21
12:28
(39) ))
41 Кирпич
 
28.10.21
12:29
(38) Иди бери кредит. Я тебе вечерком сделаю :)
42 acht
 
28.10.21
12:32
Если раскурить https://github.com/boscogh/quik_pipe то вполне может оказаться, что dll не нужно вообще =)
43 Кирпич
 
28.10.21
12:37
(42) Так оно и работает через эту dll
44 Кирпич
 
28.10.21
12:37
работало (7 years ago)
45 Garykom
 
гуру
28.10.21
12:38
(42) так с пайпами то как будешь из 1С?
46 Игорь1с
 
28.10.21
12:39
(41) Договорились :)

Как понял, вот здесь сделана обертка Использование классов .Net в 1С для новичков
Но обрабатываются ли там callback`и..
47 acht
 
28.10.21
12:39
(43) Существующие именованные каналы доступны напрямую из 1С через чтение/запись текста.
Вот создавать новые оно не может, это да.
48 Кирпич
 
28.10.21
12:39
(45) прокладку из микросервиса на go сделаем :)
49 Garykom
 
гуру
28.10.21
12:41
(48) Ты что тоже решил Go освоить?
50 Biker
 
28.10.21
12:48
(0) ну зачем все через опу то делать, найди нормального брокера
https://iticapital.ru/software/smartcom/
51 Игорь1с
 
28.10.21
13:10
(50) Спасибо.. но в курсе про этого брокера. Рассматриваю как запасной вариант после прочтения опыта пользования другими их SMARTCOM`ом https://smart-lab.ru/blog/199423.php
Может быть они за последние годы продвинулись в смысле надежности, конечно..
52 DexterMorgan
 
28.10.21
13:17
(49) тебя уже откровенно троллят с го и микросервисами
53 Garykom
 
гуру
28.10.21
13:31
(52) Ну да если не смогли освоить то остается только троллить
Чем извращаться например через ADO или еще как с вин-онли не лучше ли на Go сделать?
Имхо оно более универсально и кроссплатформенно, легче переносится и допиливается
54 Biker
 
28.10.21
13:34
(51) это 14 года статья, 159 раз все изменилось
55 Кирпич
 
28.10.21
13:53
(49) да его все хелловодщики давно освоили. думаешь ты уникум какой то чтоли.
56 Кирпич
 
30.10.21
15:50
Наваял ВК. Осталось только проверить работает или не очень. Пока лень разбираться с этими акциями-хренакциями.
Работает примерно так:

&НаКлиенте
Перем tq;

&НаКлиенте
Процедура Команда1(Команда)
    Если ПодключитьВнешнююКомпоненту("C:\temp\transq.dll","transq",ТипВнешнейКомпоненты.Native) Тогда
        tq = New ("Addin.transq.TRANS2QUIK");
        tq.LOADDLL("C:\temp\TRANS2QUIK.dll");
        r = tq.TRANS2QUIK_CONNECT("C:\SBERBANK\QUIK");
        Сообщить(r);
    Иначе
        Сообщить("Компонента не загружена");
    КонецЕсли;
КонецПроцедуры

&НаКлиенте
Процедура ВнешнееСобытие(Источник, Событие, Данные)
    Сообщить(Источник);
    Сообщить(Событие);
    Сообщить(Данные);  //JSON
КонецПроцедуры

&НаКлиенте
Процедура ПриЗакрытии(ЗавершениеРаботы)
    Если tq <> Неопределено Тогда
        tq.TRANS2QUIK_DISCONNECT();
    КонецЕсли;
КонецПроцедуры

&НаКлиенте
Процедура КомандаСтарт(Команда)
    r = tq.TRANS2QUIK_SUBSCRIBE_ORDERS("","");
    Сообщить(r);    
    r = tq.TRANS2QUIK_START_ORDERS();
    Сообщить(r);
КонецПроцедуры

&НаКлиенте
Процедура КомандаСтоп(Команда)
    r = tq.TRANS2QUIK_UNSUBSCRIBE_ORDERS();
    Сообщить(r);
КонецПроцедуры