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

COM в 1С на удаленном компьютере

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

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

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

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

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

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

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

Должен получиться exe, его запускаешь и пробуешь в браузере "localhost/test"
   Garykom
 
21 - 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
   vkuznezov
 
22 - 21.10.19 - 13:23
(20) круто, попробую


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