Имя: Пароль:
1C
 
Использование ТСД на WM 6 как беспроводной сканер с получением данных из 1С
,
0 Serginio1
 
18.05.16
19:42
Как вариант печати этикеток на мобильный принтер, получение информации по ШК.
Можно легко расширить до более сложных задач. В том числе на Xamarin под Android и IOS.


Сейчас много старых ТСД,  которые можно использовать в этом варианте. В отличие от беспроводных сканеров мы можем получить информацию о товаре. Подтвердить действия и т.д.

Основное в разработке - это модуль обмена по TCP/IP.

Применен протокол со сжатием данных, так как это актуально в медленных сетях Wi-Fi, особенно вдали от точки.

Конечно можно использовать и Вэб сервисы, но часто нужно настраивать мобильный принтер на машире оператора, или делать авбор данных в ручную с локального компьютера.

Статья находится здесь http://catalog.mista.ru/public/525806/
Это продолжение статей
.Net в 1С. Парсинг сайтов, multipart/form-data, gzip итд
Использование классов .Net в 1С для новичков
Динамическая компиляция для использования .Net событий в 1С
1C Messenger для отправки сообщений, файлов и обмена данными между пользователям
v8: v8: Использование сборок .NET в 1С 7.x и 8.x

Файлы можно скачать здесь
http://files.rsdn.ru/19608/%d0%a4%d0%b0%d0%b9%d0%bb%d1%8b%d0%a2%d0%b5%d1%81%d1%82%d0%a2%d0%a1%d0%94.zip
1 Злопчинский
 
18.05.16
21:15
Неинтересно
Практический смысл какой?
Прикрутить к этому еще клиента на тсд который будет формы отрисовывать нужные для создания нормальной оболочки доя работы на тсд? Их есть уже.
2 Serginio1
 
18.05.16
21:22
(1) Смысл я написал. Например получить информацию о товаре,
распечатать на мобильном принтере этикетку.
Рисовать очень удобно в VS значительно проще чем в 1С.
3 Serginio1
 
18.05.16
21:23
2+ Я просто показал простейшее решение. Главное это модуль передачи и получения данных.
Можно прикрутить и к клюшкам
4 NorthWind
 
18.05.16
21:24
(3) обычно в случае с WM юзают RDP и не мучаются
5 Злопчинский
 
18.05.16
21:24
(2)  это голый транспорт доставки инфы тудасюда
Полезно
Но без инструмента ДЛЯ ОДНОЭСНИКА по рисованию и програмлению форм и логики поведения этих форм на ТСД - пользы мало
6 NorthWind
 
18.05.16
21:25
(5) в отдельных случаях может пригодиться. Например, если со связью совсем швах и требуется квитирование/разрывоустойчивость
7 Злопчинский
 
18.05.16
21:26
(4)  ну может пригодится где сигнал настолько слабый что даже на отрисовку форм по рдп бяка получается

Но я такого не встречал
Либо работает
Либо нет
8 Злопчинский
 
18.05.16
21:26
(6)  опередун
9 Serginio1
 
18.05.16
21:37
(5) Ну есть 1С ники которые умеют рисовать формы в VS которые более приспособлены под формат ТСД. Да и возможности того же C# пусть и под CF значительно болше чем под 1С.
Я показал простейшее решение, а вот как его использовать каждый решает сам. При этом трафик значительно меньше чем по RDP.
10 NorthWind
 
18.05.16
21:51
только я не очень понимаю, почему вы это беспроводным сканером назвали. Показ юзеру данных из системы и взаимодействие с ним - это вполне себе полноценный ТСД. Просто низкобюджетное решение взамен всяких Cleverence и т.п., насколько я понимаю
11 Serginio1
 
18.05.16
22:02
(10) Просто у меня есть решения значительно сложнее.
А здесь максимум 10 минут.
Я на форму 1С больше потратил.
12 Serginio1
 
18.05.16
22:05
11+ Да еще долго вспоминал как сеть подключить на эмуляторе.
https://msdn.microsoft.com/ru-ru/library/aa188183(v=vs.90).aspx
13 Злопчинский
 
