Имя: Пароль:
1C
1С v8
COM в 1С на удаленном компьютере
0 vkuznezov
 
20.10.19
00:18
Ребята, помогите с задачей. Необходимо считать данные весов на удаленном компе.
Есть весы, подключенные к компу. На нем установлено ПО от весов. Локально все считывает. Необходимо со второго ПК обратиться к ПК с весами и получить вес. Как считать удаленно, не нажимая кнопок на ПК с весами?

&НаКлиенте
Процедура ПолучитьВес(Команда)
Перем Вес;
Терминал = Новый COMОбъект("Controller.ScAuto");
Вес = Терминал.GetWeight(1,1);
КонецПроцедуры
1 vkuznezov
 
20.10.19
00:19
Процедура ПолучитьВес - из документации весов. Локально работает
2 Fram
 
20.10.19
01:39
А в документации к ПО от весов есть что то по твоему вопросу ?
3 Rovan
 
гуру
20.10.19
12:05
что за весы ? - марка \ модель
4 Лефмихалыч
 
20.10.19
12:19
Терминал = Новый COMОбъект("Controller.ScAuto", "ИмяКомпаСВесами");
5 Лефмихалыч
 
20.10.19
12:21
дальше может помешать только:
1. права винды
2. фиреволы с антивируасми
3. весы могут не позволять два одновременных коннекта

короче, проще перестать этого хотеть, чем с этими тремя пунктами бороться
6 vkuznezov
 
21.10.19
08:45
(3) Весоизмерительный преобразователь ТВ-003/05Н
(4) это для ПО Contoroller Net, а у меня Contoroller Free (весы связаны не с одним центральным компом, а каждые по своим ближайшим. Весов 3шт.)

Думаю в сторону ВыполнениеРегламентныхЗаданийНаКлиенте.epf
7 Сияющий в темноте
 
21.10.19
09:03
Зачем вам вообще там 1с?
пишете службу на .net напррмер,и она слушает порт,в поро постучался и получил ответ с весом и остальными данными.
8 vkuznezov
 
21.10.19
12:07
(7) Оо здорово, спасибо. Не умею писать службы на .net, но эту тему посмотрю. Если есть пример, буду очень благодарен
9 Garykom
 
гуру
21.10.19
12:17
(8) Могу предложить сделать веб-сервис который запускается на компе с весами и 1С будет через http соединяться и получать данные.
10 Garykom
 
гуру
21.10.19
12:17
(9)+ Минут 10-20 его писать на Golang
11 Garykom
 
гуру
21.10.19
12:18
(10)+ На выходе exe который ничего не требует в отличие от службы на .net
12 vkuznezov
 
21.10.19
12:22
(8) ну это было бы вообще фантастиш. Поделитесь опытом
13 Garykom
 
гуру
21.10.19
12:33
(12) Дык вот внутри поместить работу с "Controller.ScAuto"

package main
import (
    "fmt"
    "net/http"
)
func main() {
    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        fmt.Fprintf(w, "Hello World!")
    })
    http.ListenAndServe(":80", nil)
}


Примерно как тут https://github.com/go-ole/go-ole/blob/master/_example/excel/excel.go
14 vkuznezov
 
21.10.19
12:48
спасибо, поразбираюсь
15 Garykom
 
гуру
21.10.19
12:57
Хрен знает взлетит ли была бы у меня эта ВК протестил:


// main
package main

import (
    "fmt"
    "net/http"

    ole "github.com/go-ole/go-ole"
    "github.com/go-ole/go-ole/oleutil"
)

func testOLE(w http.ResponseWriter, r *http.Request) {
    ole.CoInitialize(0)
    unknown, _ := oleutil.CreateObject("Controller.ScAuto")
    terminal, _ := unknown.QueryInterface(ole.IID_IDispatch)

    result := oleutil.MustCallMethod(terminal, "GetWeight", 1, 1).ToString()

    fmt.Println(result)

    w.Write([]byte(result))

    terminal.Release()
    ole.CoUninitialize()
}

func main() {
    http.HandleFunc("/test", testOLE)
    http.ListenAndServe(":80", nil)
}
16 Garykom
 
гуру
21.10.19
13:04
(15)+ Гы скачал Controller Free https://www.tenso-m.ru/drajvera-i-programmnoe-obespechenie/
И оно ждет весы а их нет, ошибки не пишет.
17 Garykom
 
гуру
21.10.19
13:05
18 vkuznezov
 
21.10.19
13:06
19 vkuznezov
 
21.10.19
13:08
(17) Спасибо, протестирую на заводе, отпишусь. Сейчас не там.
20 Garykom
 
гуру
21.10.19
13:10
(18) Угу и я тут скачал, но у меня весов нету чтобы проверить.

Скачай https://golang.org/dl/ установи и попробуй откомпилить код (15)

Создай папку ScAutoHTTP, внутри код в файл main.go
Затем в CMD внутри это папки
go get
go build

Должен получиться exe, его запускаешь и пробуешь в браузере "localhost/test"
21 Garykom
 
гуру
21.10.19
13:14
(20) Точнее сначала не просто go get а:
go get github.com/go-ole/go-ole
go get github.com/go-ole/go-ole/oleutil

затем
go build

Ну и https://i.paste.pics/156b024684fe514b36d78f901937fed1.png
22 vkuznezov
 
21.10.19
13:23
(20) круто, попробую