gifts2017

Мобильные списки покупок

Опубликовал Андрей Корчак (kharts) в раздел Программирование - Мобильные приложения

Мобильное приложение "Списки покупок" на платформе "1С:Предприятие 8.3" позволяет создавать списки для шопинга, и никогда не забывать сделать важные покупки!

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

Лично я до последнего времени пользовался для этих целей многими программами, в частности, "Evernote", "Список покупок" и "Shopping List", но у всех них были недостатки.

И тут вышла версия 8.3 платформы "1С:Предприятие" и появилась возможность написать удобное для себя мобильное приложение, да еще и на любимой платформе!

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

Стартовый экран

У приложения есть два режима: "Создание" и "Покупки". Переключатель находится на командной панели в верхней части формы списка документов.

Создание списка

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

Добавление позиции  Справочник

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

Режим покупок

Сборка приложения выполнялась с помощью последней на момент написания статьи версии 8.3.4.14 мобильной платформы, которую можно скачать с сайта фирмы "1С". Понадобятся также Android SDK и Java SDK. Детально процесс описывать не буду, особенно учитывая, что на "Инфостарте" есть ряд замечательных статей на эту тему:

http://infostart.ru/public/242857/

http://infostart.ru/public/169098/

http://infostart.ru/public/154081/

От себя отмечу новую конфигурацию "Сборщик мобильных приложений" - это действительно шаг вперед по отношению к старой обработке "Помощник создания мобильных приложений". Собирать мобильные приложения стало намного удобнее - мы это почувствовали, еще когда выпускали новые версии нашего доработанного "Мобильного Документооборота". Была правда "ложка дегтя", из-за которой приложения сначала не хотели собираться на моем компьютере. Пришлось исправить ошибку неправильной кодировки формируемого для сборки BAT-файла - если кому интересно, нужно в общем модуле СборкаМобильныхПриложений в процедуре СобратьПриложениеДляAndroid() строку номер 325:

Сборщик = Новый ЗаписьТекста(РабочийКаталог+"make.bat", КодировкаТекста.ANSI);

заменить на

Сборщик = Новый ЗаписьТекста(РабочийКаталог+"make.bat", КодировкаТекста.OEM);

Выкладываю конфигурацию и собранное под ARM-платформу приложение. Если вам понравится, может, выложу на Google Play. В любом случае буду рад конструктивным замечаниям и предложениям!

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

Наименование Файл Версия Размер Кол. Скачив.
com.e1c.ShoppingLists-arm.apk
.apk 22,36Mb
31.01.14
10
.apk 22,36Mb 10 Скачать
СпискиПокупок_2014-01-30.cf
.cf 18,64Kb
31.01.14
13
.cf 18,64Kb 13 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Алексей 1 (AlX0id) 31.01.14 17:19
Я собрал себе простую табличку в мементо - и достаточно )
Работает в разы быстрее 1с, чего и требуется от подобного функционала..
2. Андрей Корчак (kharts) 31.01.14 18:59
(1) AlX0id, ради интереса установил. действительно шустрее работает. но вот с точки зрения удобства... на вкус и цвет)
надеюсь, что в следующих версиях повысят скорость работы мобильной платформы
3. Алексей 1 (AlX0id) 02.02.14 17:32
(2) kharts,
Не, ну спора нет - 1ску кастомизировать проще.. Но за это так круто приходится расплачиваться производительностью, что я уже яву начал осваивать )
Может, на планшетах и более мощных телах и ничо будет, но с планшетом немного кто в магазы ходит )
4. Евгений Сосна (pumbaE) 05.02.14 11:15
Каким образом может жена набрать список покупок и отправить телефон?
Где название и марки товаров, ориентировочная цена. Такое впечатление, что вы не женаты и не разу не ходили за покупками по списку и на вопрос "есть такой же халатик, только без перламутровых пуговиц, будете брать?" отвечаете утвердительно, а не "нет у меня по списку халат с перламутровыми пуговицами!".
5. VVV (V_V_V) 05.02.14 11:28
Пользуюсь Google Keep. Там какие хочешь списки (и не только) можно хранить, да еще и с фотографиями.
6. Андрей Акулов (DrAku1a) 06.02.14 09:03
(3) AlX0id, у меня MTC 972 брал за три тыщи в их салоне. У него андройд 4-й и оперативой не обижен. На нем производительность 1С вполне на уровне!
ЗЫ. Если ява - сложно, то можешь попробовать Delphi XE5 - он умеет компилить под андро.

