Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Модуля расширения веб-сервера wsap24.dll или wsap22.dll

Модуля расширения веб-сервера wsap24.dll или wsap22.dll
Я
   Garykom
 
26.06.19 - 14:20
Еще никто не раскурачивал на интерфейсы?

Чтобы вместо апача (или вместо iis с wsisapi.dll) через нечто другое с 1С работать?

По идее это
https://habr.com/ru/post/50909/

И можно
http://apache2dev.ru/2007/03/24/chto-est-moduli-apache2-pod-microsoft-windows/

Я вот nginx напрямую хочу или даже чем то внешним вызывать обработичики http-сервисов в 1С.
 
 
   arsik
 
1 - 26.06.19 - 14:42
Вот заняться людям нечем.
   Garykom
 
2 - 26.06.19 - 15:20
(1) Чем же например?

Пилить очередную формочку/отчетик или искать баги в типовых/обмене и исправлять? Надоело.
   arsik
 
3 - 26.06.19 - 15:47
(2) Ну ты прыгаешь с одного на другое. Сделай уже натив апи для 1С на ГО.
   Вафель
 
4 - 26.06.19 - 15:48
(0) вот внедришь так, а потом хер платформу обновишь
   oleg_km
 
5 - 26.06.19 - 21:21
Так там же внутреннее взаимодействие расширение с сервером и 1Сном внутреннем формате. С таким успехом можно взламывать формат взаимодействия клиента и сервера. Может есть адаптер для nginx, преобразующий запросы в формат iis например?
   Garykom
 
6 - 26.06.19 - 21:29
(3) Уже сделал.
И там напоролся на траблу когда веб-сервер прикрутил на Го.

Вот моя ВК и Golang присылают в 1С входящий http-запрос, я его благополучно передаю в 1С через "ВнешнееСобытие", обрабатывают там а дальше облом легкий.

Как вернуть из 1С в ВК и в Golang ответ чтобы через http-ответ ушел клиенту?
ВнешнееСобытие не возвращает ничего в ВК и оно через очередь работает, т.е. не блокируемое.

Надо как то извращаться с циклом ожидания в Golang, ждать пока в какой то переменной нечто появится (1С туда запишет из кода внешнего события) и это брать и отправлять.
   Garykom
 
7 - 26.06.19 - 21:30
(5) Ссылки смотрели в (0)?
Я предложил чем то другим эмулировать апач, 1С даже не в курсе будет что не апач с ней работает.
   Garykom
 
8 - 26.06.19 - 21:32
(6)+
func StartWeb() {
    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        if AddInFunc == nil {
            fmt.Println("AddInFunc = nil!")
        } else {
            C.invoke(C.closure(AddInFunc))
        }
        // Тут надо как то из 1С получить ответ обработки запроса

        w.Write([]byte("Hello, 1С!"))
    })
    
    port := "1111"
    if err := http.ListenAndServe(":"+port, nil); nil != err {
        fmt.Println(err)
    }
}

   Garykom
 
9 - 26.06.19 - 21:35
(8) Пока конвертацию между типами данных и передачу в 1С еще не сделал, но сам ExternalEvent уходит в 1С и там показывается.

VOID CALLBACK Event() {
    if (!pAsyncEvent)
        return;
    wchar_t *who = L"ComponentNative", *what = L"Golang";

    //wchar_t *wsdata = new wchar_t[10];

    wchar_t *wsdata = L"Data";

    pAsyncEvent->ExternalEvent(who, what, wsdata);
}

void callBack() {
    Event();
}

   Garykom
 
10 - 26.06.19 - 21:37
Ржачно что dll на Go с веб сервером на борту 11 мегабайт ))
   Garykom
 
11 - 26.06.19 - 21:38
(8) (9) AddInFunc=callBack()

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.