Вход | Регистрация

  1  2  3  4   

.Net Core, обмен с 1C по TCP/IP между различными устройствами

.Net Core, обмен с 1C по TCP/IP между различными устройствами
Я
   Serginio1
 
28.09.16 - 12:10
Выложил статьи
http://catalog.mista.ru/public/551698/
https://habrahabr.ru/post/311128/
Примеры можно скачать здесь https://yadi.sk/d/jRSHEA19svgrn

Решил написать кроссплатформенное решение из своего опыта 8 летней давности для обмена данными по TCP/IP между ТСД на Win CE и 1С еще 7-ки. Конечно, с 1С можно обмениваться через Web и HTTP-сервисы, но есть задачи, где нужно взаимодействие с оператором для выбора данных, брать данные, подготовленные на клиенте, печать на мобильный принтер.

    Основные проблемы связаны с сетями с плохим соединением на складах. Поэтому, нужно было уменьшить трафик за счет сжатия данных. Так, при работе в терминальных сессиях были проблемы с проброской портов в медленных сетях — Тормозит печать чека на фискальный регистратор через RDP.

    Также были проблемы при считывании двумерного штрихкода. Медленная печать с терминального сервера. Для решения этих проблем на машине клиента устанавливалась локальная 1С, которая работала как клиент и сервер. Данные со сканеров отправлялись на терминальный сервер и там обрабатывались. Для печати на фискальный регистратор отправлялись данные с сервера по TCP/IP, и с локальной 1С печатался чек. При печати этикеток с сервера оправлялись данные, на основании которых на локальной 1С формировался документ и отправлялся на печать.

    Кроме того, под многое оборудование для Linux нет драйверов. Можно, используя виртуализацию, держать Linux и Windows на одной машине, на Windows считывать данные и обмениваться с Linux по TCP/IP.

    Сейчас много у кого есть ТСД под WinCe, WinMo (недавно предлагали работу по настройке обмена на них). Кроме того, можно использовать ТСД на других осях, используя UWP и Xamarin.

    Кроме того, можно обмениваться сообщениями между клиентами 1С, наподобие чата.
   В большом .Net я часто использую обмен по TCp/IP
http://catalog.mista.ru/public/238584/
http://catalog.mista.ru/public/525806/
 
 
   Garykom
 
201 - 30.09.16 - 10:59
(200) Оно на С++ ...
   Кирпич
 
202 - 30.09.16 - 11:00
(201) да там пополам
   Кирпич
 
203 - 30.09.16 - 11:02
(199)"когда его на .Net Core переведут?" нахрена всё куда то переводить, если оно и так прекрасно работает
   Gary417
 
204 - 30.09.16 - 11:04
(199) если появится референсная версия от создателя стандарта, то умрёт, т.к. нафига оно надо. ситуация в яве с OpenJDK исключение
   Gary417
 
205 - 30.09.16 - 11:04
(199) много проектов на asp существует, десктопные приложения вымирают потихоньку
   Кирпич
 
206 - 30.09.16 - 11:05
будет всё как обычно. лет через 10 будет NET Core 4.0 и все будут на нём царапать. Остальное будет параллельно существовать.
   Gary417
 
207 - 30.09.16 - 11:06
раньше моно был нужен чтобы оно под линухом работало. а теперь то зачем?
   Serginio1
 
208 - 30.09.16 - 11:08
(199) Самый цитируемый это Stack Overflow
(205) Не вымирают. Просто их доля сокращается. Поэтому и .Net Core как раз и направлена на мобильный контент, Облака итд. То, что сейчас приносит прибыль.

Тот же C# сейчас один из мощнейших языков, особенно при сравнении ObjectivC и Java для андроид.
   Кирпич
 
209 - 30.09.16 - 11:09
(207) теперь он работает на Android
   Serginio1
 
210 - 30.09.16 - 11:10
(209) Кирпич МОНО MS купила вместе с xamarin. И дальнейшее развитие это NetStandart 2, .Net Native
 
 Рекламное место пустует
   Кирпич
 
211 - 30.09.16 - 11:16
(210) ну как бы и пофигу чем там кончится. NET тем и хорош, что MONOписуально где писать на C#, в моно или не в моно. Я так понимаю, что в NET Core стандартные библиотеки такие же как и в .NET будут? Или я ошибаюсь?
   Serginio1
 
212 - 30.09.16 - 11:28
(211) Почитай статью https://blogs.msdn.microsoft.com/dotnet/2016/09/26/introducing-net-standard/

Там все расписано.
Вкратце. Многие стандартные классы из mscorlib.dll раскиданы по разным библиотекам. Много нужно подгружать через NuGet.
NetStandard 2 будет приближен к взрослому .Net.
Почитай хоть в переводчике Googl. Там все хорошо расписано.

В любом случае .Net Core это будущее, особенно учитывая .Net Native
   Кирпич
 
213 - 30.09.16 - 11:53
(212) "В любом случае .Net Core это будущее" будущее это хорошо, но пока для меня есть единственный способ делать быстро кроссплатформенное - это тридолбаный паскаль :))) в виде Lazarus. Остальное долго и "там работает, тут не работает"
Летом запилил приложение типа маленького автокада, в котором юзер рисует фигуры всякие поверх картинки и они потом печатаются с данными из 1С. Работало на винде и линуксе без проблем. На маке чота не стало, но и хрен с ним.
Так что Mono здохнет или NET Core не так уж и важно, а вот если сдохнет Lazarus, придется реально работать в три раза больше :)
   Garykom
 
214 - 30.09.16 - 12:04
(213) лазарус весчь, но сильно не хватает пакетной системы или некоего менеджера с онлайн хранилищем
   Loky9
 
215 - 30.09.16 - 12:29
Лазарус выручит разве что при программировании мышкой и то ему ещё придётся с Qt потягаться. В быстрой кроссразработке питон уделывает всё.
   Кирпич
 
216 - 30.09.16 - 12:29
(214) да фигня. всё на git лежит. библиотек пишут для него мало - вот проблема. но и того что есть, мне лично пока хватает.
   Кирпич
 
217 - 30.09.16 - 12:32
(216) GUI на питоне задолбаешься рисовать, а в Lazarus тяп-ляп, подправил и готово.
   Loky9
 
218 - 30.09.16 - 12:33
(217) В Qt-дизайнере всё нормально рисуется.
   Serginio1
 
219 - 30.09.16 - 12:35
(213) Mono не сдохнет. Он плавно перенесется на .Net Core.
Xamarin развивается достаточно быстро. В том числе и Xamarin.Forms. Сейчас как раз сам изучаю.
   Torquader
 
220 - 30.09.16 - 12:35
Вы вот спорите о технологиях, и каждый отстаивает свою версию.
Но, скоро появятся машинные трансляторы, которые код с одного языка или библиотеки прекрасно переводят на другой, и все ваши вопросы и споры отпадут за ненадобностью.
   Кирпич
 
221 - 30.09.16 - 12:35
(218) да эта возня... питон поставь Qt поставь. ярлычки, хренучки.
   Кирпич
 
222 - 30.09.16 - 12:36
(220) ага. роботы уже бороздят просторы вселенной
   Garykom
 
223 - 30.09.16 - 12:39
(220) Угу и гуи переведут... сам такое пытаюсь сделать но очень тяжко идет ибо логика/технология работы совсем иная
   Loky9
 
224 - 30.09.16 - 12:43
(221) Да ну... Единожды пакуется всё нужное в архив и всё. А ещё есть fabric.
   Serginio1
 
225 - 30.09.16 - 12:43
(220) Для того, что бы что то перевести, надо это что то написать. А вот писать сейчас удобно на C#.
Не все переводится оптимально в машинный код. Поэтому в .Net есть направление Native которое компилируется используя компилятор от C++.
А Гуи это отдельная тема, так как для каждой оси куча прибамбасов. И кроссплатформенный Гуи сильно урезан от всех возможностей оси.
   Serginio1
 
226 - 30.09.16 - 12:44
(220) На самом деле не отстаивает, а делится своим опытом и знаниями.
   trdm
 
227 - 30.09.16 - 12:47
(218) > В Qt-дизайнере всё нормально рисуется.
Это если въедешь в систему лайотов и политику размеров.
   sh8ce
 
228 - 30.09.16 - 12:49
(225) Всем удобно писать на разных языках. Иначе бы их не было
   Кирпич
 
229 - 30.09.16 - 12:49
(220) ты видел какой код Serginio1 строчит на руслише? :) никакой робот не сможет понять чего там понаписано.
   Mauser
 
230 - 30.09.16 - 12:57
(182)(183)(192) Господи, какая наивность. 1964 год рождения...

Если хабр — развлекательный ресурс, то зачем, зачем ты туда пишешь?
Многие, да...
   Кирпич
 
