Android Java и NativAPI C++ внешняя компонента для широковещательных сообщений (отправка и прием). Подключаем сканер ШК и клавиатуру к "1С мобильное приложение"

Публикация № 1224310

Разработка - Разработка внешних компонент

Подключаем сканер ШК и клавиатуру к "1С мобильное приложение", на терминале сбора данных "ATOL Smart.Lite android 7.0". Работаем с буфером обмена. В архиве к теме; 1. исходник компоненты (папка package готовый zip); 2. исходник "AccessibilityService" для перехвата клавиатуры (папка package готовый apk); 3. cf - тестовая конфигурация

Начнем с описания функционала:

// Описание: Функция создает класс Broadcast
// Параметры:
//Обязательные.
//	Фильтр- строка. Фильтр входящих или исходящих сообщений.
//Не обязательные.
//  Представление - строка. если заполнено тогда в процедуре ВнешнееСобытие(Источник, Событие, Данные) встанет в событие = Представление  //                                                                        иначе  Событие = Фильтр;
//Возвращает указатель на класс тип строка
Указатель = Компонента.CreateBroadcast(Фильтр, Представление)

// Описание:  Процедура добавляет расширения для сообщения Broadcast
// Параметры:
//  обязательные.
//	Указатель- строка. Указатель на класс Broadcast созданный функцией CreateBroadcast;
//  Расширение- строка. Имя расширения сообщения; 
//  Значение - строка,число,булево,число с точкой . Для приема сообщений типизирует значение расширения и является значение по умолчанию если в раширении нет или не тот тип данных. Для отправки сообщений является значением расширения и типизирует его.
// Не обязательные.
//  Представление - строка. если заполнено тогда в процедуре ВнешнееСобытие(Источник, Событие, Данные) Данные это JSONСтрока где ключом является либо имя расширения либо его представлением.
Компонента.AddStringExtra(Указатель, Расширение, Значение, Представление)

// Описание: Процедура запускает процесс перехвата сообщений и отправки во "ВнешнееСобытие(Источник, Событие, Данные) "
// Параметры:
//  обязательные.
// Указатель- строка. Указатель на класс Broadcast созданный функцией CreateBroadcast;
Компонента.Listen(Указатель)

// Описание: Процедура отправляет Broadcast  сообщение
// Параметры:
// обязательные.
// Указатель- строка. Указатель на класс Broadcast созданный функцией CreateBroadcast;
Компонента.Send(Указатель)	

// Описание: Процедура удаляет класс Broadcast;
// Параметры:
// не обязательные.
// Указатель- строка. Указатель на класс Broadcast созданный функцией CreateBroadcast;
// если не заполнен удаляются все созданные классыBroadcast
Компонента.DeleteBroadcastEvent(Указатель);


// Описание: Процедура получает данные настройки класса Broadcast;
// Параметры:
// обязательные.
// Указатель- строка. Указатель на класс Broadcast созданный функцией CreateBroadcast;
// JSONСтрока - строка. данные в JSON.
JSONСтрока = Компонента.GetBroadcastInfo(Указатель)

// Описание: Процедура создает ВнешнееСобытие
// Параметры:
// обязательные.
// Текст - строка. 
// результат выполнения ВнешнееСобытие("MALutilities", "EchoExternalEvent", Текст)
Компонента.EchoExternalEvent(Текст); 

// Описание:Положить текст в буфер 
Компонента.CopyToClipboard(Текст);

// Описание:Получить текст из буфера 
Текст = Компонента.PasteFromClipboard();

// Описание:тост - всплывающее сообщение с текстом.
Компонента.Toast(Текст)

// Описание: Количество созданных классов Broadcast 
Число = Компонента.CountBroadcastEvent;

// Описание: Данные об устройстве
//DeviceInfo	"{"RELEASE":"7.0","SDK":24,"BOARD":"ATOL_Smart.Lite","BOOTLOADER":"unknown","BRAND":"ATOL","DEVICE":"ATOL_Smart.Lite","DISPLAY":"B0881_C1_ATOL_V1.1.2_20190927","FINGERPRINT":"ATOL\/full_rlk6580_we_c_n\/ATOL_Smart.Lite:7.0\/NRD90M\/1569593541:user\/release-keys","HARDWARE":"mt6580","HOST":"BuildServer","ID":"NRD90M","MANUFACTURER":"ATOL","MODEL":"ATOL Smart.Lite","PRODUCT":"ATOL_Smart.Lite","RADIO_VERSION":"","TAGS":"release-keys","TIME":1569593514000,"TYPE":"user","USER":"Android13","AddIn1cInfo":{"JTHIS_PTR":"ru.mal.malutilities.DeviceClass@52963cd","JACT_PTR":"com.e1c.mobile.App@3f1b108","CPP_PTR":2382015200,"REVISIOV":109,"LOCAL_PACKEGE_NAME":"com.e1c.mobile"}}"
JSONСтрока = Компонента.DeviceInfo;

// Описание:отладка можно посмотреть версию
JSONСтрока = Компонента.InfoString;

Приступим к тестированию.

На чем я тестировал: ТСД "ATOL Smart.Lite android 7.0". Мобильное приложение 1с 8.3.15.62. IIS

1. Подключение стандартное ниже на скрине (не делал проверку при подключении.).

Важно:

Во время настройки Web-публикации следует провести следующее действие. В настройках http-сервера необходимо добавить типы MIME для следующих расширений:

  • .so
  • .apk

Тип MIME: application/octet-stream

 

2. Сделал кнопку для вкл/выкл описали события. (не судите за логику, она не важна главное это тестирования как можно большего функционала);

Код:


&НаКлиенте
Процедура Включить(Команда)
	
	Если Не глНативКомпонента.CountBroadcastEvent Тогда
		//Тост, всплывающее сообщение. 1 параметр текст сообщение. второй параметр: долгое - истина или короткое - ложь
		глНативКомпонента.Toast("Начинаем!", Ложь);
		глНативКомпонента.CopyToClipboard("Время открытия: " + ТекущаяДата());

		//Вызывает ВнешнееСобытие("MALutilities","EchoExternalEvent","Проверка");
		глНативКомпонента.EchoExternalEvent("Проверка"); 
		
		
	Иначе 
		// CountBroadcastEvent - количество Broadcast
		Доочистки = глНативКомпонента.CountBroadcastEvent;
		// Очищает все Broadcast, если передать параметр то удалит только этот. пр. DeleteBroadcastEvent(ЭвентУказатель);
		глНативКомпонента.DeleteBroadcastEvent(); 
		ТекстТоста = "Очистка: " + Доочистки + " : " + глНативКомпонента.CountBroadcastEvent
					+ " >> " + глНативКомпонента.PasteFromClipboard();
		глНативКомпонента.Toast(ТекстТоста, Ложь);

	КонецЕсли;	
	
КонецПроцедуры