Проблема в другом - на мобильном не очень удобно именно набивать тексты... Но в гугл можно попробовать функцию распознавания речи...
7. Антон Стеклов (asved.ru) 07.02.14 16:12
Имеет смысл сделать серверную часть и SOAP-синхронизацию. Вот тогда будет красота и энтерпрайз, как у больших дяденек.
8. Андрей Корчак (kharts) 08.02.14 22:01
(7) asved.ru, было в планах, хотя на энтерпрайз и не думал претендовать)
9. Андрей Корчак (kharts) 08.02.14 22:05
(4) pumbaE, женат) про пуговицы - смеялись с женой от души)
Долго пытался приучить отправлять мне списки (в других программах) - не хочет, ей удобней на листочке написать. А я уже потом с листочка забиваю в телефон...
Названия и марки товаров, ориентировочная цена - это как раз то, что меня отпугивало в других программах. Хотелось максимальной простоты.
10. Алексей 1 (AlX0id) 16.02.14 22:34
(6) DrAku1a,
Не то, чтобы 1С не тянула, но по сравнению с Ява будет уступать еще очень долго.. Одно лишь наличие в памяти 180 метров 1С будет означать постоянное ее выбрасывание из памяти менеджером андроида при функционировании других приложений.. Ну или я что-то не так делаю, что она столько весит :)
А Ява освоить не проблема.. В сети очень много доступных материалов - в те времена, когда я учил бэйсик и паскаль, было гораздо сложнее %)

ЗЫ. А какие проблемы с набором текста? У меня стоит клавиатура TouchPal - за женой спокойно записываю, а за счет интеллектуального ввода иногда даже быстрее 10-пальцевого ввода получается %)
11. Макс Зеленский (mzelensky) 01.03.14 20:19
Мучаюсь с мобильным приложением. Уперся в очень элементарный вопрос, который не могу решить. Мне нужно указать файл (точнее путь к нему). В обычном режиме делается через

ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие)

Но в мобильном приложении НЕТ такого. И никак не могу найти аналог. Как все-таки поступить???
12. Андрей Бударный (WhiteShadow) 20.04.14 20:46
интересен процесс реализации, но ожидал увидеть связку 1с PC - 1c android. не увидел, посему приложение не очень актуально. Но все равно автору +.
13. Davit Amirxanyan (Davidmad777) 02.09.14 11:39
можете помочь? пожалуйста.
Сборщик = Новый ЗаписьТекста(РабочийКаталог+"make.bat", КодировкаТекста.OEM);
выдает ошибку на ету строку можете помочь
14. Андрей Корчак (kharts) 02.09.14 15:25
(13) Davidmad777, а какая хоть ошибка?
подозреваю, что проблема может быть с русским языком в пути к рабочему каталогу. Можно его переопределить - использовать только латинские символы в пути.
Davidmad777; +1 Ответить 1
15. Davit Amirxanyan (Davidmad777) 03.09.14 10:36
16. Davit Amirxanyan (Davidmad777) 03.09.14 10:38
(14) kharts,
1c Вылетает
1c has stopped working
17. Davit Amirxanyan (Davidmad777) 03.09.14 11:09
Вот Скрини
Прикрепленные файлы:
18. Davit Amirxanyan (Davidmad777) 03.09.14 13:51
а вот log
Log Name: Application
Source: Application Error
Date: 03.09.2014 12:06:32
Event ID: 1000
Task Category: (100)
Level: Error
Keywords: Classic
User: N/A
Computer: Davit
Description:
Faulting application name: 1CV8C.exe, version: 8.3.4.482, time stamp: 0x535f2a9f
Faulting module name: ext.dll, version: 8.3.4.482, time stamp: 0x535f3285
Exception code: 0xc0000005
Fault offset: 0x000036c0
Faulting process id: 0xb80
Faulting application start time: 0x01cfc7458fd32616
Faulting application path: C:\Program Files (x86)\1cv8\8.3.4.482\bin\1CV8C.exe
Faulting module path: C:\Program Files (x86)\1cv8\8.3.4.482\bin\ext.dll
Report Id: d541a513-3338-11e4-a0f6-005056c00008
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider Name="Application Error" />
<EventID Qualifiers="0">1000</EventID>
<Level>2</Level>
<Task>100</Task>
<Keywords>0x80000000000000</Keywords>
<TimeCreated SystemTime="2014-09-03T07:06:32.000000000Z" />
<EventRecordID>1738</EventRecordID>
<Channel>Application</Channel>
<Computer>Davit</Computer>
<Security />
</System>
<EventData>
<Data>1CV8C.exe</Data>
<Data>8.3.4.482</Data>
<Data>535f2a9f</Data>
<Data>ext.dll</Data>
<Data>8.3.4.482</Data>
<Data>535f3285</Data>
<Data>c0000005</Data>
<Data>000036c0</Data>
<Data>b80</Data>
<Data>01cfc7458fd32616</Data>
<Data>C:\Program Files (x86)\1cv8\8.3.4.482\bin\1CV8C.exe</Data>
<Data>C:\Program Files (x86)\1cv8\8.3.4.482\bin\ext.dll</Data>
<Data>d541a513-3338-11e4-a0f6-005056c00008</Data>
</EventData>
</Event>
19. Davit Amirxanyan (Davidmad777) 03.09.14 16:52
Problem signature:
Problem Event Name: APPCRASH
Application Name: 1CV8C.exe
Application Version: 8.3.4.482
Application Timestamp: 535f2a9f
Fault Module Name: ext.dll
Fault Module Version: 8.3.4.482
Fault Module Timestamp: 535f3285
Exception Code: c0000005
Exception Offset: 000036c0
OS Version: 6.1.7600.2.0.0.256.1
Locale ID: 1067
Additional Information 1: 0a9e
Additional Information 2: 0a9e372d3b4ad19135b953a78882e789
Additional Information 3: 0a9e
Additional Information 4: 0a9e372d3b4ad19135b953a78882e789
20. Андрей Ширяев (Customs) 21.10.14 17:45
Отличное прилжение, то чего так мне не хватало в магазине. Автору +
21. Davit Amirxanyan (Davidmad777) 10.07.15 11:23
а вот log
Log Name: Application
Source: Application Error
Date: 03.09.2014 12:06:32
Event ID: 1000
Task Category: (100)
Level: Error
Keywords: Classic
User: N/A
Computer: Davit
Description:
Faulting application name: 1CV8C.exe, version: 8.3.4.482, time stamp: 0x535f2a9f
Faulting module name: ext.dll, version: 8.3.4.482, time stamp: 0x535f3285
Exception code: 0xc0000005
Fault offset: 0x000036c0
Faulting process id: 0xb80
Faulting application start time: 0x01cfc7458fd32616
Faulting application path: C:\Program Files (x86)\1cv8\8.3.4.482\bin\1CV8C.exe
Faulting module path: C:\Program Files (x86)\1cv8\8.3.4.482\bin\ext.dll
Report Id: d541a513-3338-11e4-a0f6-005056c00008
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider Name="Application Error" />
<EventID Qualifiers="0">1000</EventID>
<Level>2</Level>
<Task>100</Task>
<Keywords>0x80000000000000</Keywords>
<TimeCreated SystemTime="2014-09-03T07:06:32.000000000Z" />
<EventRecordID>1738</EventRecordID>
<Channel>Application</Channel>
<Computer>Davit</Computer>
<Security />
</System>
<EventData>
<Data>1CV8C.exe</Data>
<Data>8.3.4.482</Data>
<Data>535f2a9f</Data>
<Data>ext.dll</Data>
<Data>8.3.4.482</Data>
<Data>535f3285</Data>
<Data>c0000005</Data>
<Data>000036c0</Data>
<Data>b80</Data>
<Data>01cfc7458fd32616</Data>
<Data>C:\Program Files (x86)\1cv8\8.3.4.482\bin\1CV8C.exe</Data>
<Data>C:\Program Files (x86)\1cv8\8.3.4.482\bin\ext.dll</Data>
<Data>d541a513-3338-11e4-a0f6-005056c00008</Data>
</EventData>
</Event>
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа