Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2, свеженьких 1
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Подлючение автовесов к 1С 2 страниц V  < 1 2          
Petre Подменю пользователя
сообщение 11.06.14, 9:02
Сообщение #21

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2905
Из: Київ, Україна
Спасибо сказали: 1147 раз
Рейтинг: 1228.9

Я не понимаю, как массив можно преобразовывать в число.
Уточните, какие данные содержит массив. В конце концов, преобразуйте его в массив 1с (.Выгрузить()), а потом разбирайте элементы последнего.


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

alex040269 Подменю пользователя
сообщение 11.06.14, 9:12
Сообщение #22

Крутой
Иконка группы
Группа: Местный
Сообщений: 1626
Из: Гуляйполе
Спасибо сказали: 236 раз
Рейтинг: 0

Цитата(kosalex @ 11.06.14, 9:37) *
. Теперь бы преобразовать полученный COMSafeArray в десятичные числа =)

GetType и GetValue, что возвращает?


Signature
Никогда не бойся делать то, что не умеешь, помни - Ноев ковчег был построен любителем, профессионалы построили Титаник.
ЗиУП

kosalex Подменю пользователя
сообщение 11.06.14, 9:24
Сообщение #23

Ветеран
*******
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0

Сори, вроде додумался, возвращается массив 64 00 00 00 00 00 00 00 48 это строка, мне нужно выбирать из этой строки числа это и будет вес, ничего преобразовывать не нужно. Сори!

kosalex Подменю пользователя
сообщение 16.07.14, 7:52
Сообщение #24

Ветеран
*******
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0

Добрый день. Помогите разобраться, есть ж/д весовая подключенная через COM порт. Пишу в 1С вот так,

Процедура ИнициализацияСОМПорта()
    ComPort = Новый COMОбъект("MsCommLib.MsComm");    
    Попытка
        ComPort.CommPort        = 1;
        ComPort.Settings        = "9600,N,8,1";
        ComPort.Handshaking     = 0;
        ComPort.InBufferCount   = 0;
        ComPort.InBufferSize    = 70;
        ComPort.InputLen        = 0;
        ComPort.InputMode       = 1;
        ComPort.NullDiscard     = 0;
        ComPort.PortOpen = Истина;
        ЭлементыФормы.НадписьСвязь.Заголовок = "Связь есть..."
    Исключение
        Сообщить("Не возможно открыть порт.",СтатусСообщения.ОченьВажное);
    КонецПопытки;
КонецПроцедуры




Процедура ЧтениеСОМПорта() Экспорт
    ДанныеСПорта = "";
    Если ComPort.PortOpen Тогда
        ComPort.Output = "1";
        ДанныеСПорта = ComPort.Input;
        ВывестиВес(ДанныеСПорта);
    Иначе
        Сообщить("Порт не открывается",СтатусСообщения.ОченьВажное);
        ЭлементыФормы.НадписьСвязь.Заголовок = "Связи нет..."
    КонецЕсли;
    
КонецПроцедуры


Процедура ВывестиВес(ДанныеСПорта)
    Массив = ДанныеСПорта.Выгрузить();
    ИндексМин = ДанныеСПорта.GetLowerBound(0);
    ИндексМакс = ДанныеСПорта.GetUpperBound(0);
    СтрокаВес = "";
    Для Индекс = ИндексМин + 1 По ИндексМакс - 1 Цикл
        СтрокаВес = СтрокаВес + Строка(Массив.Получить(Индекс));
    КонецЦикла;
    
    ТекущийВес = СтрокаВес;
    
    ЭлементыФормы.ВесБрутто.Заголовок = ТекущийВес;
    ЭлементыФормы.ВесНетто.Заголовок = ТекущийВес;
    ЭлементыФормы.ВесТара.Заголовок = ТекущийВес;
    
КонецПроцедуры



В "ДанныеСПорта" попадает ComSafeArray 36484848484848...64, может я как то не так получаю вес, что делать с этим массивом? Может как то преобразовать нужно?
Ответ от порта поступает не всегда, и почему то 4848484848....
Настройки порта кто какие выставлял?

Очень нужна ПОМОЩЬ!

Acid Подменю пользователя
сообщение 16.07.14, 8:26
Сообщение #25

Про1С-ник
Иконка группы
За заслуги на форуме в 2010 году
Группа: Местный
Сообщений: 2104
Из: Занзибар
Спасибо сказали: 377 раз
Рейтинг: 260.7

документация к весам есть? если нет, обратитесь к производителю. В ней многое можно почерпнуть.


Signature

Документируйте Код! мать вашу...


kosalex Подменю пользователя
сообщение 16.07.14, 9:30
Сообщение #26

Ветеран
*******
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0