231 - 30.09.16 - 13:07
(224) а есть пример какого нибудь приложения на QT и питоне? я бы глянул. чота подозреваю, что тормознутое уг получится. так то я питон уважаю.
   Garykom
 
232 - 30.09.16 - 13:15
(231) https://ru.wikipedia.org/wiki/Deluge юзаю но там не Qt а GTK
   Кирпич
 
233 - 30.09.16 - 13:33
(232) ну вроде ничо так. некрасиво, но шустро. дохрена файлов, но работает :)
 
 
   Gary417
 
234 - 30.09.16 - 13:45
давайте для разнообразия
https://ru.wikipedia.org/wiki/QupZilla
прототип на питоне, в итоге плюсы, "Какжежтак"?
   Кирпич
 
235 - 30.09.16 - 13:54
На эти Qt дизайнеры после VS и Delphi без слёз трудно смотреть. Последний раз смотрел на них лет 5 назад. Ничего не поменялось. Ну их...
   Кирпич
 
236 - 30.09.16 - 13:54
(234) потому что тормоза
   Loky9
 
237 - 30.09.16 - 13:57
(227) Если нужен адаптивный дизайн с интернационализацией и поддержкой стилей придётся въезжать. WPF тоже не мёд.
(231) http://orange.biolab.si/download/windows/
https://sourceforge.net/projects/pythoncad/
   Loky9
 
238 - 30.09.16 - 13:58
(234) Так потому что изначально не знали зачем им там питон.
   Gary417
 
239 - 30.09.16 - 13:58
(238) потому что блин помешались на этом питоне помоему
   Кирпич
 
240 - 30.09.16 - 13:59
(237) щас заценим
   Loky9
 
241 - 30.09.16 - 14:03
(239) Он прошел проверку временем. https://www.google.ru/trends/explore?date=all&q=python
Скоро браузеры на расте будут ;)
   Loky9
 
242 - 30.09.16 - 14:06
Вообще, учитывая что питон - язык прототипирования в том числе, всё нормально и становится на свои места.
   Gary417
 
243 - 30.09.16 - 14:08
(242) ога, только если сказать это в современном ИТ сообществе сразу закидают, "патамушта питон самый лучший язык!! он всех победит"
   Loky9
 
244 - 30.09.16 - 14:11
(243) Если производительностью можно пренебречь, так оно и есть.
   Gary417
 
245 - 30.09.16 - 14:13
(244) чем обоснована самалучшесть? чем питон _принципиально_ отличается от 100500 языков?
   Loky9
 
246 - 30.09.16 - 14:15
(245) Лучшесть определяется не принципиальными отличиями. Он только чуть-чуть лучше второго хорошего языка)
   Serginio1
 
247 - 30.09.16 - 14:16
(228) Удобно потому, что нет альтернативы. При сравнении C#,Objective-C, Java для андроид. Первый выигрывает объективно. Другое дело, что Xamarin только завоевывает рынок.
(230) Да я молодой и наивный
   Gary417
 
248 - 30.09.16 - 14:20
(246) какой второй хороший?
   Loky9
 
249 - 30.09.16 - 14:23
(248) Лисп) Хоть я его толком не знаю.
 
 Рекламное место пустует
   Gary417
 
250 - 30.09.16 - 14:25
(249) а как можно делать вывод о лучшести если не знаете? :)

Религиозные причины не рассматриваем :)
   Loky9
 
251 - 30.09.16 - 14:39
(250) Ну, я же не 100% серьёзно говорю о лучшести питона!
Его код лучше других выражает реализуемый алгоритм, без отвлечения внимания на второстепенные детали. Это способствует производительности труда. Для меня это главный плюс.
   Garykom
 
252 - 30.09.16 - 14:50
(251) Попробуйте и поймете что производительность труда даже на языке 1С или basic'е выше )) почему то
   Loky9
 
253 - 30.09.16 - 14:52
(252) Пробовали, не поняли.
   Gary417
 
254 - 30.09.16 - 14:55
(251) <Его код лучше других выражает реализуемый алгоритм>

Это вы про идиотские отступы когда вместо пробела таб нажмёшь или ентер не в том месте и ничерта не работает?
==
уже давным давно все IDE текст программы форматируют
   Loky9
 
255 - 30.09.16 - 14:55
(252) Поиск наибольшей общей подстроки на питоне:

def long_substr(data):
    substr = ''
    if len(data) > 1 and len(data[0]) > 0:
        for i in range(len(data[0])):
            for j in range(len(data[0])-i+1):
                if j > len(substr) and all(data[0][i:i+j] in x for x in data):
                    substr = data[0][i:i+j]
    return substr

print(long_substr(['hello',
                   'I prefer Jelly Belly beans.',
                   'When hell freezes over!']))

Запишите то же самое на бейсике, или 1С.
   Loky9
 
256 - 30.09.16 - 14:56
(254) Так вы табы с ентерами в IDE и жмите, а не в блокноте.
   Gary417
 
257 - 30.09.16 - 14:57
(256) в 21 веке код писать в блокноте это мазохизм
   Loky9
 
258 - 30.09.16 - 14:58
(257) Потому в блокноте на питоне пишут только мазохисты. Потом ещё и опытом своим в интернетах делятся.
   Gary417
 
259 - 30.09.16 - 14:58
(255) это вы так полюбили питон за то что в нём встроенная ф-ция all?
   Gary417
 
260 - 30.09.16 - 14:59
(258) а тогда вопрос, нафига железно прибитая структура форматирования в языке, когда эту структуру рисует за программиста IDE?

Сейчас это в питоне выглядит только как генератор тупых ошибок
   Loky9
 
261 - 30.09.16 - 15:02
(259) Нет
(260) Она не железно прибитая. Никаких ошибок связанных с отступами никогда не получал.
   Gary417
 
262 - 30.09.16 - 15:04
(261) если половину программы писать с пробелами, а половину с табами, ошибок не будет?
   Gary417
 
263 - 30.09.16 - 15:05
(261) А чем тогда этот пример (255) не реализуется в другом языке? он буквально дословно одинаков везде кроме all и немного другим обращением к массиву
   Loky9
 
264 - 30.09.16 - 15:07
(262) Будет. Только IDE не даст до них дойти.
(263) Именно этот довольно легко реализуется, но всё же будет потолще.
   Serginio1
 
265 - 30.09.16 - 15:08
(255) На Linq будет даже красивее.
   Loky9
 
266 - 30.09.16 - 15:09
(265) Напишите.
   Gary417
 
267 - 30.09.16 - 15:13
(264) так это просто частный случай, не удивлюсь что есть язык где эта операция вообще одной строчкой выполняется, однако это ни о чём не говорит.

<Будет. Только IDE не даст до них дойти. >
так в чём тогда плюс питона то? Если IDE во всех языках предотвращает логические ошибки и расставляет красивое форматирование чтобы видеть структуру
   Serginio1
 
268 - 30.09.16 - 15:15
(266) Лень. Просто на Linq я не каждый день пишу, нужно тратить на то, что бы вспомнить все конструкции. А его у меня сейчас нет.
Но решение таких задач полно в интернете.
   Loky9
 
269 - 30.09.16 - 15:16
(267) "так в чём тогда плюс питона то? Если IDE во всех языках предотвращает логические ошибки и расставляет красивое форматирование чтобы видеть структуру"
В синтаксисе, полиморфизме, рефлексии, экосистеме и т.д.
   Garykom
 
270 - 30.09.16 - 15:21
(255)
Функция НаибольшаяОбщаяПодстрока(Строка1, Строка2)
    Результат = "";    
    Для i = 1 По СтрДлина(Строка1) Цикл
        Рез = Рез + Сред(Строка1, i, 1);
        Если СтрНайти(Строка2, Рез)>0 Тогда
            Если СтрДлина(Рез)>СтрДлина(Результат) Тогда
                Результат = Рез;
            КонецЕсли;
        Иначе
            Рез = "";
        КонецЕсли;
    КонецЦикла;
    Возврат Результат;
КонецФункции


   Gary417
 
271 - 30.09.16 - 15:21
(269) экосистема в других языках то понасыщенней будет
синтаксис - на любителя (я понял что я не любитель)

полиморфизм...что под этим подразумевается?

Рефлексии и в других языках полно
   Garykom
 
272 - 30.09.16 - 15:22
(270)+ Написал с 0 за 5 минут а Вы?
   Loky9
 
273 - 30.09.16 - 15:24
(270) Там было для произвольного количества строк.
   Loky9
 
274 - 30.09.16 - 15:27
(271) Да куда уж насыщенней.
Под полиморфизмом подразумеваю возможность использовать одну функцию для широкого спектра классов.
   Кирпич
 
275 - 30.09.16 - 15:27
(260) там отступы не только для форматирования, но и чтобы меньше писать. чтобы не было операторных скобок begin end или {}
   Кирпич
 
276 - 30.09.16 - 15:30
питон он собственно и задуман чтобы меньше писать
   Кирпич
 
