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

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

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

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

 

На чем я работал:

1. Android Studio 3.6.2

2. Мобильное приложение 1С 8.3.16.142

3. 1С:Предприятие 8.3 (8.3.17.1386)

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

// Описание: Функция создает класс 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
49
.zip 11,57Mb 49 Скачать

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

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

На ТСД "ATOL Smart.Lite android 7.0" в приложении "Barcode Utility" , "Scan Setting" -> "Broadcast setting"
6. SanyMaga 61 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 61 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 61 30.06.20 12:14 Сейчас в теме
(11) Почему бы и нет. Должно работать. Не вижу нечего ограничивающего в разрезе Android java sdk
13. booblich 30.06.20 14:43 Сейчас в теме
(12) А если глНативКомпонента.EchoExternalEvent("Проверка"); отрабатывает, внешнее событие отрабатывает, перехват сообщений от сканера ТСД запускается, а внешнего события при сканировании не происходит. В таком случае может быть проблема в чем-то кроме добавленных расширений (AddStringExtra)? На ATOL Smart.Lite все отрабатывает как надо.
14. SanyMaga 61 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 61 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 61 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. Широкий 690 31.08.20 15:07 Сейчас в теме
(17)
application/octet-stream
можно ли подробнее где это прописывается для апача?
51. SanyMaga 61 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 61 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 61 08.08.20 17:43 Сейчас в теме
(21)
Смотри выше.

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

.so
.apk
Тип MIME: application/octet-stream
23. boss_kuz 93 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 93 11.08.20 06:57 Сейчас в теме
(23) Вот я идиот, только сейчас догнал что событие ru.mal.malutilities.onKeyEvent.1 возникает при сканировании потому что я НАЖИМАЮ КНОПКУ СКАНЕРА-А-А. И все же если нажать к примеру клавишу Enter событие "Штрихкод" возникает , есть вариант его побороть ?
25. SanyMaga 61 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 61 15.08.20 10:04 Сейчас в теме
Да кешируется. Нужно пересоздать(удалить из списка и снова добавить) в "1С мобильное приложение" базу или почистить кеш.
28. user592473_damien256 15.08.20 10:55 Сейчас в теме
(27) Дело в том, что я ТСД сбросил до заводских и все установил заново - результат тот же... Ничего не понимаю... Может с сервисом что-то нужно делать еще? Может в Android-Studio что-то нужно еще (я просто сохранаю проект, потом Buld -> Build APK(s))?
29. SanyMaga 61 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 61 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 61 21.08.20 09:37 Сейчас в теме
(31)
Нужно проверить для UTF еcли там BOM
33. user592473_damien256 21.08.20 10:14 Сейчас в теме
(32)
Так в их тестовом приложении работает...
Попробую создать с нуля конфигурацию, собрать компоненту, и подключить к ней. Ну не может быть, что собираю один код, а работает другой...
34. SanyMaga 61 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 31 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 61 23.08.20 09:48 Сейчас в теме
(40) А вы его запустили (запускать в Настройки-Спец. возможности.)? При запуске сервиса нужно дать разрешения.
42. AneJIbcuH 31 23.08.20 10:01 Сейчас в теме
43. AneJIbcuH 31 23.08.20 11:04 Сейчас в теме
(41) не могли бы ещё пояснить момент. Нажимаешь кнопки на ТСД, получаешь код, например 3 - код 10, 5 - код 12 и тд.
Что из себя данный код представляет? А главный вопрос, если разные ТСД (в том числе и модели), коды будут отличаться?
44. SanyMaga 61 23.08.20 11:12 Сейчас в теме
(43)Просто так закодированы кнопки производителем. Я думаю на разных ТСД будут разные коды клавиш.
45. AneJIbcuH 31 23.08.20 11:52 Сейчас в теме
Компонента здоровская!
А в DeviceInfo нельзя добавить текущий IP адрес wi-fi ? :)
46. SanyMaga 61 23.08.20 20:38 Сейчас в теме
49. AneJIbcuH 31 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 61 29.09.20 16:49 Сейчас в теме
57. user592473_damien256 29.09.20 20:33 Сейчас в теме
(56)
Нет, вы не поняли. Все работает (у меня apache) нормально - когда загружена опубликованная конфигурация в мобильную платформу для разработчиков.
Не подключается та же компонента в уже собранном apk, соответственно имеем ошибку "Тип не определен AddIn.rumalutilities.MALutilities" при вызове конструктора
58. SanyMaga 61 30.09.20 10:44 Сейчас в теме
(57)
Я не делал не когда готовый АПК, мне нужна была всегда конфигурация чтоб обновлять ее в процессе работы. Там скорей всего нужно положить в двоичные данные и подключить по другому.
59. user1478935 04.11.20 20:44 Сейчас в теме
А если глНативКомпонента.EchoExternalEvent("Проверка"); отрабатывает, внешнее событие отрабатывает, но ответ от AccessibilityService не приходит - в чем может быть причина?
61. SanyMaga 61 05.11.20 09:24 Сейчас в теме
(59)
Вы его запустили? Сервис->ДопВозможности
60. SanyMaga 61 05.11.20 09:24 Сейчас в теме
Вы его запустили? Сервис->ДопВозможности
62. user1478935 05.11.20 09:59 Сейчас в теме
63. SanyMaga 61 05.11.20 10:23 Сейчас в теме
(62) И разрешения дали?

		
	// Создаем 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(ЭвентУказатель); 
Показать


Кнопки отрабатывает только физические.
64. user1478935 05.11.20 11:24 Сейчас в теме
(63) Что значит дали разрешения? При просмотре "О приложении" - "Приложение не запрашивало разрешений"
65. SanyMaga 61 05.11.20 11:35 Сейчас в теме
(64)
Сервис нужно устанавливать, как apk, а запускать в Настройки-Спец. возможности. При запуске он спрашивает разрешения на перехват клавиатуры.

скаченыйархив\malaccservice\package\ru_mal_accessibilityserv­ice.apk

Какая версия Андроид?
66. user1478935 05.11.20 12:03 Сейчас в теме
9. При запуске уведомляет http://joxi.ru/Dr8QlQoIMp7a0m , разрешение на перехват не спрашивает
67. SanyMaga 61 05.11.20 16:02 Сейчас в теме
(66)
Это и есть разрешения на перехват. сервис работает?
68. user1478935 05.11.20 16:16 Сейчас в теме
В том то и дело что нет. Срабатывает только нажатие (событие ru.mal.malutilities.onKeyEvent.1). Сканирование не отлавливается. ТСД ATOL Smart.pro
69. SanyMaga 61 05.11.20 16:47 Сейчас в теме
(68)
А сканирование не будет отлавливаться (это не разрыв клавиатуры). Кнопки отрабатывает только физические. Сканирование через "Broadcast". Или через буфер обмена. Что за терминал?

Просто 1с не умеет работать с физическими кнопками если нет фокуса ввода к элементу. Для этого и написан сервис.
70. SanyMaga 61 05.11.20 16:53 Сейчас в теме
(68)
Посмотри та сверху уже есть про ATOL Smart.pro
71. user1478935 05.11.20 17:52 Сейчас в теме
(70) Видел, там как раз такая же ситуация - внешнее событие не отлавливается при сканировании
72. SanyMaga 61 05.11.20 18:06 Сейчас в теме
(71) Скрин настроек скинте.
73. SanyMaga 61 05.11.20 18:10 Сейчас в теме
(71) Эта тема не закрыта человек либо бросил это дело (мой коммент последний), либо у него заработало.
74. SanyMaga 61 05.11.20 18:19 Сейчас в теме
(71) Да и ситуация у вас разная вы пытались поймать события на кнопках через ru_mal_accessibilityserv­ice.apk.
76. user1478935 05.11.20 19:07 Сейчас в теме
(74) Вот здесь не очень понимаю - событие сканирования надо ловить не через ru_mal_accessibilityserv­ice.apk? Я ведь понимаю логику так - в 1с создастся отдельное событие по факту нажатия кнопки и отдельно считывании ШК?
77. SanyMaga 61 06.11.20 12:07 Сейчас в теме
(76) Нет. вы просто первый вопрос задали про AccessibilityService.
75. user1478935 05.11.20 19:03 Сейчас в теме
78. SanyMaga 61 06.11.20 12:21 Сейчас в теме
(75)

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