Цитата(Acid @ 16.07.14, 9:26) *
документация к весам есть? если нет, обратитесь к производителю. В ней многое можно почерпнуть.


Документации нет. К производителю обращался...с связи с обстановкой в г. Славянск производитель на связь не выходит...

Вроде как получилось получить данные с весов. Проблема была в настройках порта.Оставил вот это:
Процедура ИнициализацияСОМПорта(Отказ)
    ComPort = Новый COMОбъект("MsCommLib.MsComm");    
    Попытка
        ComPort.CommPort        = 1;
        ComPort.Settings        = "9600,N,8,1";
        ComPort.PortOpen = Истина;
        ЭлементыФормы.НадписьСвязь.Заголовок = "Связь есть..."
    Исключение
        Сообщить("Не возможно открыть порт.",СтатусСообщения.ОченьВажное);
        Отказ = Истина;
    КонецПопытки;
    ComPort.PortOpen = Ложь;
КонецПроцедуры

andr_andrey Подменю пользователя
сообщение 16.07.14, 11:11
Сообщение #27

Почти ветеран
Иконка группы
Группа: Местный
Сообщений: 626
Спасибо сказали: 166 раз
Рейтинг: 130.8

Писал статью по этому поводу
[необходимо зарегистрироваться для просмотра ссылки]


Signature
#define private public
enum BOOL { FALSE, TRUE, FILENOTFOUND } is made my day

Vofka Подменю пользователя
сообщение 16.07.14, 11:21
Сообщение #28

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13955
Из: Киев
Спасибо сказали: 4519 раз
Рейтинг: 3641.2

Цитата(andr_andrey @ 16.07.14, 12:11) *
Писал статью по этому поводу

Я б нажал палец, если бы у нас опубликовали (например, тут) smile.gif

andr_andrey Подменю пользователя
сообщение 16.07.14, 12:10
Сообщение #29

Почти ветеран
Иконка группы
Группа: Местный
Сообщений: 626
Спасибо сказали: 166 раз
Рейтинг: 130.8

Цитата(Vofka @ 16.07.14, 12:21) *
Я б нажал палец, если бы у нас опубликовали (например, тут) smile.gif

Не проблема, но
Причина:

У вас нет прав открытия тем в этом форуме


Signature
#define private public
enum BOOL { FALSE, TRUE, FILENOTFOUND } is made my day

kosalex Подменю пользователя
сообщение 16.07.14, 13:06
Сообщение #30

Ветеран
*******
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0

Цитата(andr_andrey @ 16.07.14, 12:11) *
Писал статью по этому поводу
[необходимо зарегистрироваться для просмотра ссылки]


Что то брал с Вашего примера,точно уже не помню. Если оставить настройки порта как написано у меня, то ничего разберать,приводить не приходиться. Посылаем "1", получаем строку - ответ от весов "$000100000000@ = 100 кг.

Что скажете?

andr_andrey Подменю пользователя
сообщение 16.07.14, 13:38
Сообщение #31

Почти ветеран
Иконка группы
Группа: Местный
Сообщений: 626
Спасибо сказали: 166 раз
Рейтинг: 130.8

Цитата(kosalex @ 16.07.14, 14:06) *
Что то брал с Вашего примера,точно уже не помню. Если оставить настройки порта как написано у меня, то ничего разберать,приводить не приходиться. Посылаем "1", получаем строку - ответ от весов "$000100000000@ = 100 кг.

Что скажете?

Скажу, что из вашего описания "весы которые подключаются к COM" понятия не имею какой там протокол.
Что такое 100 кг, это вес установленный на весах?
Судя по текущему сообщению, у вас стоит протокол вида "запрос-ответ", я же использовал (переводил весы в) протокол "без запроса" (весы всё время сообщают установленный на них вес).
Не зависимо от выбранного протокола передачи, весы передают посылку определённого формата, который вам придётся разбирать, либо в символьном, либо в двоичном виде.


Signature
#define private public
enum BOOL { FALSE, TRUE, FILENOTFOUND } is made my day

kosalex Подменю пользователя
сообщение 16.07.14, 13:46
Сообщение #32

Ветеран
*******
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0

Цитата(andr_andrey @ 16.07.14, 14:38) *
Что такое 100 кг, это вес установленный на весах?


да, и приходит ответ с весов в виде $000100000000@


andr_andrey, я же не говорю что Ваша статья бред! Полезная статья. У меня была запарка с настройкой порта. Сначало стояло, как вы говорите "без запроса", потом поставил "запрос-ответ" и не пришлось преобразовывать, с полученной строки берем нужное количество знаков - это и будет вес, имхо =)

andr_andrey Подменю пользователя
сообщение 16.07.14, 13:51
Сообщение #33