&НаКлиенте
Процедура ВнешнееСобытие(Источник, Событие, Данные)
	
	Если Источник = "MALutilities" Тогда
		// получили эхо от функции   EchoExternalEvent("Проверка"); 
		Если (Данные = "Проверка" И Событие = "EchoExternalEvent") Тогда 
			
			// Создаем BROADCAST для считывателя штрих кода
			ЭвентУказатель = глНативКомпонента.CreateBroadcast("com.xcheng.scanner.action.BARCODE_DECODING_BROADCAST", "ЭтоШтрихкод");
			глНативКомпонента.AddStringExtra(ЭвентУказатель,"EXTRA_BARCODE_DECODING_DATA","","Штрихкод");
			глНативКомпонента.AddStringExtra(ЭвентУказатель,"EXTRA_BARCODE_DECODING_SYMBOLE","");
			глНативКомпонента.Listen(ЭвентУказатель);
			// посмотрим данные BROADCAST для считывателя штрих кода
			ДанныеКласса = ОбщийМодульКлиент.СоздатьСтруктуруИзAndroid(глНативКомпонента.GetBroadcastInfo(ЭвентУказатель));
			
			// Создаем BROADCAST для считывателя клавиш событие выдает AccessibilityService
			ЭвентУказатель = глНативКомпонента.CreateBroadcast("ru.mal.malutilities.onKeyEvent.1");
			глНативКомпонента.AddStringExtra(ЭвентУказатель,"Code",-256,"Код");
			глНативКомпонента.AddStringExtra(ЭвентУказатель,"Action",-256);
			глНативКомпонента.AddStringExtra(ЭвентУказатель,"Flags",-256);
			глНативКомпонента.Listen(ЭвентУказатель);
			
			// Создаем BROADCAST для AccessibilityService проверка на работу
			ЭвентУказатель = глНативКомпонента.CreateBroadcast("ru.mal.malutilities.CONFIG_SERVICE.1.ECHO", "ТестСервер");
			глНативКомпонента.AddStringExtra(ЭвентУказатель,"TEXT","");
			глНативКомпонента.AddStringExtra(ЭвентУказатель,"NAME","");
			глНативКомпонента.Listen(ЭвентУказатель);
			
			//выдаем BROADCAST для AccessibilityService проверка на работу
			ЭвентУказатель = глНативКомпонента.CreateBroadcast("ru.mal.accessibilityservice.CONFIG_SERVICE.1");
			глНативКомпонента.AddStringExtra(ЭвентУказатель,"ECHO","Сервер работает");
			глНативКомпонента.Send(ЭвентУказатель);
			//Удаляем выданый BROADCAST для AccessibilityService
			глНативКомпонента.DeleteBroadcastEvent(ЭвентУказатель); 
		КонецЕсли;		
		
		//Получили ответ от AccessibilityService значит работает
		Если (Событие = "ТестСервер") И ОбщийМодульКлиент.СоздатьСтруктуруИзAndroid(Данные).TEXT = "Сервер работает" Тогда 

			// Создаем BROADCAST для AccessibilityService настраеваем его
			СтруктураДанных = ОбщийМодульКлиент.СоздатьСтруктуруИзAndroid(Данные);
			ЭвентУказатель = глНативКомпонента.CreateBroadcast("ru.mal.accessibilityservice.CONFIG_SERVICE.1", "ТестСервер");
			//
			глНативКомпонента.AddStringExtra(ЭвентУказатель, "ACTION_TYPE", 0); 
			//выдаем 2 BROADCAST для AccessibilityService на настройку и удаляем его можно в одном пакете
			глНативКомпонента.Send(ЭвентУказатель);
			глНативКомпонента.AddStringExtra(ЭвентУказатель, "FLAGS", Истина); 
			глНативКомпонента.Send(ЭвентУказатель);   
			глНативКомпонента.DeleteBroadcastEvent(ЭвентУказатель); 
			
		КонецЕсли;	
		//Получили события от клавиатуры или клавиш
		Если (Событие <> "ТестСервер") И (Событие <> "EchoExternalEvent") Тогда 
			
			СтруктураДанных = ОбщийМодульКлиент.СоздатьСтруктуруИзAndroid(Данные);
			ВнСообщения = Данные + Символы.ПС + Событие;
			
		КонецЕсли;	
		
	КонецЕсли;	
	
КонецПроцедуры

3. Посмотрим точки останова.

После выполнения глНативКомпонента.EchoExternalEvent("Проверка") возникает внешнее событие. В котором мы настроим все нужные нам классы и спросим у сервиса работает он или нет.

Сервис отвечает что он работает:

После обработки ответа от сервиса, настроим его:

// какое событие ловим Если  -1 тогда будут приходить данные в Action
//case "ACTION_DOWN":TypeAction = 0; break; Нажали
//case "ACTION_UP":TypeAction = 1; break; Отпустили
//case "ACTION_UP_DOWN":TypeAction = -1; break; Или нажали Или опустили
//1 - По умолчанию настроен сервис
глНативКомпонента.AddStringExtra(ЭвентУказатель, "ACTION_TYPE", 0);  

// нужны ли дополнительные флаги к кнопкам Если не Истина тогда будут приходить данные в Flags
//ложь - По умолчанию настроен сервис
глНативКомпонента.AddStringExtra(ЭвентУказатель, "FLAGS", Истина); 

глНативКомпонента.Send(ЭвентУказатель); 

Теперь посмотрим события от кнопок(создает сервис) и сканера ШК:

Как видно обмен идет в двух направлениях. Теперь остановим все.

 

По коду java и С++  не чего писать не буду(и так столько написано) его много и статья ориентирована на тех кто будет использовать готовый результат. Если что, по коду java и С++, отвечу на вопросы в комментариях. Смотрите в исходниках они есть в архиве.

В Архиве исходники на сервис,  компоненту и сf. В папках package уже готовые файлы. Сервис нужно устанавливать, как apk, а запускать в Настройки-Спец. возможности.

Все исходники написаны под Android Studio 3.6.2. Все, что нужно, само подгрузится. 

P.S. Доработал версию добавил переменную: 

// Описание: (чтение и запись) Если Истина тогда возникает события при изменении данных в буфере обмена.
Булево = Компонента.ClipboardEvent;
Компонента.ClipboardEvent = Булево;

Скачать файлы

Наименование Файл Версия Размер
компонента, сервис, цф и исходники

.zip 11,57Mb
15.04.20
37
.zip 11,57Mb 37 Скачать

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. CyberCerber 639 29.04.20 15:57 Сейчас в теме
Правильно ли я понял, что эта компонента работает универсально для всех броадкастов? Можно взять любой ТСД, отловить событие, узнать его структуру, а дальше уже обрабатывать?
Компонента написана на C++ и Java одновременно? Почему так?
3. SanyMaga 55 30.04.20 15:11 Сейчас в теме
(1) Работает для всех броадкастов(для подключения нужно знать фильтр и структуру(если только события то структура не нужна )). На ТСД должен быть андроид >= 4 версии. На с++ написано все что связано с натив API 1c а на java все что связано с ОС андройд.
4. CyberCerber 639 30.04.20 15:18 Сейчас в теме
(3) Понял, круто, спасибо за инфу
5. sigma17 12 21.05.20 11:10 Сейчас в теме
Как можно узнать фильтр для другого ТСД?
7. SanyMaga 55 22.05.20 05:59 Сейчас в теме
(5)
Даже и не знаю. Наверное в описание к ТСД.

На ТСД "ATOL Smart.Lite android 7.0" в приложении "Barcode Utility" , "Scan Setting" -> "Broadcast setting"
6. SanyMaga 55 22.05.20 05:59 Сейчас в теме
Даже и не знаю. Наверное в описание к ТСД.