1. Попробуйте поиграть с настройками.
2. Очистить в намерениях категорию "Intent->Category"
3. Попробуйте проверить идет ли броадкаст от сканера, каким то другим приложением например https://play.google.com/store/apps/details?id=com.balda.intenttask&hl=ru
4. Запустить отладку в Android studio.
5. Попробовать настроить через Clipboard.
6. спросить у пользователя "booblich" чем все закончилось у него.
79. nsasov 08.11.20 19:11 Сейчас в теме
День добрый. Не срабатывает загрузка компоненты. Проблема точно не в настройках MIME, другие компоненты загружаются и работают. Что ещё можно проверить?
80. SanyMaga 61 09.11.20 09:36 Сейчас в теме
(79)
Добрый день.
Проверьте.
https://its.1c.ru/db/metod8dev#content:3221:hdoc:_подготовка_внешних_компонент_для_за

Какой андроид? какая платформа? режим запуска? где возникает ошибка при загрузке или при инициализации компоненты.
81. nsasov 09.11.20 18:02 Сейчас в теме
(80) При запуске тестовой конфигурации на эмуляторе Android выдаёт сообщение "Файл не обнаружен..."

При запуске на UROVO i6200A Android 5.1.1, ошибки про файл не выдаёт, но метод ПодключитьВнешнююКомпоненту возвращает Ложь.
Прикрепленные файлы:
83. SanyMaga 61 10.11.20 09:26 Сейчас в теме
(81)
Добавить в manifest name="libru_mal_utilities"
82. SanyMaga 61 10.11.20 09:25 Сейчас в теме
(81)


Добавить в manifest name="libru_mal_utilities"
примерно так.


<?xml version="1.0" encoding="UTF-8"?>

<bundle name="ru_mal_utilities" xmlns="http://v8.1c.ru/8.2/addin/bundle">

<component arch="ARM" type="native" codeType="c++" path="libru_mal_utilities.so" os="Android"  name="libru_mal_utilities"/>

<component arch="ARM" type="native" codeType="java" path="ru_mal_utilities.apk" os="Android" name="libru_mal_utilities"/>

</bundle>
Показать


Потом удалите и добавти базу
84. nsasov 15.11.20 16:12 Сейчас в теме
(82)
Заменил манифест, удалил/создал базу. Результат не изменился - на физическом устройстве ПодключитьВнешнююКомпоненту возвращает Ложь. На эмуляторе "Файл не обнаружен..."
85. SanyMaga 61 16.11.20 09:20 Сейчас в теме
(84)
Посмотрите здесь:
https://forum.infostart.ru/forum28/topic186089/?PAGEN_1=2
или здесь.
https://support.rightscan.ru/ru/communities/1/topics/2907-urovo-dt40-fajl-ne-obnaruzhen-libomniiddsocfl

У меня нет пока ответа. Это файл создает платформа 1С.

Отладку запустили в Android Studio ? (не 1с)
86. tav_74 16 03.01.21 17:38 Сейчас в теме
Добрый день!

Александр, подскажите - в BroadcastEvent.java добавил свою функцию, которую хочу вызывать из TAddInNative::CallAsProc, например по аналогии как Вы это делаете через указатель возвращаемый GetBroadcastEvent.

TBroadcastEvent* cBroadcastEvent = GetBroadcastEvent(paParams->pwstrVal);
 if(cBroadcastEvent){
                    cBroadcastEvent->Send();
                    return true;
}


Но мне не нужно ничего искать, а просто ее вызвать. Подскажите как лучше это сделать ?
87. tav_74 16 04.01.21 12:25 Сейчас в теме
Разобрался, надо было инициализировать через
TBroadcastEvent* cBroadcastEvent = new TBroadcastEvent(this, (IAndroidComponentHelper*) m_iConnect->GetInterface(eIAndroidComponentHelper));
Оставьте свое сообщение

См. также

Внешняя компонента: Android tools Промо

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

Несколько дополнительных функций для мобильного приложения\клиента под Android. Размер архива внешних компонент под архитектуры ARM и x86 - 230KB.

1 стартмани

12.01.2021    1600    3    KAV2    6    

Дневник времени. Простейшее мобильное приложение 1С для телефона на Андроид

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

Дневник времени. Предназначен для ежедневных записей в телефоне расхода времени на различные задачи. Отчет по записям позволяет проанализировать траты времени за месяц и увидеть сколько времени на какие задачи расходовалось.

1 стартмани

12.03.2021    673    3    pricec    0    

Мобильное приложение для 1C:Drive для фотоотчетов с сохранением фотографий в Microsoft Azure Blob storage

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

Пример реализации мобильного приложения, которое использует Microsoft Azure Blob storage для сохранения фотографий и передает сведения о сделанных фотографиях в 1C:Drive.

1 стартмани

26.02.2021    957    1    keypax    2    

Интеграция с бонусной программой лояльности ManyBonus

Управление взаимоотношениями с клиентами (СRM) Розничная торговля WEB v8 Розница УУ Абонемент ($m)

ManyBonus.com - бонусная программа лояльности на базе мессенджеров. Позволяет регистрировать клиента в программе лояльности через Telegram, Viber, VK, отправлять коды скидок в мессенджеры, получать уведомления при списании/начислении бонусных баллов, альтернатива сообщениям СМС.

3 стартмани

07.01.2021    2844    4    Anton64    0    

Мобильный ТСД, Инвентаризация, Маркировка, Штрихкод Промо

Розничная торговля Терминал сбора данных Учет ТМЦ Ценники Оптовая торговля Загрузка и выгрузка в Excel Сканер штрих-кода v8::ОУ v8::Mobile 8.3.14 Розница УНФ ERP2 БП3.0 УТ11 КА2 Абонемент ($m)

Мобильный терминал сбора данных для смартфонов и ТСД. Синхронизация между Вашей 1С и мобильным приложением осуществляется через HTTP-сервис (http или https) или промежуточный файл. Приложение для тех, кому важна безопасность данных, так как промежуточные сервисы для обмена не используются.

1 стартмани

27.12.2020    7961    130    1cspec    56    

[Расширение] Временное отключение онлайн-эквайринга в РМК (УТ 11.4, Розница 2.3)

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

Расширение предназначено для исправления исключительных ситуаций, когда оплата по эквайринговому терминалу с подключением оборудования прошла успешно, но чек на ККТ не был фискализирован. Расширение позволит временно отключить онлайн-эквайринг непосредственно из формы РМК.

1 стартмани

14.12.2020    3811    24    RocKeR_13    10    

Выбор документов на мобильном устройстве (iOS)

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

При внедрении мобильного приложения, имеющего в своём функционале работу с файлами, возникла необходимость прикреплять к документам не только фотографии из библиотеки мультимедиа или тут же созданные фотографии, а документы (pdf, doc, xlsx, и др.). В операционной системе iOS файловая система скрыта для пользователя и взаимодействие с файлами осуществляется средствами самого приложения и только с файлами, расположенными в директории приложения (контейнере приложения). Т.е. задачей было поместить файлы в директорию приложения и организовать взимодествие с этим каталогом.

1 стартмани

29.11.2020    1656    0    OlegK    0    

Рабочее место менеджера по продажам. УТ 11.3, 11.4, ERP 2.4 Промо

Рабочее место Оптовая торговля Оптовая торговля v8 v8::ОУ ERP2 УТ11 УУ Абонемент ($m)

Рабочее место менеджера по продажам УТ, ЕРП. Удобный инструмент в 1С для менеджеров по продажам для повседневной работы с клиентами. Все самое необходимое под рукой для оперативного создания заказа или реализации!

10 стартмани

17.08.2018    15781    52    Ivan90    35    

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

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

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

5 стартмани

12.10.2020    1948    0    ovasiliev    4    

Использование встроенного сканера ТСД на Android в мобильном клиенте и мобильном приложении (драйвер сканера Android для 1С)

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

Используя данный драйвер, можно без единой строки кода, просто установив на ТСД мобильный клиент 1С, сразу начать подбирать товары в документах вашей учётной системы. А, адаптировав нужные формы под небольшой размер экрана ТСД, можно просто создать полноценное рабочее место для выполнения операций с помощью ТСД, не прибегая к стороннему софту. Если же на складе плохая связь (или её нет вовсе), то можно использовать возможности мобильного клиента в автономном режиме (потребуется доработка вашей конфигурации). Драйвер также можно использовать и для Android приложения на мобильной платформе. В результате чего можно обойтись без ненужных полей ввода и клавиатуры «на пол-экрана».

3 стартмани

09.10.2020    10069    95    ltfriend    90    

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

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

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

3 стартмани

14.09.2020    2745    2    kinan    19    

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

Рабочее место Монитор заказов Оптовая торговля Монитор заказов Оптовая торговля v8 v8::ОУ КА1 УТ10 УУ Абонемент ($m)

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

4 стартмани

16.08.2017    31482    70    Rustig    60    

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

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

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

7 стартмани

26.08.2020    3282    2    ingeneerz@gmail.com    2    

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

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

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

2 стартмани

18.08.2020    2385    2    GAMLET    0    

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

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

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

1 стартмани

04.08.2020    3247    6    romanpolyashov@yandex.ru    0    

Обмен данными между УТ 10.3 и Розницей 2.2 (правила обмена данными между "Управлением торговлей" ред. 10.3. и "Розницей" ред. 2.2) Промо

Обмен через XML Перенос данных из 1C8 в 1C8 Оптовая торговля Розничная торговля Оптовая торговля Розничная торговля v8 УТ10 Розница УУ Абонемент ($m)

Данные правила предназначены для обмена в формате XML данных из программы «Управление торговлей» ред. 10.3. и "Розница" ред. 2.2 по основным группам документов и основных справочников. Загрузка данных осуществляется через встроенную обработку «Универсальный обмен данными XML». Основная цель обработки – корректировка типовых правил на выявленные ошибки и расширение выгрузки для корректной выгрузки данных по ЕГАИС и продажам в целом. Протестировано до УТ 10.3.47.х и Розница 2.2.11.х

3 стартмани

16.09.2016    49464    2    SEOAngels    65    

Диагностика контекста выполнения (внешняя компонента)

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

Небольшая экспериментальная внешняя компонента для получения дополнительной информации о контексте выполнения.

1 стартмани

24.07.2020    6334    2    YPermitin    14    

Нано 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    4410    10    SanyMaga    19    

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

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

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

2 стартмани

03.06.2020    5005    18    Romyl01    23    

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

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

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

2 стартмани

21.07.2016    20400    54    user594264_e.sitnik    5    

[Расширение] БП 3.0. Список счетов от поставщиков / Список поступлений + Связанные документы

Оптовая торговля Рабочее место v8 v8::БУ БП3.0 БУ УУ Абонемент ($m)

Список счетов от поставщиков и список поступлений товаров и услуг + Структура подчиненности в одном окне. Расширение для программы БП 3.0.

3 стартмани

20.05.2020    5048    4    Rustig    13    

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

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

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

1 стартмани

29.04.2020    7261    52    evgeny43    47    

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

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

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

3 стартмани

23.04.2020    4824    4    kinan    15    

Аналоги номенклатуры для УТ 11.4, КА 2.4, ERP 2.4, Розница 2.2, Розница 8. Магазин автозапчастей. Расширение Промо

Рабочее место Оптовая торговля Розничная торговля Управление торговлей Оптовая торговля Розничная торговля v8 Розница ERP2 УТ11 КА2 Автомобили, автосервисы Оптовая торговля, дистрибуция, логистика Россия УУ Абонемент ($m)

Расширение для работы с аналогами номенклатуры. Отлично подходит для работы с кроссами запчастей и товаров с аналогичными свойствами. Поддерживаемые конфигурации: УТ 11.4, КА 2.4, ERP 2.4, Розница 2.2, Розница 8. Магазин автозапчастей. Лёгкое подключение, без изменения конфигурации.

1 стартмани

30.08.2019    24113    41    AleSSandre    26    

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

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

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

3 стартмани

15.04.2020    3740    0    kinan    0    

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

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

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

3 стартмани

06.04.2020    5861    10    kinan    17    

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

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

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

1 стартмани

26.02.2020    4041    2    algabas    7    

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

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

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

5 стартмани

29.07.2015    39802    3    taurus__    23    

Simple UI: простой конструктор мобильных приложений для устройств на Android. Обновление от 17.04.2021 - новый режим компьютерного зрения ActiveCV

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

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

1 стартмани

14.11.2019    22025    243    informa1555    158    

Рабочее место логиста

Оптовая торговля Рабочее место v8 Абонемент ($m)

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

10 стартмани

12.11.2019    13926    16    Torin99    43    

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

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

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

1 стартмани

05.11.2019    9449    5    sam441    11    

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

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

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

1 стартмани

30.03.2018    30381    38    Ditron    90    

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

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

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

1 стартмани

22.10.2019    11653    8    Kosigo    11    

Маленькая и скромная мобильная внешняя компонента

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

Изваять простенькую мобильную компоненту на 1С для android не так-то просто. Посему назло отдельным супостатам, не желающим делится исходниками, представляю весь свой скромный труд на публичный суд.

1 стартмани

21.10.2019    10961    7    ripreal1    34    

Native внешняя компонента для оповещения по UDP или TCP

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

Native внешняя компонента для оповещения по UDP или TCP, которая реализует возможность в 1С передавать сообщения с сервера на клиента. Исходный код компоненты также представлен.

1 стартмани

06.10.2019    12133    27    vdv2701    31    

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

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

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

1 стартмани

24.03.2014    42665    16    skyadmin    20    

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

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

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

1 стартмани

18.09.2019    8478    39    independ    13    

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

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

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

5 стартмани

17.09.2019    7424    1    IgorKissil    9    

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

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

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

5 стартмани

08.07.2019    5107    4    IgorKissil    5    

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

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

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

3 стартмани

04.05.2019    22119    81    MarkoSokolov    48    

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

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

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

2 стартмани

15.04.2019    12034    39    IgorKissil    41    

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

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

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

1 стартмани

11.04.2019    13178    56    dewersia    33    

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

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

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

1 стартмани

10.04.2019    6666    3    hiEnergy    1    

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

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

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

1 стартмани

09.03.2019    6495    2    NovPas    6    

Обработки для 1С: Розница по работе с ЕГАИС

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

Несколько простых и нужных обработок для упрощения работы с ЕГАИС в 1С Розница версий 2.2.10.ХХХ и выше.

1 стартмани

25.02.2019    21072    49    independ    15