Почти ветеран
Иконка группы
Группа: Местный
Сообщений: 626
Спасибо сказали: 166 раз
Рейтинг: 130.8

Цитата(kosalex @ 16.07.14, 14:42) *
да, и приходит ответ с весов в виде $000100000000@

Ну тогда опытным путём узнаём в каких разрядах отображается вес
поставили 10 кг - посмотрели ответ от весов
поставили 15 кг - посмотрели.
А дальше - обычная десятичная арифметика (берём цифру разряда и умножаем на вес разряда).

П.С. Ну не верю я, что автовесы (основное средство) не имеет марку, а по марке можно поискать протокол.


Signature
#define private public
enum BOOL { FALSE, TRUE, FILENOTFOUND } is made my day

kosalex Подменю пользователя
сообщение 16.07.14, 13:53
Сообщение #34

Ветеран
*******
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0

Цитата(andr_andrey @ 16.07.14, 14:51) *
Ну тогда опытным путём узнаём в каких разрядах отображается вес
поставили 10 кг - посмотрели ответ от весов
поставили 15 кг - посмотрели.
А дальше - обычная десятичная арифметика (берём цифру разряда и умножаем на вес разряда).

П.С. Ну не верю я, что автовесы (основное средство) не имеет марку, а по марке можно поискать протокол.



Фирма производитель есть, люди которые их ставили, говорят, протокол простой, шли единицу - получишь вес =)

andr_andrey Подменю пользователя
сообщение 16.07.14, 13:57
Сообщение #35

Почти ветеран
Иконка группы
Группа: Местный
Сообщений: 626
Спасибо сказали: 166 раз
Рейтинг: 130.8

Цитата(kosalex @ 16.07.14, 14:46) *
да, и приходит ответ с весов в виде $000100000000@


andr_andrey, я же не говорю что Ваша статья бред! Полезная статья. У меня была запарка с настройкой порта. Сначало стояло, как вы говорите "без запроса", потом поставил "запрос-ответ" и не пришлось преобразовывать, с полученной строки берем нужное количество знаков - это и будет вес, имхо =)

То есть всё разрешилось? Тогда поздравляю.
Только имейте ввиду, что тупо получить вес и принять его - мало, надо быть уверенным, что вес стабилизирован, о чём весы дополнительно извещают в посылке ("вес стабилен").


Signature
#define private public
enum BOOL { FALSE, TRUE, FILENOTFOUND } is made my day

kosalex Подменю пользователя
сообщение 16.07.14, 14:08
Сообщение #36

Ветеран
*******
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0

andr_andrey, А как получить эту посылку, расскажите по подробней,если не в тягость smile.gif

andr_andrey Подменю пользователя
сообщение 16.07.14, 14:43
Сообщение #37

Почти ветеран
Иконка группы
Группа: Местный
Сообщений: 626
Спасибо сказали: 166 раз
Рейтинг: 130.8

Цитата(kosalex @ 16.07.14, 15:08) *
andr_andrey, А как получить эту посылку, расскажите по подробней,если не в тягость smile.gif

Для этого надо знать формат посылки, который описывается в протоколе обмена.
Например, для весов ВН-60-1Д в посылке есть байт признаков:
Цитата
s1s0 - положение точки на индикаторе
s2 - бит стабилизации веса
s3 - индикация нуля
s4 - индикация тары
s5 - знак весов (1 - отрицательная)
s6 - номер знакогенератора


Получается функция:
// Функция определяющая стабильность веса из байта признаков посылки
Функция ЭтотВесСтабилен(МассивПосылки)
    
    Возврат ((МассивПосылки[5] % 8) / 4) >= 1;
    
КонецФункции // ЭтотВесСтабилен()


Signature
#define private public
enum BOOL { FALSE, TRUE, FILENOTFOUND } is made my day

Спасибо сказали: kosalex,

Pavlik1c Подменю пользователя
сообщение 17.05.16, 13:26
Сообщение #38

Общительный
**
Группа: Пользователи
Сообщений: 48
Спасибо сказали: 2 раз
Рейтинг: 0

Имеются весы ВН-150-А. В 1С 7.7 вес автоматически передается. Сейчас интегрируем с 1С8 УПП. Как вывести вес на форме обработки? Какой алгоритм действий? Помогите!!!

Vofka Подменю пользователя
сообщение 17.05.16, 13:43
Сообщение #39

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13955
Из: Киев
Спасибо сказали: 4519 раз
Рейтинг: 3641.2

Pavlik1c, давайте вы лучше создадите отдельную новую тема. Эта тема закрывается.

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


2 страниц V  < 1 2
Тема закрыта Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 18.04.24, 2:29
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!