На ТСД "ATOL Smart.Lite android 7.0" в приложении "Barcode Utility" , "Scan Setting" -> "Broadcast setting"
8. sigma17 12 22.05.20 10:43 Сейчас в теме
9. Const885 13.06.20 07:57 Сейчас в теме
Пробую разобраться в данной теме , можно ли получить исходники с++
10. SanyMaga 55 15.06.20 05:34 Сейчас в теме
(9) Во вложении архив в нем все исходники. Или смотри здесь https://github.com/ripreal/NativeSleep_1C
11. booblich 30.06.20 11:59 Сейчас в теме
Подскажите, будет ли это работать на "ATOL Smart.pro, android 9.0"?
12. SanyMaga 55 30.06.20 12:14 Сейчас в теме
(11) Почему бы и нет. Должно работать. Не вижу нечего ограничивающего в разрезе Android java sdk
13. booblich 30.06.20 14:43 Сейчас в теме
(12) А если глНативКомпонента.EchoExternalEvent("Проверка"); отрабатывает, внешнее событие отрабатывает, перехват сообщений от сканера ТСД запускается, а внешнего события при сканировании не происходит. В таком случае может быть проблема в чем-то кроме добавленных расширений (AddStringExtra)? На ATOL Smart.Lite все отрабатывает как надо.
14. SanyMaga 55 02.07.20 04:54 Сейчас в теме
(13)
А в настройках сканера включен броадкаст? Если да то попробуйте функцией "Send" отправить самому себе тот броадкаст который в настройках сканера.
При этом Send выдаст сообщение в очередь Android, а затем его перехватит 1с.
// Описание: Процедура отправляет Broadcast  сообщение
// Параметры:
// обязательные.
// Указатель- строка. Указатель на класс Broadcast созданный функцией CreateBroadcast;
Компонента.Send(Указатель)	


примерно так:
ЭвентУказатель = глНативКомпонента.CreateBroadcast("Какойта фильтр", "Тест");
глНативКомпонента.Listen(ЭвентУказатель);
глНативКомпонента.Send(ЭвентУказатель);
15. booblich 06.07.20 14:33 Сейчас в теме
(14)
Так и происходит. То есть 1С перехватило сообщение, которое вызвал Send. Однако от сканера - тишина. Может что-то еще нужно проверить?
18. SanyMaga 55 07.07.20 05:36 Сейчас в теме
(15)
Читая инструкцию по настройки ATOL Smart.pro я НЕ нашёл настройку броадкастов. только клавиатура и буфер обмена.


https://yadi.sk/i/py0RCaw_E8b3QA

Киньте скрин с вашими настройками.

Вот так настраевается в "ATOL Smart.Lite:


https://yadi.sk/i/FSeETyAz9_nGWg