18.05.16
22:53
(9) под формат ТСД 1С приспособлено нормально.
основные "проблемы"
1. убрать с формы ненужные заголовки окон  и прочую хрень - я сам хочу нарисовать любое окно какое надо.
2. нормальная вменяемая масштабирование формы (ваяем для допустим 240x320, при использовании 480-640 - все должно "увеличиватся" вдвое)
14 Злопчинский
 
18.05.16
22:54
(9) я - за.
сделай лучше конструктор форм для ТСД.
15 NorthWind
 
18.05.16
22:55
(13) в виндах-то это и на десктопе не сказать чтобы нормально решено
16 Serginio1
 
18.05.16
23:11
(14) Ты для разнообразия попробуй VS использовать. Поверь это значительно проще чем в пофигураторе.
А вообще RDP под ТСД с его размером и разрешением еще то извращение.
17 Злопчинский
 
19.05.16
01:19
(16) 200 на 300 пикселей на 3.5-4 дюймовом экране ТСД ДОСТАТОЧНО для нормальных фейсов. - я их нарисовал уже реально ВАГОН. И реально все читаемо и даже крупными буквами. Ясен пень, если на экран ТСД перенести парадигму 1сных фейсов - будет (_._) Если делать по уму - достаточно.
18 Злопчинский
 
19.05.16
01:22
(16) нафига мне зоопарк? тут по 1с кучу не освоишь как надо - нафиг распыляться на "боковое"..? если припрет - мне дешевле будет у тебя заказать нужную хрень. Пока не припирало ;-) RDP - вполне хватает.
19 Serginio1
 
19.05.16
06:40
(18) Я только рад за тебя. Честно.
Подождем когда припрет. Но изучение написание кода на C# и рисование форм в VS поверь займет не много времени. А удовольствия от программирования получишь большое. Нужна в жизни постоянная новизна и в любом возрасте.
Я вот сейчас С++ изучаю.
20 Serginio1
 
19.05.16
09:42
(18) Кста можешь протестировать? А то я на эмуляторе только делал.
21 Serginio1
 
19.05.16
10:17
апну
22 Новиков
 
19.05.16
10:26
(17) >>А вообще RDP под ТСД с его размером и разрешением еще то извращение.

Британские ученые это установили? с RDP нет вообще никаких проблем нигде от слова - совсем. Любая уважающая себя WMS из коробки имеет готовые арм под разрешения ТСД. Никаких прослоек, никаких пистоплясок с установкой чего-либо куда либо. Со Злобчинксим полностью согласен: RDP наше все.
23 Новиков
 
19.05.16
10:28
Нарисовать же свой интерфейс под разрешение конкретного ТСД, без заяв на универсальность - это вообще задачка для дауншифера какого-то. Это делается если на скоро руку - под чашку кофе, если есть на чем отладится и ты уже сталкивался с такими задачами.
24 Serginio1
 
19.05.16
10:32
(23) Конечно. Рисовать форму в VS под конкретный девайс одно удовольствие. Значительно меньше затрат чем в 1С.
А пример запроса данных и получение данных достаточно прост.
25 Serginio1
 
19.05.16
10:38
(23) Сам попробуй. Этот вариант для CА и VS 2008
К нему нужно еще SDK для WM 6 скачать.
Можешь использовать эмулятор
https://msdn.microsoft.com/ru-ru/library/aa188183(v=vs.90).aspx

Я использовал

1.Запустите диспетчер эмуляторов устройств.

Дополнительные сведения см. в разделе Практическое руководство. Запуск диспетчера эмуляторов устройств.


2.Подключитесь к необходимому эмулятору.


3.С помощью диспетчера эмуляторов устройств поместите выбранный эмулятор в гнездо.


4.В ActiveSync откройте диалоговое окно Новое подключение и выполните инструкции по настройке связи.


При подключении к устройству Pocket PC из Visual Studio это подключение к эмулятору осуществляется посредством ActiveSync. При закрытии диспетчера эмуляторов устройств или самого эмулятора также завершается и подключение ActiveSync.
26 Serginio1
 
19.05.16
10:39
27 Serginio1
 
19.05.16
12:53
Так вот для задачи в (0) Зачем нужен RDP? Это как использовать экскаватор для копания лунки
28 Злопчинский
 
19.05.16
13:12
(20) кидай на мыло [email protected]
1. софт.
2. подробную инструкцию что куда и как ставить.

буду в офисе - если не обломлюсь - то потестю...
29 Злопчинский
 
19.05.16
13:13
(22) не факт. разговаривал/писали ребята, которые не учли особенностей склада - куча железа. потлки-полы = железные листы. рдп не брало. пришлось тыкать много точек.
30 Serginio1
 
19.05.16
13:14
(28) Так в шапке ссылка. А в статье как устанавливать.
http://files.rsdn.ru/19608/%d0%a4%d0%b0%d0%b9%d0%bb%d1%8b%d0%a2%d0%b5%d1%81%d1%82%d0%a2%d0%a1%d0%94.zip

В Папке Для1С лежат файлы NetObjetToIDispatch45.dll и RegAsm.bat и внешняя обработка ТестТСД.erf



Скопируйте в общедоступную папку и зарегистрируйте, запустив от администратора RegAsm.bat



В Папке ТСДкакСканер лежат файлы ТСДкакСканер.exe и ТСДкакСканер.exe.config, их нужно скопировать на КПК, например, в Programm Files



Но перед тем. как копировать, измените ТСДкакСканер.exe.config

<add key="ServerName"  value="10.250.0.1" />  
<add key="ServerPort" value="6891" />



ServerName на IpAddress компьютера, на котором будет загружаться обработка. Порт должен быть таким, как в обработке.



Запускаете обработку, нажимаете на кнопку Запустить, и можно обмениваться данными с NCL, сканировать как эмулятор  клавиатуры, набирать ШК вручную.
31 Злопчинский
 
19.05.16
13:17
(30) ты не понимаешь. я не буду шариться по куче ресурсов и статей. хочешь чтобы я потестил - см. выше. простая ЧАСТНАЯ пошаговая инструкция для конкретной ситуации. Мне влом заниматься "иследованиями".
32 Serginio1
 
19.05.16
13:18
(31) У меня там exe, а они не веми почтовыми серверами принимаются. Я могу тебе скинуть (30) на почту
33 Злопчинский
 
19.05.16
13:19
(24) покажи какую-нибудь нормальную рабочую форму для ТСД нарисованную на VS - из какого-нить реального продукта - хочется посмотреть
34 Злопчинский
 
19.05.16
13:19
(32) см.(28)
35 Serginio1
 
19.05.16
13:22
(34) Отправил
36 Serginio1
 
19.05.16
13:23
35+ Заранее спасибо
37 Злопчинский
 
19.05.16
13:24
(35) угу. получил.
38 Злопчинский
 
19.05.16
13:24
(36) это ты зря. я обычно если мне это не надо - не сильно спешу/озобачиваюсь... ;-)
39 DGorgoN
 
19.05.16
13:27
У меня РДП и я не мучаюсь. Сигнал для разрешения ТСД может быть слабым вообще. Скорость нужна практически никакая. Зачем мучатся?
40 Serginio1
 
19.05.16
14:04
(39) А кто мучается? Кстати как ты думаешь какой вариант меньше жрет батарею?
41 Злопчинский
 
19.05.16
14:15
(40) мы говорим о чем? о тотально жлобском "руководятеле"..?

не представляет никакой проблемы раз в 3-4 часа проходя мимо зарядного стола - сменить батарею. При средней загрузке у моих за смену 8ч батарею меняют 1 раз, бывает что и два, но редко.
за 8 лет сменили один комплект батарей
42 Злопчинский
 
19.05.16
14:16
(40) если связи нет - накопленные для отправки данные - буферизируются? при появлении связи - скинуться на сервер?
43 Serginio1
 
19.05.16
15:05
(42) В данном случае просто как сканер с получением данных от 1С. В реальных приложениях все хранится в DataTable и сбрасывается на диск.
Реально проще делать фильтры типа

  Filter = String.Format("Референс='{0}' and Артикул='{1}'",Фильтры[0],Фильтры[2]);
            КоличествоПоНашемуШК=int.Parse(Фильтры[1]);  
              
          }
          if (ВидШК == "Наш Реф")
              Filter += (!Все.Checked ? " AND ВНакладной>Выписано" : "");
            else
            Filter += "='" + ШК + "'"+(!Все.Checked ? " AND ВНакладной>Выписано":"");
            if (!(cbLogins.Text=="Все"))
            {
            Filter +=String.Format(" AND Логин='{0}'",cbLogins.Text);
            
            }

           firstView.RowFilter=Filter;
44 Serginio1
 
19.05.16
15:15
Можно сохранять и читать DataTable
https://msdn.microsoft.com/ru-ru/library/aw4d600w(v=vs.110).aspx

в статье есть преобразование из ТЗ в DataTable
45 Serginio1
 
19.05.16
15:55
Да и Wi-Fi можно только для отправки и получения данных. В онлайне обычно нужно только для печати на мобильный принтер
46 Serginio1
 
20.05.16
10:31
(42) Не пробовал?
47 Злопчинский
 
20.05.16
12:43
(46) не. я в офисе сейчас не каждый день
48 Злопчинский
 
20.05.16
12:45
(43) "В данном случае просто как сканер с получением данных от 1С." - нифейхоа не понял. Связи нет - какая 1С? связи нет. сканируем. ШК - куда попадает?
49 Serginio1
 
20.05.16
14:36
(48) В DataTable. Но этого в данной обработке нет. Но легко настраивается
50 Serginio1
 
24.05.16
07:54
(48) Ну как не пробовал? Вот тебе как раз пример работы с сокетами. Могу сделать обработкум и под 1С 7.7
51 Serginio1
 
24.05.16
07:56
52 Злопчинский
 
24.05.16
11:02
(50) под 77 - предпочтительнее.
ща в офис поеду, если руки дойдут - посмотрю
53 Serginio1
 
24.05.16
16:00
К сожалению сейчас запарка переделывать. Завтра сделаю под 7.7
54 Serginio1
 
25.05.16
10:15
55 Serginio1
 
26.05.16
14:58
(52) Не смотрел?
56 Злопчинский
 
26.05.16
15:01
(55) неа, пока, я в офис захожу часа на два... оперативное разрулить...
57 Serginio1
 
30.05.16
16:54
Почему то в старые ветки зайти не могу.
.Net в 1С. Парсинг сайтов, multipart/form-data, gzip итд

Там для силениума можно использовать удобные JQury надстройки
http://www.vcskicks.com/selenium-jquery.php
58 Pistol
 
30.05.16
17:33
(57) Да "Селениум" он, се-ле-ни-ум. Чурка нерусский :)

Страшно представить, как ты переменные на C# называешь.
59 Serginio1
 
30.05.16
17:53
60 Serginio1
 
30.05.16
17:54
61 Pistol
 
30.05.16
18:36

Infrascturcture=Врап.ПолучитьТипИзСборки("HelloWorldLibrary.Infrascturcture",ПутьКСборке_Или_Имя_ДЛЛ_Если_А_GAK);
Сообщить(Infrascturcture.Foo());

Мда... Особенно умилило "Имя длл если GAK". Все таки правы 1С с их стандартами - если человек не может вменяемо назвать то, что с чем он работает, это первый звоночек, что он плавает.

А скажи мне, как будет называться что-нибудь прикладное, например, "сальдо дебетовое на конец периода" на твоем суржике?
62 Serginio1
 
30.05.16
19:39
(61) Спасибо подправил.
Кстати давно не плавал. Нужно срочно к морю.
Так тебе шашечки или ехать?
СКД
63 Pistol
 
30.05.16
19:48
(62) Я примеряю, как после тебя это барахло сопровождать. То есть в c# коде будет русское наименование, ок.
64 Serginio1
 
30.05.16
21:55
(63) Так там и экспортируются методы на кириллице.
Что ж вас так коробит то от C# на русском?
Ты пиши своё барахло хоть на китайском.
65 Serginio1
 
30.05.16
22:05
64+ И это барахло бесплатно и позволяет использовать любые классы .Net в том числе и события. То есть превращает 1С в 1С.Net
66 Злопчинский
 
30.05.16
22:36
(65) похрен на это плятское изобилие классов.
изобилие так и не дало на рынок ничего вменяемого. а 1С - дало огрнаиченное изобилие. и подмяло под себя весь рынок.
67 Pistol
 
30.05.16
23:12
(65) Круг замкнулся.
- Нужен специалист, чтобы выкопать яму 2x2x2
- Это ерунда, посмотрите какой у меня волшебный совочек, он еще и не то умеет!
68 Serginio1
 
30.05.16
23:17
(66) На этом изобилие работает значительно больше людей чем на 1С.
Ты ТСД попробовал. Даже RDP к 1С никаким боком.

(67) Я могу выкопать эту яму своим совочком значительно быстрее, чем другой но с лопатой.
Просто с моим совочком и лопатой производительность труда значительно повышается.
69 Serginio1
 
30.05.16
23:25
При этом волшебный совочек ничем не сложнее вэб сервисов.
Но никто не против Вэб сервисов, но вот совочек почему то все хают.
70 bura_limon
 
30.05.16
23:31
(0) все это можно замутить на мобил.1с через почтовый клиент...
71 Serginio1
 
30.05.16
23:42
(0) То есть по почте отправлять и получать ответ? И чем это решение лучше чем в 0?
72 Pistol
 
31.05.16
06:12
(69) Вот тебе как раз задача на интеграцию: Кладр...
Доставай свое изобилие классов, помоги там топикстартеру.
73 UnknownNick
 
31.05.16
06:23
(70) мутите сразу через текстовые файлы и дискетки.
74 Serginio1
 
31.05.16
09:59
(72) Информации мало. Но наприммер для разбора строк я могу исользовать Split или Regex
https://msdn.microsoft.com/ru-ru/library/b873y76a(v=vs.110).aspx

В той же 1С СтрНайти появилась совсем недавно. Конечно все можно написать самому, только зачем когда есть куча готовых библиотек?
75 NorthWind
 
31.05.16
10:40
(74) ну вообще тема, скорее всего, в перспективе нужная. Все больше систем, которые требуют адреса в объектах, и довольно много систем, где адреса лежат в виде строк. Думаю, что тема автоматизированной перегонки строковых адресов в кладровские будет востребована еще ближайшие лет много.
76 Serginio1
 
31.05.16
10:52
(75) Согласен, но эту проблему нужно решать правил написания и применять различные механизмы нечеткого поиска.
77 est2004_1
 
31.05.16
10:56
(74) и как Split будет работать на линуксе ?
78 Serginio1
 
31.05.16
10:57
79 Serginio1
 
31.05.16
10:58
Сейчас разбираюсь с С++ и напишу в скором времени.
80 Злопчинский
 
31.05.16
14:34
(68) похрен что больше работает, выхлопа от этого мало. Один экскаватор зароет тучу пипла с совочками...
81 Pistol
 
31.05.16
14:43
(76) Иииии? На Split и Regex выдохся?
82 Злопчинский
 
31.05.16
14:55
народ вроде нарыл что внутри снеговика регекспы зашиты и сумел вроди достучаться до этой функции - где-то на ИС есть
83 Serginio1
 
31.05.16
16:43
(80) Кому? ЗП C# программистов хорошие особенно на аутсорсер.
Так у меня и экскаватор и ВОЛШЕБНЫй совочек.

Ты совочек то попробовал?
(82) Ну да нужно недра рыть. На самом деле можно раштрять и Regex и Linq с помощью динамической компиляцией
Динамическая компиляция для использования .Net событий в 1С
84 Serginio1
 
31.05.16
16:46
(81) Так реши эту задачу. У меня есть парсинг таких строк в том числе и с Regex. Конкретная задача конкретное решение.
Нужно иметь набор правил составления адресной строки.
85 Злопчинский
 
31.05.16
16:55
(83) нахрен априсетгивать сторонне, если это есть унутре? - только если сторонее решит критичные по быстродействию участки
86 Serginio1
 
31.05.16
17:00
(85) Если будет внутреннее ты будешь его использовать?
Я же тебе показал то, чего нет в стандартных в том числе и комовских
сокеты так и не попробовал?
87 Serginio1
 
09.06.16
16:30
(56) Прошло 2 недели. Не попробовал?
88 Pistol
 
09.06.16
16:40
(87) "Что вы зовете Меня: Господи! Господи! – и не делаете того, что Я говорю?" (Луки 6:46).

=)
AdBlock убивает бесплатный контент. 1Сергей