277 - 30.09.16 - 15:32
ну и чтобы в глазах меньше рябило
   Serginio1
 
278 - 30.09.16 - 15:36
(276) Писть может и меньше, а вот без IntelliSense не ахти и быстрее
   Loky9
 
279 - 30.09.16 - 15:39
(278) Что вы там такое интеллисенсом делаете? Автокомплит есть, если что.
   Кирпич
 
280 - 30.09.16 - 15:44
(278) ну да. просто есть люди, которые печатают как разговаривают и которым нужно быстро наваять скрипт. кто ж знал, что на этом питоне будут целые приложения писать и здоровенные сайты.
   Serginio1
 
281 - 30.09.16 - 15:47
(279) То есть Питон стал типизированным языком?
   Loky9
 
282 - 30.09.16 - 15:48
(281) Питон - язык со строгой динамической типизацией. То есть он им и был.
   Serginio1
 
283 - 30.09.16 - 15:52
(282) Тогда откуда возьмется подсказка о методах и свойсвах класса? Проблема в 1С кстати во многом, что нет возможности указать тип в параметрах и функции. А вот популярность TypeScript как раз в его типизации. Меньше ошибок, большая скорость набора
   Loky9
 
284 - 30.09.16 - 16:03
(283) Из описания класса?
   Loky9
 
285 - 30.09.16 - 16:07
Когда класс определить невозможно, атрибуты хинтятся из уже вводившихся в данной области видимости.
   Serginio1
 
286 - 30.09.16 - 16:15
(284) Так где ты возьмешь описание класса, если типизация динамическая. В 1С тоже есть автокомплит, но вот параметры и результат функции не типизирован
   Loky9
 
287 - 30.09.16 - 16:16
(286) Там же где они берутся в динамиках и генериках.
   Serginio1
 
288 - 30.09.16 - 16:19
(287) В динамиках как раз ничего не берется. Если конечно ты приведение типа не сделаешь.
В Дженериках там либо вывод типа по параметрам, либо нужно указывать тип.
   Serginio1
 
289 - 30.09.16 - 16:20
(288) Но у ExpandoObject или DynamicObject типы не известны
   trdm
 
290 - 30.09.16 - 16:27
https://www.opennet.ru/opennews/art.shtml?num=45247
Анализатор PVS-Studio помог выявить 10000 ошибок в различных открытых проектах.
....
Качество различных открытых проектов сильно отличается. Например, в недавних проверках проявил себя пакет NUnit, в котором удалось найти всего одну ошибку, порадовал высоким качеством кода и отладчик GDB.

С другой стороны, при проверке Mono были выявлены сотни ошибок и возникли проблемы со сборкой.
   trdm
 
291 - 30.09.16 - 16:31
http://www.viva64.com/ru/b/0431/
Ищем ошибки в Mono: сотни их!

static bool AreEqual (VisualStyleElement value1,
                      VisualStyleElement value2)
{
  return
    value1.ClassName == value1.ClassName &&// <=

    value1.Part == value2.Part &&
    value1.State == value2.State;
}

Приятного как коворится юзания :)))
   trdm
 
292 - 30.09.16 - 16:32
button_pressed_highlight = use_system_colors ?
                             Color.FromArgb (150, 179, 225) : 
                             Color.FromArgb (150, 179, 225);
   trdm
 
293 - 30.09.16 - 16:37
Что-бы не говорили, какой дотнет в усмертть кросплатформеный...
Сотни ошибок - это глюкавое ведро...
   Garykom
 
294 - 30.09.16 - 16:37
(291) Хорошая бага не всегда проявляющаяся кста ну забыли 1 на 2 исправить, бывает
   Garykom
 
295 - 30.09.16 - 16:38
(293) Тя плафтормы 1С не удивляют?
   Serginio1
 
296 - 30.09.16 - 16:50
(293) Ты сравнивай .Net Core. Mono уже считай умер. С NetStandart 2 все перейдут на .Net Core.
   Garykom
 
297 - 30.09.16 - 16:54
(296) "Все" это кто? Полтора разраба корпоративных поделок? Которые не на java задумали писать?
   trdm
 
298 - 30.09.16 - 17:03
(296) не, даром не надо.
   Serginio1
 
299 - 30.09.16 - 17:34
(297) На самом деле их много. Как и на Asp.Net Core
   Serginio1
 
300 - 30.09.16 - 17:43
Можно посмотреть по активности на http://stackoverflow.com/questions/tagged/asp.net-core-mvc
  1  2  3  4   

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