Не важно как вы настроите расширения функцией AddStringExtra(можно вобще не настраивать). Главное это ФИЛЬТР на скрине "Action name".
19. booblich 07.07.20 13:48 Сейчас в теме
(18)
На ТСД есть еще Broadcast intnet (https://yadi.sk/i/D7tF_rmuJgiPUQ). Там в данный момент стоят такие настройки: https://yadi.sk/i/cQP82uYaiBjUIw.
Сейчас настроено так:

ЭвентУказатель = глНативКомпонента.CreateBroadcast("com.hht.scanwedge", "ЭтоШтрихкод");
глНативКомпонента.AddStringExtra(ЭвентУказатель,"com.hht.datawedge.data_string","","Штрихкод");
глНативКомпонента.AddStringExtra(ЭвентУказатель,"com.hht.datawedge.label_type","");

Возможно, просто что-то не так заполнено?
20. SanyMaga 55 08.07.20 13:06 Сейчас в теме
(19)

Компонента вроде правильно настроена.

Попробуйте:
1. Установить "SEND BARCOD DATA" с "Clipbord" в "off"
2. Очистить в намерениях категорию "Intent->Category"

К сожалению нет этого аппарата под рукой .

Попробуйте что то типо токого (первое что нашол не знаю работает или нет): https://play.google.com/store/apps/details?id=com.balda.intenttask&hl=ru - посмотри идут события от него или нет.
16. macrogroup 06.07.20 23:01 Сейчас в теме
Привет железка такая же как у автора.
падает на второй строке глНативКомпонента = Новый("AddIn.rumalutilities.MALutilities");
Похоже не удается подключить компоненту.
Есть идеи как пофиксить?
17. macrogroup 06.07.20 23:07 Сейчас в теме
Тфу блин слетели настройки
Во время настройки Web-публикации следует провести следующее действие. В настройках http-сервера необходимо добавить типы MIME для следующих расширений:

.so
.apk
Тип MIME: application/octet-stream
Теперь все работает спасибо
50. Широкий 689 31.08.20 15:07 Сейчас в теме
(17)
application/octet-stream
можно ли подробнее где это прописывается для апача?
51. SanyMaga 55 31.08.20 16:01 Сейчас в теме
(50)
https://www.google.com/search?client=opera&q=Установка+mime+для+апач&sourceid=opera&ie=UTF­-8&oe=UTF-8

я сам не знаю не навастривал под апач. в соседней ветке настраивали
.
52. Tiger77 69 14.09.20 04:31 Сейчас в теме
Android 5.1, Мобильная Платформа 8_3_17_67 ARM x64, Платформа 1С - 8.3.16.1659, IIS.

На мобильном приложении не загружается компонента. ПодключитьВнешнююКомпоненту всегда возвращает ложь без ошибок

Типы .so и .apk как в (17) прописал - не помогает. Что еще можно попробовать ?
53. SanyMaga 55 14.09.20 09:37 Сейчас в теме
(52)
В мобильной платформе "1С:Предприятие" загрузка архивов внешних компонент в конфигурацию осуществляется в макеты с типом "Внешняя компонента".


https://its.1c.ru/db/metod8dev#content:3221:hdoc:_подготовка_внешних_компонент_для_за

Попробуйте настроить Мимы( .so и .apk) в корне IIS если они у вас на сайт прописаны.
54. Tiger77 69 14.09.20 22:17 Сейчас в теме
(53) с IIS все ок.

Например, компонента http://infostart.ru/public/1230245/ работает отлично

Пробовал понизить версию на 8.3.11, пробовал платформу х32 результат тот же - компонента не грузиться. В логах IIS ошибок нет, загрузка apk и so идет с кодом 200
21. unreal123 31.07.20 13:12 Сейчас в теме
При старте приложения на мобильном устройстве ругается на следующей строке кода
ПодключитьВнешнююКомпоненту("ОбщийМакет.Макет", "rumalutilities", ТипВнешнейКомпоненты.Native);
глНативКомпонента = Новый("AddIn.rumalutilities.MALutilities");

Тип не определен AddIn.rumalutilities.MALutilities
22. SanyMaga 55 08.08.20 17:43 Сейчас в теме
(21)
Смотри выше.

Во время настройки Web-публикации следует провести следующее действие. В настройках http-сервера необходимо добавить типы MIME для следующих расширений:

.so
.apk
Тип MIME: application/octet-stream
23. boss_kuz 90 11.08.20 06:20 Сейчас в теме
Добрый день уважаемы Александр . Подскажите если создать класс :
ЭвентУказатель = глBroadcast.CreateBroadcast("ru.mal.malutilities.onKeyEvent.1");
		глBroadcast.AddStringExtra(ЭвентУказатель,"Code",-256,"Код");
		глBroadcast.AddStringExtra(ЭвентУказатель,"Action",-256);
		глBroadcast.AddStringExtra(ЭвентУказатель,"Flags",-256);
		глBroadcast.Listen(ЭвентУказатель);


то после сканирования штрихкода вызываются два события одно штрихкод ( к примеру 12229309), а потом ru.mal.malutilities.onKeyEvent.1 с данными {"Action":-256,"Flags":8,"Код":119}. Как понять что onKeyEvent не нужно обрабатывать ?
И если такого сделать невозможно, то как заставить что бы всегда (неважно нажата кнопка или отсканирован штрихкод) порядок следования событий был одинаков ?
24. boss_kuz 90 11.08.20 06:57 Сейчас в теме
(23) Вот я идиот, только сейчас догнал что событие ru.mal.malutilities.onKeyEvent.1 возникает при сканировании потому что я НАЖИМАЮ КНОПКУ СКАНЕРА-А-А. И все же если нажать к примеру клавишу Enter событие "Штрихкод" возникает , есть вариант его побороть ?
25. SanyMaga 55 11.08.20 09:02 Сейчас в теме
(24)
Только программно. У меня на ТСД кнопка сканирования отдельная (нет не каких задач кроме сканирования). и ее код я не обрабатываю. Есть вариант поправить сервис, исходники его в архиве. Или переназначить кнопку сканирования в настройках сканера.

Можно при каждом сканировании ШК менять представление например текущая дата или инкремент переменной, и разделять по времени события или по индексу события.

Компонента.AddStringExtra(Указатель, Расширение, Значение, Строка(Индекс )) 
Индекс = Индекс + 1
26. user592473_damien256 14.08.20 23:51 Сейчас в теме
Здравствуйте, Александр! Помогите разобраться. У меня ТСД Lecom, и проблема в том, что он возвращает данные штрихкода в виде массива.
Нашел я к нему исходники тестового приложения, собрал, проверил - работает. Оттуда и взял данные для intent-фильтра.

Естественно, в поле штрихкода возвращается пустая строка, т. к. компонента не обрабатывает массив. Другие параметры (тип ШК, длина - возвращаются корректно). Добавил в BroadcastEvent.java в методе "onReceive" условие и вписал туда код из тестового приложения ("barocode" - не опечатка):
                        for (Map.Entry<String, String> entry : StringExtraList.entrySet())
                        {
                            // ----------------------------------------
                            String Value = "";

                            if (entry.getKey() == "barocode")
                            {
                                byte[] barocode = intent.getByteArrayExtra("barocode");
                                int barocodelen = intent.getIntExtra("length", 0);
                                Value = new String(barocode, 0, barocodelen);
                            }
                            else
                            {
                                Value = intent.getStringExtra(entry.getKey());
                            }
                            // -------------------------------------------

                            //String Value = intent.getStringExtra(entry.getKey());
                            AnsverJson.put(GetNameExt(entry.getKey()),(Value ==  null) ? entry.getValue() : Value);
                        }

Показать

Собрал apk, архив с компонентой, обновил макет в конфигурации. Результат - та же пустая строка в "barocode"... Думаю, может ошибка где - написал просто для проверки:
if (entry.getKey() == "test")
{
     Value = "test msg";
}

В 1С добавил экстра:
глНативКомпонента.AddStringExtra(ЭвентУказатель,"test", "", "Это тест");

все пересобрал, обновил - результат: {"Это тест":"","Тип штрихкода":0,"Длина":13}, не возвращается "test msg"...
Такое впечатление, что компонента где-то закешировалась и при обновлении конфигурации просто работает Ваш вариант, а не то что собрал я. Я что-то упустил или чего-то не знаю? Подскажите, пожалуйста!
35. alexinnnn 21.08.20 17:14 Сейчас в теме
(26) Аналогичная проблема, скорее всего на многих ТСД
barocode похоже байтовый массив, вот пример onReceive из другой компоненты:

public void onReceive(Context context, Intent intent) {
        byte[] barcode = intent.getByteArrayExtra("barocode");
        int lng = intent.getIntExtra("length", 0);
        this.barcodeStr = new String(barcode, 0, lng);
        if (lng > 0) {
            Intent intentFor1C = new Intent("com.google.android.c2dm.intent.RECEIVE");
            intentFor1C.putExtra("text", BCService.EventID);
            intentFor1C.putExtra("title", "1C");
            intentFor1C.putExtra("data", this.barcodeStr);
            if (BCService.BaseName != null || BCService.BaseName != "")  {
                intentFor1C.putExtra("base", BCService.BaseName);
            }
            context.sendBroadcast(intentFor1C);
        }
    }
Показать


компоненты пока не собирал, помогите чтобы работало!
36. alexinnnn 21.08.20 23:53 Сейчас в теме
(26) Иду по вашим стопам, аналогично в android studio переделал компоненту, но в мобильном приложении работает старый код(( Или выдает ошибку "Файл не обнаружен '/data/user/0/com.e1c.mobile.client/files/1C/1cem/........./libru_mal_utilities.so.cfl'. 2(0x00000002)" То так то так, непонятно...
38. alexinnnn 22.08.20 00:17 Сейчас в теме
(26) Ура, победил))
1. Во первых условие if (entry.getKey() == "barocode") когда должно - не выполняется, Когда entry.getKey() это barocode, оно почему-то не равно "barocode"
2. Если убрать условие if (entry.getKey() == "barocode") остальной код полностью рабочий.
3. Чтобы победить кеширование, нужно делать все в правильной последовательности: 1. Удалить базу в мобильном приложении. 2. Обновить компоненту в макете. 3. Переопубликовать/обновить на http сервере. 4. Пересоздать в мобильном, запустить, вуаля работает.
39. user592473_damien256 22.08.20 12:53 Сейчас в теме
(38)
Мистика какая-то... А как тогда переписать условие if (entry.getKey() == "barocode")? Может как-то проверять что возвращается в intent.getByteArrayExtra("barocode")?
47. alexinnnn 24.08.20 17:03 Сейчас в теме
(39)
Нужно просто посмотреть в отладчике значение, возможно оно имеет тип не строка, а когда используешь его как строка, оно автоматом в нее превращается, как обычно это бывает в 1с. Я отладчиком не научился еще работать, не было времени
48. user592473_damien256 25.08.20 09:04 Сейчас в теме
(47)
Я тоже не умею, времени не хватает сейчас андроид осваивать... Придется, видимо)
27. SanyMaga 55 15.08.20 10:04 Сейчас в теме
Да кешируется. Нужно пересоздать(удалить из списка и снова добавить) в "1С мобильное приложение" базу или почистить кеш.
28. user592473_damien256 15.08.20 10:55 Сейчас в теме
(27) Дело в том, что я ТСД сбросил до заводских и все установил заново - результат тот же... Ничего не понимаю... Может с сервисом что-то нужно делать еще? Может в Android-Studio что-то нужно еще (я просто сохранаю проект, потом Buld -> Build APK(s))?
29. SanyMaga 55 15.08.20 19:38 Сейчас в теме
(28)
Сервис только на кнопки.

Может if (entry.getKey() == "barocode") Зависит от регистра букв.
Выложи свой текст BroadcastEvent.java

Или остается только отладка в Android studio.
30. user592473_damien256 15.08.20 21:15 Сейчас в теме
(29)
Проблема какая-то со сборкой, наверное. Уже вообще все закомментировал в обработчике onReceive, собрал apk - события ловятся...
Прикрепил еще архив с проектом TestScan, который для ТСД. Собрал его, только дописал чтобы вместо штрихкода он выводил в текстовое поле список всех Extras (intent.getExtras().toString()). Выдал при считывании EAN-13 такое:
Bundle[{barocode=[B*d074b1c,length=13,aimid=[B*8a5b325,barcodeType=100}]

То есть китайские гении действительно назвали поле "barocode" :)
Прикрепленные файлы:
TestScan.zip
BroadcastEvent.java
31. SanyMaga 55 17.08.20 20:49 Сейчас в теме
(30)
[B*8a5b325 - тип + адрес - тип Byte Адресс 0x000008a5b325

Возможно проблема с кодировкой

Используй конструктор:
String(byte[] bytes, int offset, int length, String charsetName)
Constructs a new String by decoding the specified subarray of bytes using the specified charset.

barcodeStr = new String(barocode, 0, barocodelen,"UTF_16"); // как то так нет под рукой студии.

charsetName - Тип скорей всего это UTF_16 или какойнибуть ISO_8859_1

Проверь реальную длину:
barocode.length()
Символов может быть 13 а байт 13*2 = 26 тогда barocodelen*2
32. SanyMaga 55 21.08.20 09:37 Сейчас в теме
(31)
Нужно проверить для UTF еcли там BOM
33. user592473_damien256 21.08.20 10:14 Сейчас в теме
(32)
Так в их тестовом приложении работает...
Попробую создать с нуля конфигурацию, собрать компоненту, и подключить к ней. Ну не может быть, что собираю один код, а работает другой...
34. SanyMaga 55 21.08.20 10:32 Сейчас в теме
(33)
В их тестовом приложении может быть настроена кодировка по умолчанию UTF -16 (настройка проекта)

Вы в отладке посмотрите в андроид студия запустите мой app.

В модуле AddInNative.cpp найдите код:

//---------------------------------------------------------------------------//
//Отладка java
//---------------------------------------------------------------------------//


jlong CreateEventByJava(JNIEnv* env,jobject jClass, TAddInNative* pObject, int KeyTest)
{
Вызывается при нажатии на кнопку в MainAPP
Там много кода закоментировано . Это я отлаживал непосредственно в App Андроид

И события можно поймать в модуле BroadcastEvent.java и посмотреть что за байты приходят имено в мое АПП
37. alexinnnn 21.08.20 23:54 Сейчас в теме
(27) После удаления/пересоздания возникает вышеприведенная ошибка...
40. AneJIbcuH 28 23.08.20 09:18 Сейчас в теме
Добрый день! ТСД такой же (Смарт лайт), поставил на него сервис "accessibilityservice.apk",
Выполняю:
// Создаем BROADCAST для считывателя клавиш событие выдает AccessibilityService
ЭвентУказатель = глНативКомпонента.CreateBroadcast("ru.mal.malutilities.onKeyEvent.1");
глНативКомпонента.AddStringExtra(ЭвентУказатель,"Code",-256,"Код");
глНативКомпонента.AddStringExtra(ЭвентУказатель,"Action",-256);
глНативКомпонента.AddStringExtra(ЭвентУказатель,"Flags",-256);
глНативКомпонента.Listen(ЭвентУказатель);

но не возникает Внешнее событие при нажатии аппаратных кнопок. При считывании ШК возникает, всё норм.
Что делаю не так?
41. SanyMaga 55 23.08.20 09:48 Сейчас в теме
(40) А вы его запустили (запускать в Настройки-Спец. возможности.)? При запуске сервиса нужно дать разрешения.
42. AneJIbcuH 28 23.08.20 10:01 Сейчас в теме
43. AneJIbcuH 28 23.08.20 11:04 Сейчас в теме
(41) не могли бы ещё пояснить момент. Нажимаешь кнопки на ТСД, получаешь код, например 3 - код 10, 5 - код 12 и тд.
Что из себя данный код представляет? А главный вопрос, если разные ТСД (в том числе и модели), коды будут отличаться?
44. SanyMaga 55 23.08.20 11:12 Сейчас в теме
(43)Просто так закодированы кнопки производителем. Я думаю на разных ТСД будут разные коды клавиш.
45. AneJIbcuH 28 23.08.20 11:52 Сейчас в теме
Компонента здоровская!
А в DeviceInfo нельзя добавить текущий IP адрес wi-fi ? :)
46. SanyMaga 55 23.08.20 20:38 Сейчас в теме
49. AneJIbcuH 28 25.08.20 17:30 Сейчас в теме
(46) Благодарю, всё удалось. И под андроид 4.4 завести получилось.
55. user592473_damien256 29.09.20 14:55 Сейчас в теме
(34)
Победил, переписал onReceive, чтобы возвращал просто строку со штрихкодом. Теперь другая проблема)
В мобильной платформе для разработчиков компонента работает, а в собранном apk - нет, ошибка "Тип не определен AddIn.rumalutilities.MALutilities". Собирал на 8.3.15.62
Куда копать, подскажите, пожалуйста!
56. SanyMaga 55 29.09.20 16:49 Сейчас в теме
57. user592473_damien256 29.09.20 20:33 Сейчас в теме
(56)
Нет, вы не поняли. Все работает (у меня apache) нормально - когда загружена опубликованная конфигурация в мобильную платформу для разработчиков.
Не подключается та же компонента в уже собранном apk, соответственно имеем ошибку "Тип не определен AddIn.rumalutilities.MALutilities" при вызове конструктора
58. SanyMaga 55 30.09.20 10:44 Сейчас в теме
(57)
Я не делал не когда готовый АПК, мне нужна была всегда конфигурация чтоб обновлять ее в процессе работы. Там скорей всего нужно положить в двоичные данные и подключить по другому.
Оставьте свое сообщение

См. также

Загрузка весового товара в весы Масса-К ВПМ-Ф (1С Предприятие, УТ 11.2-11.4 управляемые формы) Промо

Весы Розничная торговля Розничная торговля v8 v8::ОУ v8::УФ УТ10 Розничная и сетевая торговля (FMCG) Россия Абонемент ($m)

Данная обработка загружает весовой товар из базы в весы. Данная обработка тестировалась только на версии УТ 11.2-11.4 (1С Предприятие 8.3) и весах ВПМ-Ф.

2 стартмани

21.07.2016    17940    17    user594264_e.sitnik    4    

Программа расчёта питательной ценности ежедневной диеты по тридцати восьми нутриентам (мобильное приложение 1С для Андроид), APK + исходная конфигурация

Мобильная разработка v8::Mobile Домашние учет и финансы Абонемент ($m)

Мобильное приложение на платформе 1С с исходной конфигурацией. Пример решения задач по интерфейсу и первичному заполнению базы.

5 стартмани

12.10.2020    678    0    ovasiliev    3    

Мобильная платформа. Штрихкоды в Android.

Разработка внешних компонент Мобильная разработка Сканер штрих-кода v8::Mobile Абонемент ($m)

Пример конфигурации, содержащей внешнюю компоненту для мобильной платформы, выводящую изображение штрихкода в интерфейсе мобильного приложения.

3 стартмани

14.09.2020    1095    0    kinan    8    

Инструменты отладки Web-страниц в приложении на устройстве Android

Мобильная разработка WEB v8::Mobile Абонемент ($m)

При разработке сложных интерфейсов на базе HTML часто возникает необходимость отладки стилей CSS и скриптов непосредственно на устройстве. Статья описывает способ отладки web-содержимого приложения мобильной платформы 1С на Андроид устройстве с помощью Chrome Development Tools.

7 стартмани

26.08.2020    1338    2    ingeneerz@gmail.com    2    

Правильные аналоги номенклатуры (кроссы запчастей) для 1С / Управляемые формы Промо

Обработка справочников Оптовая торговля Учет ТМЦ Оптовая торговля Учет ТМЦ v8 v8::УФ 1cv8.cf УУ Абонемент ($m)

По опыту работы с запчастями много раз сталкивался с проблемой организации кроссов в разных 1С - от записи артикулов через запятую в текстовом поле до хранения кроссов в документах. Предлагаю одну из простейших и функциональных на мой взгляд схем "одноуровневого" хранения кроссов.

5 стартмани

29.07.2015    34700    8    taurus__    22    

Мусорная корзина, или удаление помеченных объектов для мобильной платформы

Мобильная разработка Чистка базы v8 v8::Mobile 1cv8.cf Абонемент ($m)

Обработка удаления помеченных объектов для встраивания в Ваши мобильные приложения.

2 стартмани

18.08.2020    1136    2    GAMLET    0    

Расширение "PUSH уведомления для мобильного клиента".

Мобильная разработка v8::Mobile КА1 ERP2 УТ11 1С:CRM Россия Абонемент ($m)

Расширение для отправки PUSH уведомлений в мобильный клиент на Android. Подходит для типовых конфигураций, протестирована на конфигурации КА 2.4.

1 стартмани

04.08.2020    1392    2    romanpolyashov@yandex.ru    0    

Нано HTTP сервер - внешняя компонента для мобильного приложения 1C, на Android

Разработка внешних компонент Мобильная разработка v8 v8::Mobile 1cv8.cf Абонемент ($m)

Нано HTTP сервер на терминале сбора данных "ATOL Smart.Lite android 7.0". Работает только с GET и POST запросами. Аутентификация BASE64. Не поддерживает HTTPS и не передает файлы. В прикрепленном архиве исходники на компоненту (С++ и java для Android Studio 3.6.2), ЦФ - мобильного приложения и тестовая обработка.

1 стартмани

22.06.2020    2363    6    SanyMaga    19    

Загрузка файлов/картинок/изображений/фото номенклатуры PRO Промо

Оптовая торговля Розничная торговля Управленческий учет (прочее) v8 v8::УФ Розница УНФ УТ11 Россия Абонемент ($m)

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

1 стартмани

03.08.2018    24615    111    zannv    39    

Простое мобильное приложение, информирующее об остатках на складах и ценах по штрихкоду, для 1С: УНФ, Розница, УТ 11

Розничная торговля Учет ТМЦ Ценообразование, анализ цен Торговое оборудование Управленческий учет (прочее) Мобильная разработка v8::ОУ v8::Mobile Розница УТ11 УУ Абонемент ($m)

Для различных торговых предприятий(магазинов, супермаркетов, торговых баз и т.п.) крайне необходимо персоналу, быстро уточнять наличие на складе или цену продаваемой номенклатуры. Что может быть проще взять свой смартфон навести камеру, и все выяснить. Но не тут то было, в стандартном функционале 1С Розницы, УНФ, Торговли и т.п., ничего для быстрой обработки штрихкодов нет. На инфостарте ничего нужного, я также не нашел. В итоге пришлось разработать данное решение.

2 стартмани

03.06.2020    2579    11    Romyl01    21    

Перехват сканирования Android Native API

Разработка внешних компонент Мобильная разработка v8::Mobile Абонемент ($m)

Native компонента для перехвата сканирования шк и передачу в мобильную 1С.

1 стартмани

29.04.2020    4349    30    evgeny43    23    

Мобильная платформа. Уникальный идентификатор устройства Android при помощи внешней компоненты. Не IMEI

Разработка внешних компонент Мобильная разработка v8::Mobile Абонемент ($m)

Идентифицируем устройства, на которых установлены копии нашего приложения.

3 стартмани

23.04.2020    2993    2    kinan    9    

Внешняя компонента для работы по Web-socket протоколу x32 x64 Промо

Разработка внешних компонент WEB v8 Абонемент ($m)

Кто когда-нибудь сталкивался с обменом данными по Web-Socket (wss) протоколу из 1С, тому известно, что в платформе отсутствуют данные механизмы (не путать с HTTP запросами и WebServices). Предлагается использовать внешнюю компоненту, написанную по технологии NativeAPI, для подключения и обмена с серверами из 1С-Предприятия, работающими по протоколу Web-Socket.

1 стартмани

30.03.2018    26565    36    Ditron    83    

Мобильная платформа. Шифрование строк в Android при помощи внешней компоненты

Разработка внешних компонент Защита и шифрование v8::Mobile Молдова Абонемент ($m)

Внешняя компонента для мобильной платформы на Android. Шифруем строки.

3 стартмани

15.04.2020    2463    0    kinan    0    

Мобильная платформа. Реакция на внешнее событие в Android при помощи внешней компоненты

Мобильная разработка Разработка внешних компонент v8::Mobile Молдова Абонемент ($m)

Внешняя компонента для мобильной платформы на Android. Пришиваем платформе уши, чтобы лучше слышать.

3 стартмани

06.04.2020    3984    7    kinan    17    

Обработка голосового ввода текста с использованием (intent)

Мобильная разработка v8::Mobile 1cv8.cf Абонемент ($m)

Обработка для голосового ввода текста с использованием дополнительных возможностей ОС Android.

1 стартмани

26.02.2020    2881    1    algabas    7    

Автоматическая рассылка прайс-листов Промо

Ценообразование, прайсы Email Оптовая торговля Розничная торговля Оптовая торговля Розничная торговля v8 УТ10 Абонемент ($m)

Устали от утомительной рассылки прайс-листов своим клиентам? Тогда эта обработка как раз для вас, она сделает полностью все сама! Сформирует прайс с нужными настройками и отправит его по электронной почте, как, куда и когда надо.

1 стартмани

24.03.2014    39231    46    skyadmin    18    

Simple UI: простой конструктор мобильных приложений для устройств на Android. Самый быстрый способ создания рабочего места на смартфоне или ТСД. Обновление от 15.07.2020: чат и задачи с объектами

Мобильная разработка v8 УУ Абонемент ($m)

Simple UI – это полностью бесплатная платформа для создания мобильных рабочих мест на Android. Конструктор позволяет создавать мобильные клиенты для учетных систем и самостоятельные приложения на телефонах, ТСД (терминалах сбора данных), планшетах, электронных киосках и других устройствах. При этом не нужно разбираться в мобильной разработке, Android SDK ведь основная цель платформы – максимально упростить процесс разработки и поддержки, сделать его визуальным, собирать приложения из готовых блоков с минимумом кода. Причем код обработчиков можно писать на языке учетной системы либо задавать логику обработки событий с помощью команд REST, SQL и визуального конструктора. Проект постоянно развивается изыскивая новые способы упрощения разработки и повышения функционала и является пожалуй самым быстрым способом как создать MVP-проект так и продакшн-систему под конкретное внедрение или тиражный продукт.Тестировалось на 1С: Предприятие 8.3 релиз 8.3.13.1865.

1 стартмани

14.11.2019    15052    142    informa1555    89    

Получение AndroidID в мобильном приложении

Мобильная разработка v8::Mobile Россия Абонемент ($m)

Получаем Android DeviceID в мобильном приложении/клиенте, используя стороннее приложение.

1 стартмани

05.11.2019    7656    4    sam441    11    

ODa - Android приложение для подключения к любой конфигурации 1С, используя OData протокол

Мобильная разработка v8 1cv8.cf Абонемент ($m)

В платформе 1С реализована прекрасная возможность работы с открытым веб-протоколом OData, который предоставляет любой другой платформе интерфейс доступа - возможность запрашивать и обновлять данные из базы 1С. Далее в статье будут описаны особенности работы мобильного приложения ODa, которое без программировании на стороне Android'a позволит разработчикам публиковать базы 1С, что даст возможность обычным пользователям взаимодействовать с объектами метаданных, используя нативные элементы интерфейса платформы Android.

1 стартмани

22.10.2019    9755    8    Kosigo    11    

[Расширение] Загрузка данных из Excel в табличную часть документа с созданием не найденной номенклатуры Промо

Обработка документов Оптовая торговля Учет ТМЦ Обработка справочников Загрузка и выгрузка в Excel Оптовая торговля Учет ТМЦ v8::ОУ УТ11 Россия УУ Абонемент ($m)

Расширение типовой обработки 1С "Загрузка данных из внешних файлов" (Управление торговлей ред. 11.4). Позволяет загружать данные из внешнего файла в табличную часть документа и создавать не найденную номенклатуру. Доработано: создание не сопоставленной номенклатуры по настройкам. Добавлена загрузка в документы Перемещение, Списание, Оприходование. Расширение тестировалась на демо версии Управление торговлей 11.4.9.70, 11.4.11.55, 11.4.12.61, 11.4.13.47

1 стартмани

09.12.2016    27334    171    shtinalex    26    

Простой терминал сбора данных на мобильной платформе Андроид с функцией сканирования акцизных марок алкоголя

Розничная торговля Терминал сбора данных v8::Mobile Розница Розничная и сетевая торговля (FMCG) Россия Абонемент ($m)

Простая конфигурация мобильного приложения 1С: терминал сбора данных + сканирование акцизных алкомарок.

1 стартмани

18.09.2019    6869    33    independ    13    

Компонента аутентификации и шифрования с помощью биометрической информации для Андроид

Разработка внешних компонент Мобильная разработка Защита и шифрование v8::Mobile Абонемент ($m)

Компонента для мобильной платформы, позволяющая идентифицировать пользователя и шифровать данные с помощью биометрических сканеров.

5 стартмани

17.09.2019    5971    1    IgorKissil    9    

Мобильное приложение 1С для помарочной инвентаризации маркируемой (алкогольной) продукции

Терминал сбора данных Мобильная разработка Розничная торговля Розничная торговля v8::Mobile Розничная и сетевая торговля (FMCG) УУ Абонемент ($m)

Мобильное приложение 1С для помарочной инвентаризации маркируемой (алкогольной) продукции на ТСД под Android. Получение данных марок (штрихкодов), используя БПО для мобильного приложения. Разработка на платформе 8.3.13.1809. Мобильная платформа 8.3.13.64. Версия сборщика 2.0.8.19.

1 стартмани

18.07.2019    7576    21    savostin.alex    5    

Печать чеков для ККМ АТОЛ и ШТРИХ на основании текстового файла, где содержится описание товаров, цен, НДС (все требования 54-ФЗ, поддержка изменений от 01/07/19). Для 1С (7.7 и 8 УФ, обычных форм) есть готовые обработки Промо

ККМ Фискальный регистратор Кассовые операции Оптовая торговля Розничная торговля Кассовые операции Оптовая торговля Розничная торговля v7.7 v8 v8::УФ 1cv8.cf 1cv7.md Россия Абонемент ($m)

Это программа печати чеков, которая читает обычный текстовый файл, где перечислено, что надо распечатать на ФР - описание содержимого чека. Такой механизм позволяет использовать комплект для WEB сайтов, для не типовых или сильно измененных 1с7 или 1с8. Для любых программ которые умеют работать с текстовыми файлами (будь то CLIPPER,FOXPRO,JAVA, WSH, VBS итд). Внутри комплекта лежат готовые внешние печатные формы для печати из документов Реализация товаров и услуг 1с8 УТ10, БП2, БП2Базовая, БП2Корп, УТ11, БП3, БП3Базовая, БП3Корп, Для 1с:ТиС 7.7 Реализация ТМЦ, Бух4.5, Бух1.3 и Печать из ПКО Подключать ФР к 1С не надо! Не надо открывать смену. Подходит для любой конфигурации, для любого документа. Более 300 внедрений на ккм Штрих-Мини-ФР-К, Штрих ОнЛайн Атол 11Ф, 55Ф, 30. Возможна пробитие оплаты наличным или VISA  (Электронные деньги). Поддерживает передачу в ОФД имени кассира, телефон или email покупателя. Для каждого чека можно поменять ОСН (ЕНВД, Доходы-расходы итд). Возможна печать чека с выровненными колонками, Наименование,Количество Цена, Сумма, в этом случае фискализация будет одной строкой с общей суммой. Можно пробить не фискальный чек. (чек будет, но в налоговую не уйдет). Добавлена расшифровка длинных наименований, что актуально для Штрих (программа сама переносит длинные наименования на след строку). Есть внесение и выплата денег. 29.06.17 добавлено пробитие 2 видов оплат в одном чеке.

7 стартмани

11.04.2017    68507    194    ah7777777    517    

Внешняя компонента для принтеров Bixolon

Разработка внешних компонент v8::Mobile Абонемент ($m)

Представлена компонента мобильной платформы 1С для ОС Android, поддерживающая принтеры этикеток и чеков семейства Bixolon. Тестировалась на релизе мобильной платформы 8.3.14.53.

5 стартмани

08.07.2019    4140    2    IgorKissil    4    

Шаблон http-сервиса для вашего проекта

Внешние источники данных WEB Мобильная разработка v8 v8::Mobile 1cv8.cf Абонемент ($m)

Http-сервис для обмена данными в формате JSON. Обработчики этого сервиса находятся во внешней обработке, что позволяет дорабатывать его без изменения конфигурации. Также прилагаю пример мобильного приложения для работы с данным сервисом (получает номенклатуру и остатки на складе). Сервис очень быстро разворачивается и масштабируется под ваши задачи.

3 стартмани

04.05.2019    19430    74    MarkoSokolov    47    

Отправка пакета документов по электронной почте (в формате PDF/XLS/HTML/MXL/ODS) Промо

Печатные формы документов Пакетная печать Email Оптовая торговля Оптовая торговля v8 БП2.0 КА1 УПП1 УТ10 Россия БУ Абонемент ($m)

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

2 стартмани

22.04.2015    53253    34    trendy    21    

Управление ТСД Zebra с помощью внешней компоненты для мобильной платформы

Разработка внешних компонент Мобильная разработка v8::Mobile Абонемент ($m)

Представлена внешняя компонента для управления сканерами терминалов Zebra из мобильных приложений 1С.

2 стартмани

15.04.2019    9040    27    IgorKissil    14    

Обработка нажатия аппаратных кнопок на ТСД в мобильной платформе

Разработка внешних компонент Терминал сбора данных Розничная торговля Розничная торговля v8::Mobile Абонемент ($m)

Обработка и передача события нажатия аппаратных клавиш на Android в мобильную платформу 1С.

1 стартмани

11.04.2019    10530    43    dewersia    33    

Андроид активити, разработанное для запуска и сбора информации из мобильного приложения 1С 8.3

Мобильная разработка v8::Mobile 1cv8.cf Автомобили, автосервисы Абонемент ($m)

Активити доступно из кода мобильного приложения 1С 8.3. Может использоваться как часть приложения при приемке автомобиля на предприятиях автосервиса. По сути является модальным диалогом, для внесения данных по осмотру автомобиля при приемке/передаче.

1 стартмани

10.04.2019    5543    1    hiEnergy    1    

Групповая выгрузка - загрузка налоговых и приходных накладных в формате XML 1С 8.x (Украина) 2019 (Обновление 12.04.2019) Промо

Обмен через XML Оптовая торговля Оптовая торговля v8::БУ 1cv8.cf Украина БУ НУ НДС Абонемент ($m)

Обновление и развитие функционала обработки "Групповая выгрузка налоговых накладных в формате XML 1С 8.x (Украина)"

3 стартмани

27.03.2017    29223    43    script    19    

Подкасты сайта "Эхо Москвы" в мобильном приложении 1С

Мобильная разработка v8::Mobile Россия Абонемент ($m)

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

1 стартмани

09.03.2019    5413    2    NovPas    6    

Альтернатива для "ПоказатьВыборИзСписка" и "ПоказатьВопрос" для приложений на Мобильной Платформе (УФ)

Мобильная разработка v8::УФ v8::Mobile 1cv8.cf Абонемент ($m)

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

1 стартмани

04.02.2019    6702    1    HorusTheOne    0    

Инструкция по применению мобильного приложения 1С:Штрихкоды

Мобильная разработка Практика программирования Сканер штрих-кода v8::Mobile Абонемент ($m)

После выпуска обзора на настраиваемое мобильное приложение для сканирования штрихкодов у заинтересованных лиц появилось множество вопросов о том, как этим пользоваться.

1 стартмани

18.01.2019    8748    2    inord777    0    

Трекинг номеров РПО в Почте России Промо

WEB Оптовая торговля Оптовая торговля v8 Оптовая торговля, дистрибуция, логистика Абонемент ($m)

Относительно недавно Почта России стандартизировала и описала сервисы получения информации о регистрируемом почтовом отправлении (РПО). Представляю вашему вниманию конфигурацию-обертку над сервисами Почты России. Она позволяет просто (http-запросы) и без изменений конфигурации подключить сервисы отслеживания к своим информационным системам.

2 стартмани

28.03.2016    26970    11    Smaylukk    3    

Сканер штрих-кодов Сервер + Клиент

Мобильная разработка Сканер штрих-кода Розничная торговля Розничная торговля v8::Mobile 1cv8.cf Россия Абонемент ($m)

Мобильное приложение для магазинов одежды, продавец сканирует товар, и ему мобилка выдает остаток +сумму+ склад+ цвет+ размер+ свойство товара.

1 стартмани

18.01.2019    6495    1    enot_tut    0    

Конструктор мобильного клиента Simple WMS Client: способ создать полноценный ТСД без мобильной разработки. Теперь новая версия - Simple UI (обновлено 14.11.2019)

Инструментарий разработчика Сканер штрих-кода Терминал сбора данных Мобильная разработка Оптовая торговля Производство готовой продукции (работ, услуг) Розничная торговля Учет ОС и НМА Учет ТМЦ Оптовая торговля Производство готовой продукции (работ, услуг) Розничная торговля Учет ОС и НМА Учет ТМЦ v8 v8::Mobile БУ УУ Абонемент ($m)

Simple WMS Client – это визуальный конструктор мобильного клиента для терминала сбора данных(ТСД) или обычного телефона на Android. Приложение работает в онлайн режиме через интернет или WI-FI, постоянно общаясь с базой посредством http-запросов (вариант для 1С-клиента общается с 1С напрямую как обычный клиент). Можно создавать любые конфигурации мобильного клиента с помощью конструктора и обработчиков на языке 1С (НЕ мобильная платформа). Вся логика приложения и интеграции содержится в обработчиках на стороне 1С. Это очень простой способ создать и развернуть клиентскую часть для WMS системы или для любой другой конфигурации 1С (УТ, УПП, ERP, самописной) с минимумом программирования. Например, можно добавить в учетную систему адресное хранение, учет оборудования и любые другие задачи. Приложение умеет работать не только со штрих-кодами, но и с распознаванием голоса от Google. Это бесплатная и открытая система, не требующая обучения, с возможностью быстро получить результат.

5 стартмани

09.01.2019    44828    252    informa1555    232    

Управление сканером "Beluga" из мобильного приложения 1С

Разработка внешних компонент Мобильная разработка v8::Mobile Абонемент ($m)

Внешняя компонента для терминалов сбора данных MT65.

5 стартмани

26.11.2018    7075    9    IgorKissil    3    

Корректировка остатков по акцизным маркам ЕГАИС для Розницы 2.2 Промо

Розничная торговля Обработка документов Розничная торговля v8::ОУ v8::УФ Розница Розничная и сетевая торговля (FMCG) Рестораны, кафе и фаст-фуд УУ Абонемент ($m)

Розница 2.2. Корректировка остатков ЕГАИС. Пользователю необходимо считать все акцизные марки каждой бутылки, это даёт 100% точность инвентаризации (корректировки). Обработка приведёт остатки ЕГАИС к тем, которые вы занесёте (к фактическим). Останавливать продажи и работу кассиров не требуется, ведь есть функция удаления марки из нашего документа. Обработка по акцизной марке понимает, что это за бутылка. Если данных по бутылке нет, они запрашиваются в ЕГАИС. Если акцизную марку уже считывали, она не даст считать её повторно.

10 стартмани

26.12.2016    34587    63    myALKleon    63    

Внешняя компонента для выполнения регулярных выражений

Разработка внешних компонент v8 Абонемент ($m)

Внешняя Native API компонента для выполнения регулярных выражений на платформе 1С:Предприятие 8. Написана на C++. Используется движок boost::regex (v 1.69, v 1.68 - для Android). Версия синтаксиса Perl Compatible Regular Expressions.

1 стартмани

12.11.2018    12512    30    KAV2    62    

Самая простая конфигурация для сканирования штрихкодов из мобильного приложения 1С

Сканер штрих-кода Мобильная разработка v8 v8::УФ v8::Mobile Абонемент ($m)

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

1 стартмани

01.11.2018    9351    27    Romyl01    4    

TextRadar - нечеткий поиск в тексте

Разработка внешних компонент Поиск данных v8 1cv8.cf Абонемент ($m)

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

1 стартмани

19.09.2018    17463    23    TSSV    18    

Сканирование штрихкода медицинского полиса единого образца с помощью мобильного приложения

Сканер штрих-кода Мобильная разработка v8::Mobile 1cv8.cf Здравоохранение, медицина, стоматология Россия Абонемент ($m)

В данной публикации рассматривается демонстрация сканирования и распознавания штрихкода полиса ОМС единого образца с помощью мобильного приложения фирмы 1С.

5 стартмани

15.09.2018    11591    5    Agregadus    2    

Помощник корректировки остатков ЕГАИС в небольшом магазине. Розница 2.2

Розничная торговля Обработка документов Розничная торговля v8 Розница Розничная и сетевая торговля (FMCG) Рестораны, кафе и фаст-фуд Россия УУ Абонемент ($m)

Данная обработка упрощает корректировку остатков алкогольной продукции небольшого магазина, где предполагается передача всей продукции в торговый зал сразу после приемки.

5 стартмани

08.09.2018    32852    83    asdfgcom    46    

Мобильное приложение для настольного тенниса

Мобильная разработка v8::Mobile Развлечения, искусство, спорт Россия Абонемент ($m)

Идея этого приложения появилась во время регулярных посещений детских соревнований по настольному теннису. Юные спортсмены результаты каждой встречи записывают в блокнот. В какой-то момент мне стало больно на это смотреть и я решил "оцифровать" этот процесс, а за одно поработать с мобильной платформой. Смартфон сейчас есть у многих с малых лет, поэтому логичным было бы перенести запись результатов игр на смартфон.

1 стартмани

23.08.2018    6784    2    gradi    0    

Класс-обработка “Работа с картами Яндекс”

Разработка внешних компонент WEB v8 Абонемент ($m)

Как показать точку или маршрут на карте Яндекс. Как получить координаты по строке адреса (геокодирование).

1 стартмани

01.08.2018    25106    200    RSConsulting    16    

Распознавание лиц (off-line). Демонстрационная база.

Разработка внешних компонент v8 Абонемент ($m)

Распознавание лиц входит в нашу жизнь стремительными темпами, бизнес стремится за событиями. В публикации находится описание и пример использования нейросетей для распознавания лиц.

1 стартмани

17.07.2018    16227    72    nomadon    45    

Приложение Android для идентификации/распознавания образов (с обучением с одного раза, One-Shot Learning) с возможностью работы с 1С через веб-сервис

Мобильная разработка v8 Абонемент ($m)

В данной статье описано приложение, алгоритм и методика распознавания изображений, предоставляющее посредством http-запросов информацию о распознанных объектах в 1С. В качестве примера интеграции прилагается конфигурация, реализующая веб-сервис для приема запросов от приложения.

1 стартмани

19.06.2018    15273    4    informa1555    15