| 
    
            
         
         | 
    
  | 
v7: Работа с компортом. | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        uno-group    
     18.06.16 
            ✎
    12:52 
 | 
         
        Есть девайс на Arduino с экранчиком. задача выводить на него информацию из 1с.
 
        Пишу в текстовый файл. Дальше дос команда copy 1.txt \\.\com8 \y или copy 1.txt com8 \y На домашнем компьютере все работает. На рабочих не хочет. Вин7. дрова ставил одни и те же. файлик 1 и тот же, настройки сомпорта в системе стоят одинаковые. Если взять программу терминал то с нее все выводится, что дома, что на работе. мозг сломал куда копать.  | 
|||
| 
    1
    
        Gary417    
     18.06.16 
            ✎
    13:01 
 | 
         
        перевод строки неправильный только в голову приходит     
         | 
|||
| 
    2
    
        uno-group    
     18.06.16 
            ✎
    13:04 
 | 
         
        файл скопирован с компа на комп.     
         | 
|||
| 
    3
    
        uno-group    
     18.06.16 
            ✎
    13:05 
 | 
         
        А что из ВК умеет в компорт слать команды
 
        надо отсылать что то вроде ^1:1234567890123  | 
|||
| 
    4
    
        Garykom    
     гуру 
    18.06.16 
            ✎
    13:52 
 | 
         
        Проверь работу из C#/.Net http://stackoverflow.com/questions/7701061/send-write-commands-to-serial-port-with-c
 
        Если все ок то те сюда Использование классов .Net в 1С для новичков к Serginio1  | 
|||
| 
    5
    
        Garykom    
     гуру 
    18.06.16 
            ✎
    13:54 
 | 
||||
| 
    6
    
        uno-group    
     18.06.16 
            ✎
    13:58 
 | 
         
        vk_rs232 скачал. чтото отсылает. но или кодировка неправильная нужна ansi или скорость не та. не нашел синтаксиса на нее     
         | 
|||
| 
    7
    
        Garykom    
     гуру 
    18.06.16 
            ✎
    14:03 
 | 
         
        (6) Книга знаний: Работа с последовательным (COM, RS-232) портом из 1С:Предприятие 7.7 и 8.0 в самом конце с исходниками можно посмотреть и поправить.
 
        И да задача которую начинаешь уже быть чистым 1С-ником при решении никак, желательно другие языки знать/учить  | 
|||
| 
    8
    
        Serginio1    
     18.06.16 
            ✎
    14:08 
 | 
||||
| 
    9
    
        uno-group    
     18.06.16 
            ✎
    14:30 
 | 
         
        (8) и это для новичков??? Я микропроцесор на незнакомой сиситеме в разы проще запрограмировал.
 
        так и не понял как в порт записать через это. Процедура Сформировать() // rs232.ЗаписатьСтроку(OemToAnsi("^s:")); врап=СоздатьОбъект("NetObjectToIDispatch45"); порт = врап.СоздатьОбъект("System.IO.Ports.SerialPort"); порт.PortName = "COM8"; порт.BaudRate = 115200; порт.DataBits = 8; четность = врап.ПолучитьТип("System.IO.Ports.Parity"); порт.Parity = четность.None; СтопБит = врап.ПолучитьТип("System.IO.Ports.StopBits"); порт.StopBits = СтопБит.One; Управление = врап.ПолучитьТип("System.IO.Ports.Handshake"); порт.Handshake = Управление.RequestToSend; порт.Open(); КонецПроцедуры  | 
|||
| 
    10
    
        Garykom    
     гуру 
    18.06.16 
            ✎
    14:34 
 | 
         
        (9) У автора просто плохо выходит представить понятно. Но если разобраться и слегка знать C#/.Net то все очень просто. 
 
        В данном случае открыли порт. Дальше просто порт.Write("блабла"). https://msdn.microsoft.com/ru-ru/library/y2sxhat8(v=vs.110).aspx Есть пример https://msdn.microsoft.com/ru-ru/library/system.io.ports.serialport(v=vs.110).aspx  | 
|||
| 
    11
    
        Garykom    
     гуру 
    18.06.16 
            ✎
    14:36 
 | 
         
        (10)+ Про кодировки там тоже есть.     
         | 
|||
| 
    12
    
        uno-group    
     18.06.16 
            ✎
    14:37 
 | 
         
        как ее зарегистрировать в системе?     
         | 
|||
| 
    13
    
        Garykom    
     гуру 
    18.06.16 
            ✎
    14:58 
 | 
         
        (12) Почитай про RegAsm только в понятном месте ))     
         | 
|||
| 
    14
    
        Garykom    
     гуру 
    18.06.16 
            ✎
    14:59 
 | 
         
        (12) Книга знаний: Написание внешних компонент для 1С на VB.NET и C#
 
        Регистрация внешней компоненты в системе Windows Внешняя компонента фактически является дополнением для программных файлов 1С:Предприятие, и требует соответствующей установки. Любые внешние компоненты для 1С:Предприятие являются COM-библиотеками, которые необходимо перед первым запуском регистрировать в системном реестре. Для этого необходимо обладать правами администратора или привилегированного пользователя на компьютере, где производится установка. Регистрация при помощи regsvr32 в данном случае, однако, не работает. Пример регистрации компоненты в системном реестре, чтобы ее смогла найти 1С: regasm.exe ИмяКомпоненты.dll /codebase  | 
|||
| 
    15
    
        Garykom    
     гуру 
    18.06.16 
            ✎
    15:01 
 | 
         
        (14)+ Неупомянутая тут тонкость что .net framework'ов может на компе быть несколько (dll разные "45" для 4.5 без для 2.0) и желательно с полным нужным путем regasm.exe запускать.     
         | 
|||
| 
    16
    
        Serginio1    
     19.06.16 
            ✎
    00:04 
 | 
         
        (12) В шапке Использование классов .Net в 1С для новичков есть описание как регистрировать
 
        Рядом с NetObjetToIDispatch.dll есть RegAsm.bat Его нужно запустить от имени администратора. (9) Там же есть примеры работы с Com портом Динамическая компиляция для использования .Net событий в 1С  | 
|||
| 
    17
    
        Serginio1    
     19.06.16 
            ✎
    00:10 
 | 
         
        16+ для подключения событий смотри ТестКомпиляцииСобытий.ert     
         | 
|||
| 
    18
    
        Serginio1    
     19.06.16 
            ✎
    00:24 
 | 
         
        Для семерки нужно
 
        врап=СоздатьОбъект("NetObjectToIDispatch45"); врап.УстЭтоСемерка(); Так как не поддерживаются множество типов. И для установки инта нужно врап.ToInt(Строка(стр)); порт.BaudRate = врап.ToInt(115200); порт.DataBits = врап.ToInt(8); либо порт.BaudRate = врап.ToInt("115200"); порт.DataBits = врап.ToInt("8"); Так как в семерке нет int только double. А в .Net может быть перегрузка методов и нужен точный тип.  | 
|||
| 
    19
    
        Zamestas    
     19.06.16 
            ✎
    00:34 
 | 
         
        (0) А MSCOMMLib.MSComm.1 уже не катит?     
         | 
|||
| 
    20
    
        oleg_km    
     19.06.16 
            ✎
    10:36 
 | 
         
        (19) Старье и на семерках часто глючит. На .нет лучше     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |