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

28 сентября сего года фирма 1С без особого шума и пафоса выпустила ознакомительную версию платформы 8.3.2.163, которая была предназначена для тестирования. Полный список изменений и улучшений желающие могут прочитать или, если имеют подписку, .
Из перечисленных улучшений достаточно «вкусным» мне кажется «Мобильная платформа 1С: Предприятия 8», которая позволяет привычными средствами 1С создать приложение для мобильных операционок Android или iOS

Мобильная платформа, как пишут сами разработчики, «это общее название технологии, позволяющей создавать приложения, работающие на мобильных устройствах под управлением операционных систем Android или iOS».
«Мобильное приложение, установленное на устройстве, представляет собой совокупность мобильной платформы и информационной базы.».

То есть, говоря проще, можно свою написанную конфигурацию, скомпилировать в приложение под Android (.apk) или iOS (.zip). Затем всё это добро можно выложить в Google Play или AppStore. Правда, если программу под Андроид можно подписать созданным там же ключём сразу же в 1С, и она будет готова для публикации немедленно, то для публикации приложения в AppStore его сначала придётся собрать с помощью программы Xcode на компьютере с операционной системой Mac OS X. И, разумеется, для публикации в любом из этих магазинов нужна лицензия разработчика.
Звучит всё хорошо, и я, естественно, захотел опробовать новые функции в деле.

Создание мобильного приложения на 1С

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

И здесь мы сразу обращаем внимание, что многие объекты конфигурации стали недоступны для использования. Мы уже не сможем использовать подсистемы, регламентные задания, XDTO-пакеты, Web- сервисы, отчеты, бизнес-процессы и многое другое. Также многие процедуры и методы для некоторых объектов оказываются недоступны. Это стоит учитывать при разработке.
Делаем «форму», создаём строковый реквизит с заголовком: «Привет, Хабр!» - и кидаем его на форму. Также создадим кнопку. В обработке нажатия напишем вывод сообщения, для примера.

&НаКлиенте Процедура Команда1(Команда) Предупреждение("Это работает!"); КонецПроцедуры

Для проверки работоспособности нам этого хватит, потому приступаем к самому интересному. Сохраняем конфигурацию в файл для мобильного приложения (Конфигурация->Мобильное приложение->Записать в файл), запускаемся в управляемом режиме, и запускаем обработку MobileAppWizard.epf. Этот файл лежит в архиве mobile.zip, который мы скачали в самом начале.
И вот нам предлагают заполнить первичные настройки, где все обязательные поля подчёркнуты красным.

Расположение мобильной платформы - каталог, в котором расположены файлы android.zip и ios.zip, необходимые для формирования поставки мобильного приложения. Они лежат всё в том же архиве mobile.zip.
Указываем папку, куда мы установили Android SDK (скачать можно ). 1С выставляет следующие требования:
Версия Android SDK Tools - не ниже 20.0.3;
Версия Android SDK Platform-tools - не ниже 14;
Версия SDK Platform - API 8 (не ниже версии 8.3).
И также нам нужен Java SDK (можно получить по этому адресу) Причем 1С предупреждает нас, что JDK7 не работает совместно с Android SDK.
Указываем папки, куда будет помещён наш.apk файл, место расположение ключа для подписи и псевдоним с паролем. Если вы делаете это впервые, и у Вас нет ключа, то можно заполнить «параметры ключа» и сформировать себе ключ (в таком случае в поле «файл ключа» вы должны указать папку, где этот ключ будет создан).
Нажимаем «ОК» и переходим ко второму окну.

В нём в первую очередь указываем «Конфигурацию моб.приложения» - тот самый файл, который мы сохранили. Затем язык, и только потом нажимаем на кнопочку с «лупой» и вводим там представление. Указываем « Идентификатор приложения» - уникальное имя Java-класса, которое будет использоваться в дальнейшем для выполнения обновления. Идентификатор должен обязательно быть написан на латинице, и 1С рекомендует начинать его название с «com.e1c.» Заполняем номер версии и сборки и жмём кнопку «Создать». Если всё пройдёт удачно, то система оповестит вас об успешном создании.apk файла.
Закидываем получившийся файл на телефон и устанавливаем любимым менеджером, предварительно разрешив в настройках системы установку сторонних приложений. Либо устанавливаем программу на эмулятор через adb. Скажу сразу: на эмуляторе всё ужасно тормозит, на телефоне же (проверял только на HTC Wildfire S) дела обстоят намного лучше, но всё равно проблемы есть. Например, у меня файл получился весом в целых 34 Mb, так что установка шла достаточно долго. После запуска нас приветствует экран заставки, и через некоторое время запускается сама конфигурация. (за фото извините: фоткал на калькулятор)

Пока новые возможности выглядят весьма «сыро»: ограничение функционала 1С, невозможность использования SDK напрямую, плюс большой размер и некоторые «тормоза»… Но сама возможность написать программу для мобильной платформы на 1С немного удивляет! Лично у меня двоякое мнение об этом. С одной стороны, эта «фича» пока больше похожа на игрушку, ибо отсутствует возможность сделать что-то по-настоящему стоящее. Но с другой стороны, это явно большой шаг компании 1С в сторону мобильности, и если данное направление будет активно развиваться, то это может принести немало пользы. Как пример - можно экипировать кладовщиков планшетами. Если будет возможность использовать «бортовые» камеры, то можно освободится от устройств считывания, и сканировать коды непосредственно с планшета, можно снабдить ими водителей машин, и посылать задания на перевозку или отслеживать маршрут автомобиля и время в движении. Вариантов, в общем-то, много, и то, что это всё будет в единой информационной системе, весьма порадует заказчиков/руководителей, ведь у них почему-то всегда присутствует панический страх перед использованием большого количества различных систем, они хотят использовать весь функционал на единой платформе.

Еще совсем недавно мобильная платформа 1С Предприятие 8.3 распространялась компанией 1С только среди платных подписчиков . Но не так давно компания 1С пересмотрела свою политику по данному вопросу и теперь электронная версия мобильной платформы распространяется бесплатно вместе с .

Что такое мобильная платформа 1С 8.3?

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

Мобильная платформа 1С Предприятия 8.3 - это совокупность программ, позволяющих устанавливать и запускать конфигурации (приложения) на смартфонах и планшетах под управлением Google Android или Apple iOS.

Самое главное преимущество мобильной платформы 1С заключается в том, что приложение (конфигурация) разрабатывается сразу для обеих мобильных операционных систем, а затем просто устанавливается в мобильное устройство. Таким образом, написав мобильное приложение на 1С, мы сразу же можем установить его всем сотрудникам компании вне зависимости, на какой операционной системе (Android или iOS) работает их телефон или планшет.

Важно! Для разработки мобильных приложений мы настоятельно рекомендуем использовать платформу 1С версии не ниже 8.3.4.482. Учебная версия платформы 1С Предприятие 8.3.4.482 включена в состав данного дистрибутива мобильной платформы 1С. Ознакомиться с ограничениями учебной версии платформы можно

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

В данной статье по шагам постараюсь описать основные моменты работы с мобильной платформой(что-то вроде мини F.A.Q. для начала разработки под мобильную платформу).

Итак начнём:
1.Устанавливаем стационарную платформу 1С, обязательно при установке указываем компоненту «Модули расширения веб-сервера».
2.Устанавливаем веб-сервер Apache 2.2 c настройками по-умолчанию.
3.Создаём пустую информационную базу с настройками по-умолчанию и открываем её в режиме конфигуратора.
4.В конфигураторе задаём «назначение использования» — мобильное устройство. Так же можно выбрать варианты персональный компьютер, или гибридный вариант «мобильное устройство + персональный компьютер». В случае выбора гибридного варианта «мобильное устройство + персональный компьютер» нам следует разграничивать код который будет выполняться на ПК и на мобильном устройстве. Для разграничения выполнения кода служат директивы препроцессора «#Если МобильноеПриложениеКлиент Тогда» и «#Если ТонкийКлиент Тогда». Директивы препроцессора определяют контекст кода 1С. Следует понимать, что набор объектов конфигурации доступных для использования значительно ограничен в мобильной платформе по-сравнению со стационарной платформой. К примеру в мобильной платформе у нас недоступна работа с планами видов характеристик, планами счетов, регистрами бухгалтерии, а также отчётами(недоступные ветки метаданых выделены серым цветом).

5.Обновляем конфигурацию и публикуем на веб-сервере.


6.Заходим в браузере по адресу http://127.0.0.1/MobPril/ и видим XML-файл(т.е. вся наша опубликованная конфигурация хранится на веб-сервере в виде XML-файла).


7.Ставим виртуальную машину «VMware Workstation»(или любую другую). Разворачиваем на виртуальной машине операционную систему Android.

P.S. Лучше вместо виртуальной машины использовать реальное устройство под управлением Android так как реальное устройство всегда будет работать быстрее и стабильнее, чем виртуальная машина.
8.Устанавливаем на Android мобильную платформу 1С.

Для того чтобы передать файлы установщика мобильной платформы на Android удобно воспользоваться программой «Google диск»(для этого нужно поставить программу «Google диск» на Android(из Playmarket) и программу «Автозагрузка и синхронизация» на персональный компьютер). Если ставим платформу на виртуальную машину тогда нам нужен файл «1cem-x86.apk «, если ставим платформу на реальное мобильное устройство под управлением Android тогда нам нужен файл «1cem-arm.apk «.


9. Далее подключаем опубликованное на веб-сервере приложение на наше мобильное устройство.
Чтобы узнать ip-адрес компьютера на котором установлен веб-сервер Apache достаточно набрать в командной строке команду ipconfig (или посмотреть в сведениях о сетевом подключении). Если при подключении у вас возникает ошибка — попробуйте отключить антивирус и брандмауэр.

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



10.Напишем наше первое приложение «Привет МИР!!!».

Для этого выполним следующие шаги:

10.1.Создадим общую форму и разместим на ней декорацию.

10.2.Откроем рабочую область начальной страницы и добавим туда общую форму созданную на шаге 10.1.

Так же в качестве шаблона начальной страницы укажем — одна колонка(в мобильном приложении доступна только 1 колонка).

10.3.Запустим наше мобильное приложение и увидим надпись «Привет МИР!!!».


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

Создадим справочники «Номенклатура», «Характеристики номенклатуры», «Контрагенты» и документ «Поступление товаров» и посмотрим как они отображаются в мобильной платформе.

Ниже на скриншотах представлены формы списков справочников «Номенклатура» и «Контрагенты».


Форма документа «Поступление товаров»:

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

Форма ввода новой строки в табличную часть товары:

Форма списка документов «Поступление товаров»:

Таким образом мы имеем 2 конфигурации — конфигурация мобильного устройства с ограниченным набором объектов и конфигурация стационарного компьютера которые обмениваются.
Следует понимать, что пропускная способность мобильного интернета достаточно низкая и передача больших объёмов данных между мобильным устройством и стационарным компьютером занимает большое количество времени.

В данной статье мы использовали платформу для разработчика и 2 конфигурации(конфигурация мобильного устройства с ограниченным набором объектов и конфигурация стационарного компьютера). Такой подход нужен только при разработке приложения, в реальной же практике мы скомпилируем.apk файл мобильного приложения и загрузим его в Playmarket. Пользователь будет скачиваит apk файл, устанавливать его на мобильное устройство и пользоваться полностью автономным мобильным приложением.

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

В предыдущей статье мы рассказывали о том, что такое мобильная платформа 1С:Предприятия – набор инструментов и технологий для быстрой кросс-платформенной разработки мобильных приложений. Сегодня мы расскажем, какие приложения делаются с помощью мобильной платформы как самой фирмой «1С», так и нашими партнерами и сторонними разработчиками.


Перечислены лишь несколько приложений; чтобы написать обо всех приложениях, не хватит одной статьи, даже если говорить только о приложениях, созданных фирмой «1С». Это и мобильный клиент 1С:Документооборота, и мобильные клиенты 1С:БухОбслуживания и 1С:Бухгалтерии (работают с облачными версиями 1С:Бухгалтерии или 1С:Предпринимателя, находящимися в нашем облачном сервисе http://1cfresh.com), и Монитор ERP (широкий спектр отчетов, строящихся на основании данных из 1C:ERP или 1С:Управления Торговлей), и 1С:Заказы (приложение для работы с клиентскими заказами «в полях»), и 1С:Мобильная Касса, и другие.

Перед описанием приложения мы приводим его краткую характеристику:

  • Было приложение создано по заказу клиента или это тиражируемое приложение, распространяемое через магазины приложений
  • Количество установок приложения; может быть неизвестно для тиражируемых приложений, т.к. не все магазины приложений открывают эту информацию
  • Мобильные ОС, на которых распространяется приложение. Приложения, созданные на мобильной платформе 1С:Предприятия, работают сразу на трех мобильных ОС (Android, iOS, Windows), но для заказных приложений это может быть одна ОС, т.к. заказчики часто ограничиваются у себя в компании одной моделью мобильных устройств.
  • Объем разработки (если известен). Объем работы (в человеко-днях), затраченный на выпуск первой рабочей версии приложения.

1С:Управление Небольшой Фирмой

Тип решения: тиражное, бесплатное
Количество инсталляций: свыше 170.000
Мобильные ОС: Android, iOS, Windows Phone

Мобильная 1С:Управление Небольшой Фирмой (сокращенно УНФ)- мобильная версия нашей популярной программы для ведения дел небольшой организации. Программа автоматизирует торговую деятельность, позволяет вводить и распечатывать заказы на покупку и продажу, вести базу покупателей и поставщиков, вести каталог товаров и их учет (цены, остатки на складе), встроенная фотокамера устройства используется для фотографий товаров и распознавания штрих-кодов. Есть несколько типов отчетов. Счета на оплату можно отсылать клиентам через встроенный почтовый клиент мобильного устройства или через SMS.

Приложение оффлайновое - все данные оно хранит на мобильном устройстве. Есть опция синхронизации с «большим» приложением 1С: УНФ, расположенным на сервере или в облаке. Приложение бесплатное, новая версия дает также бесплатный доступ к «большой» версии 1С: УНФ, расположенной в облачном сервисе http://1cfresh.com ; в случае бесплатного доступа три мобильных устройства могут синхронизировать свои данные с облачным приложением (а через него – между собой), а один пользователь – работать непосредственно с «большой» версией УНФ в облаке через тонкого или веб-клиента (функциональность «большого» УНФ в этом случае ограничена до функциональности мобильного приложения). В случае покупки облачного УНФ с ним может работать неограниченное количество мобильных устройств, и все ограничения по его функциональности снимаются.

Многие пользователи мобильного УНФ пользуются только мобильной версией приложения – для их задач функциональности мобильной версии вполне достаточно. Многие из пользователей до работы с мобильным УНФ были незнакомы с продукцией 1С – им просто было нужно мобильное приложение для автоматизации торговой деятельности (учет заказов, простой расчет рентабельности и т.п.), и они нашли УНФ в AppStore или GooglePlay. По мере развития бизнеса и роста потребностей в автоматизации часть пользователей «дорастают» до «большой» версии УНФ и приобретают ее в коробочном или облачном варианте.

Мобильное приложение для компании Вкусвилл

Тип решения: заказное
Количество инсталляций: около 200
Объем разработки: 5 человеко-месяцев (выпуск первой версии)
Мобильные ОС: Android

У сети магазинов натуральных продуктов для здорового питания «Вкусвилл» с продукцией «1С» отношения интересные. Систему для управления бизнесом компании «Вкусвилл» изначально написал на «1С:Предприятии» сам собственник бизнеса , Андрей Кривенко. Позже поддержку и развитие системы взяла на себя компания «Автоматизация и Консалтинг» . Она же, по заказу «Вкусвилла», сделала и мобильное приложение на платформе «1С».

Лучше здесь процитировать самого Андрея Кривенко, владельца компании (интервью сайту «РБК»):

- Один из последних больших проектов - мы внедрили в нашу операционную систему мобильный телефон. Мы запретили офисным сотрудникам бывать в магазинах. Сейчас у нас в каждом магазине все фотографии стекаются в единую систему. Это позволяет контролировать все возвраты, списания, какие-то нюансы по качеству - все идет через телефон. Если в магазине что-то сломалось, не нужно объяснять - сделал фото, мы тут же в центре увидели. На складе через сканеры телефонов контролируем всю приемку товара. У водителей контролируем разгрузку. Такой большой круг мы замкнули.
- Сколько это вам стоило?
- Это все стоило копейки. Например, телефоны нам «МегаФон» продал по 1 руб., софт - это все на 1С. Примерно в десять раз дешевле, чем стоимость, по которой пишут мобильные приложения. Это обычная система 1С, только запускается не на компьютере, а на мобильном телефоне. Весь проект - несколько миллионов рублей. Экономия - миллионы в месяц.

От начала разработки до выхода пилотной версии прошло 2.5 месяца, до первой рабочей версии – 5 месяцев. Характерная особенность приложения – большой объем фотографий, выполняемых камерой мобильного устройства. В ходе одного отчета, ежедневно отправляемого из магазина в головной офиса, объем фотографий варьируется от 300 Мб до 1 Гб. Также приложение использует PUSH уведомления – с их помощью сервер сообщает мобильным приложениям о получении для них служебных сообщений (например, об изменениях в правилах работы магазинов).

Планирование оперативного управления производством

Тип решения: заказное
Количество инсталляций: свыше 100
Объем разработки: 4 человеко-месяца
Мобильные ОС: iOS

Один из наших клиентов, АО «АтомЭнергоМаш технологии», внедрил на своих предприятиях решение «1С:Управление производственным предприятием» . В ходе эксплуатации решения возникла необходимость работать с решением непосредственно из цехов предприятия.

Один из видов продукции, выпускаемой предприятиями «АтомЭнергоМаш» - это комплектующие для атомных реакторов. Огромные изделия, размером с самосвал, изготавливаются в цехах предприятий, проходят обработку, покраску, ряд других операций, и отгружаются заказчикам. Каждая операция должна фиксироваться в программе. Но, по соображениям техники безопасности, стационарные рабочие места в цехах оборудовать было нельзя.

Было принято решение – вести работу в цехах с мобильных устройств. За 4 человеко-месяца (часть времени заняла постановка задачи) партнером 1С – компанией «Неосистемс» - было создано мобильное приложение для планирования оперативного управления производством, синхронизирующееся с серверным решением «1С:Управление производственным предприятием». Приложение производит, в частности, поиск номенклатуры изделия по штрих-коду (считываемому камерой мобильного устройства), обеспечивает доступ к технологическим картам, осуществляет выдачу заданий сотрудникам, позволяет отмечать факты выполнения производственных и контрольных операций. Более 100 сотрудников компании используют мобильное приложение, в том числе в тех местах на производстве (горячие цеха, склады и т.п.), где невозможно установить стационарные рабочие места или где требуется повышенная мобильность сотрудников.

Мобильный Торговый Агент

Тип решения: заказное
Объем разработки: 6 человеко-дней (выпуск первой версии)
Мобильные ОС: Android

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

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

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

Если нет готового решения удовлетворяющего ВСЕ требования клиента, решение очевидно – необходимо разработать индивидуальное решение для конкретного заказчика. Но что делать, если бюджет и сроки весьма сжаты? Вот тут-то мы и подошли к вопросу о технологии.

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

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

Чтобы не изобретать велосипед, за основу приложения был взят демо-пример mademo.cf, поставляемый фирмой 1С со своей мобильной платформой. Вариантов обмена мобильного приложения с центральной базой немало, но т.к. стояла задача получения ответа realtime, обмен с базой было решено выполнять с использованием web-сервисов. В указанном демо-примере обмен уже был реализован именно таким образом. Минус заключался в том, что обмен с центральной базой выполнялся объектами с идентичными метаданными. В моем же случае в мобильной базе состав реквизитов был существенно урезан, поэтому пришлось доработать процедуры выгрузки/загрузки данных с использованием конвертации данных. После решения этой задачи мне предстояло проверить, как быстро сможет мобильная платформа эти данные отображать и обрабатывать. Набросав примитивную форму подбора, я убедился в том, что платформа успешно справилась и с этой задачей. Осталось дело за малым - набросать нужные формы и заложить в них необходимый требуемый заказчику функционал, кстати, стоит отметить, что демо-пример от 1С содержит примеры всех особенностей работы мобильной платформы – это и работа с мультимедиа, с геопозиционированием, а так же с функциями мобильного устройства (набор номера из приложения 1С). При этом данные возможности постоянно расширяются с появлением свежих платформ.
Из особенностей, которые хотелось бы отметить, я выделю следующее:

  • Разработка ведется в привычном Конфигураторе 1С, не пришлось тратить время на изучение новых средств разработки.
  • В возможности платформы зашит большой функционал учитывающий работу на мобильном устройстве.
  • Очень удобное обновление конфигурации мобильных устройств. Буквально 1 клик и на всех устройствах уже новая конфигурация, что очень сильно разгружает отдел ИТ.
  • Возможность использования web сервисов для обмена.
  • Скорость работы с большими объемами данных (при грамотной организации модели данных).
Скорость работы нашего приложения полностью удовлетворила клиента, так что поставленную цель можно считать достигнутой. Первый обмен с центральной базой занял примерно 10 минут (8 из которых заняла загрузка изображений), дальнейшие регулярные обмены занимают 10-30 секунд, что в большинстве своем зависит от качества интернет-соединения. В ближайших планах - написание нового функционала для реализованного приложения. Реализация данного решения заняла порядка 50 часов, при условии, что пришлось потратить значительную часть времени на некоторые эксперименты, связанные с большим объемом данных. По финансовым затратам разработка нового приложения оказалась ниже, чем оцениваемые клиентом затраты на покупку адаптированных решений, плюс данное решение всегда можно доработать или поправить с весьма незначительными трудозатратами.

1С:Миниденьги

Тип решения: тиражное, платное
Мобильные ОС: iOS, Android


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

Разработка мобильных приложений всегда ассоциируется с необходимостью изучения дополнительных технологий. А что если пересмотреть вопрос и воспользоваться уже знакомыми инструментами?

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

К середине 2006 года компания представила релиз нового продукта с многообещающим названием «1С:Предприятие 8. Расширение для карманных компьютеров». У разработчиков 1С, разглядевших перспективы 8-й платформы появилась надежда, что теперь на одном инструменте без особого труда стало возможным выполнять разработку под популярную в те годы мобильную операционную систему «Windows Mobile».

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

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

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

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

приложений с треском провалилась.

Шаг вперед

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

«1С» полностью переосмыслила подход к решению мобильной «теоремы» и учла ошибки предыдущего неудачного продукта. Результатом стал абсолютно новый инструмент, не имеющий ничего общего с предшественником и ориентированный на самые актуальные мобильные платформы – Android и iOS.

Мобильные приложения в стиле 1С

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

Для работы вам потребуется последний релиз платформы «1С:Предприятие 8.3». Учебная версия дистрибутива доступна на официальном сайте 1С. Для воссоздания примера ее возможностей более, чем достаточно.

Помимо платформы «1С:Предприятие 8.3» нам потребуются ряд дополнительных инструментов. В статье будет рассматриваться пример разработки приложения для Android. В связи с этим придется загрузить: Android SDK и WEB-сервер Apache . Первый компонент содержит все необходимое для сборки приложения и эмулятор для тестирования, а WEB-сервер пригодится для быстрой загрузки приложения на мобильную ОС.

Также нам потребуется поставка «Мобильной платформы разработчика». Она содержит конфигурацию для упрощения процесса сборки созданного мобильного приложения, а также мобильную платформу разработчика. Ее необходимо установить на мобильном устройстве или эмуляторе.

Для сборки приложения, готового к распространению через Google Play потребуется загрузить Apacheant и JavaJDK . Эта тема выходит за рамки статьи, поэтому узнать подробности о работе с этими инструментами и сборкой приложения вы можете в соответствующем разделе моего .

Конфигурируем инструменты

Платформа «1С:Предприятие 8.3 » и web-сервер Apache поставляются с инсталляторами и устанавливаются стандартным образом. Android SDK необходимо просто разархивировать в отдельную директорию и запустить “sdk manager.exe ”. Перед вами появится окно с выбором доступных пакетов для установки. Для тестирования, рассматриваемого в рамках статьи примера, потребуется выбрать и установить: Android SDK Tools , Android Platform Tools , SDK Platform API 17 .

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

Первая мобильная конфигурация

В главном меню конфигуратора найдем раздел «Конфигурация » и выберем пункт «Открыть конфигурацию». Дерево конфигурации (объектов, из которых будет состоять будущее приложение) отобразится в левой части окна. Выделите в нем корень конфигурации и нажмите сочетание клавиш «Alt + Enter ». В правой части окна конфигуратора откроется редактор свойств.

Назовем конфигурацию «TODO » и в свойстве «Назначение использования» укажем «Мобильное устройство ». Обратите внимание, выполнив последнее действие, некоторые узлы дерева конфигурации станут неактивными. К сожалению, воспользоваться всеми объектами метаданных на мобильной платформе не получится.

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


Процедура ДобавитьЗадачу(Задача) Экспорт МенеджерЗаписи = СоздатьМенеджерЗаписи(); МенеджерЗаписи.Период = ТекущаяДата(); МенеджерЗаписи.Задача = Задача; МенеджерЗаписи.Статус = Задача.Статус; МенеджерЗаписи.Записать(); КонецПроцедуры

Листинг 2. Код функции «ПолучитьСписокНеЗакрытых Задач()

Функция ПолучитьСписокНеЗакрытыхЗадач() Экспорт Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | СостояниеЗадачСрезПоследних.Задача КАК Задача, | СостояниеЗадачСрезПоследних.Задача.ДатаИсполнения КАК ДатаИсполнения |ИЗ | РегистрСведений.СостояниеЗадач.СрезПоследних(&ТекущаяДата, Статус <> ЗНАЧЕНИЕ(Перечисление.СтатусыЗадач.Выполнена)) КАК СостояниеЗадачСрезПоследних | |УПОРЯДОЧИТЬ ПО | ДатаИсполнения УБЫВ"; Запрос.УстановитьПараметр("ТекущаяДата", ТекущаяДата()); Возврат Запрос.Выполнить().Выгрузить(); КонецФункции

С получением данных из регистра сведений и их записью разобрались, теперь научим наш справочник работать с регистром. Для этого в дерево конфигурации добавим общий модуль с именем «РаботаСЗадачами ». Можно обойтись и без него, но мне сразу хочется акцентировать внимание на возможность разбивки кода по модулям. Многие 1С-разработчики до сих пор пренебрегают этой рекомендацией и всю логику описывают в одном месте, тем самым затрудняя последующее сопровождения кода. Создадим в модуле новую процедуру «СоздатьНовуюЗадачу » (см. листинг 3).

Листинг 3. Код процедуры «СоздатьНовуюЗадачу»

Процедура СоздатьНовуюЗадачу(Ссылка) Экспорт Если Ссылка.ЭтоГруппа Тогда Возврат; КонецЕсли; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | СостояниеЗадачСрезПоследних.Статус |ИЗ | РегистрСведений.СостояниеЗадач.СрезПоследних(&ТекущаяДата, Задача = &Задача) КАК СостояниеЗадачСрезПоследних"; Запрос.УстановитьПараметр("ТекущаяДата", ТекущаяДата()); Запрос.УстановитьПараметр("Задача", Ссылка); Результат = Запрос.Выполнить().Выбрать(); Если Результат.Следующий() Тогда Если Результат.Статус <> Ссылка.Статус Тогда РегистрыСведений.СостояниеЗадач.ДобавитьЗадачу(Ссылка); КонецЕсли; Иначе РегистрыСведений.СостояниеЗадач.ДобавитьЗадачу(Ссылка); КонецЕсли; КонецПроцедуры

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

Последним штрихом откроем форму элемента справочника «Задачи» и создадим обработчик события «ПослеЗаписиНаСервере ». В нем напишем вызов процедуры, описанной в третьем листинге:

РаботаСЗадачами.СоздатьНовуюЗадачу(ТекущийОбъект.Ссылка);

Работаем над интерфейсом

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

Найдем в дереве конфигурации узел «Общие формы » и добавим новую форму с именем «РабочийСтол ». Откроем созданную форму в конструкторе интерфейса и добавим реквизит типа «ТаблицаЗначений ». Назовем его «ОткрытыеЗачи». Таблица будет содержать две колонки – «Задача » (СправочникСсылка.Задачи) и «ДатаИсполнения » (Дата).

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

Для созданной таблицы, в инспекторе свойств установим флажок для свойства «Только просмотр », а свойству «Положение Командной Панели » укажем значение «Нет». Мы будем заполнять таблицу динамическими сведениями, поэтому смысла в редактировании со стороны пользователя нет.

Теперь опишем у формы обработчик события «ПриСозданииНаСервере». Добавим в него одну строку кода:

ОткрытыеЗадачи.Загрузить(РегистрыСведений.СостояниеЗадач.ПолучитьСписокНеЗакрытыхЗадач());

В коде мы обращаемся к описанной нами процедуре «ПолучитьСписокНеЗакрытыхЗадач » и результат ее выполнения помещаем в таблицу.

Вернемся к конструктору формы и добавим группу типа «Обычная группа без отображения» с двумя кнопками: «Создать » и «Обновить ». Свойству «Группировка » у добавленной группы зададим значение «Горизонтальная». Для более выразительного оформления кнопок добавим изображения и изменим шрифт по умолчанию.

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

Все новые команды формы создаются на одноименной вкладке «Команды ». Принцип прост – добавляем новую команду, описываем в ней код действия и затем связываем команду с интерфейсом, в нашем случае с кнопкой.

Не стоит также забывать, что мы разрабатываем управляемое приложение, поэтому надо четко разграничивать клиентский и серверный код. При нажатии кнопки будет контекст «НаКлиенте », а данные из базы будем получать уже с сервера. В коде это выглядит так:

&НаКлиенте Процедура ОбновитьСписокЗадач(Команда) ОбновитьСписок(); КонецПроцедуры &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) ОткрытыеЗадачи.Загрузить(РегистрыСведений.СостояниеЗадач.ПолучитьСписокНеЗакрытыхЗадач()); КонецПроцедуры

Теперь определим нашу форму рабочего стола в качестве области начальной страницы. Откроем свойства конфигурации (выделяем самый верхний узел и нажимаем «Alt+Enter ») и для свойства «Рабочая область начальной страницы» установим значение «Одна колонка », после добавим в список нашу форму «РабочийСтол ».

Приложение полностью готово и самое время протестировать его в работе. Попробуйте запустить пример и создать несколько задач со статусом отличным от «Выполнена ». Регистр сведений пополнился новыми записями (это можно посмотреть через пункт меню «Все функции ») и часть из них выводится на рабочем столе.

Приземляемся на Android

Конфигурация отлично работает на десктопе, и теперь самое время протестировать ее на эмуляторе мобильной ОС. Для подготовки нового эмулятора запустите командный интерпретатор (cmd.exe ) и перейдите в директорию «toos» дистрибутива с Android SDK. Выполните команду «android.bat avd », которая запустит менеджер виртуальных Android устройств. В нем нажмите кнопку «Create» и в появившемся окне укажите параметры виртуального устройства. В своем рабочем окружении я решил эмулировать Nexus S с Android версии 4.2.2. (API Level 17).

После создания устройства сразу же запустим его. Пока выполняется загрузка android, вернемся в конфигуратор и опубликуем наше приложение на web-сервере. В главном меню конфигуратора выбираем пункт «Конфигурация » -> «Мобильное приложение » -> «Публиковать ». В окне настроек публикации указываем имя приложения (может быть любым), web-сервер (в нашем окружении он должен быть один) и каталог для хранения настроек.

Указав в качестве имени «todo-mobile », приложение будет доступна по адресу – «http://host/todo-mobile ». Нажимаем «ok» и попробуем обратиться к опубликованному приложению с помощью браузера. В случае успеха, сервер отдаст XML-код созданной конфигурации.

Возвращаемся к эмулятору и загрузим в него приложение с мобильной платформой разработчика. Сам файл приложения доступен вместе с поставкой мобильной платформы разработчика и называется «1cem-arm.apk». Для установки этого приложения в эмуляторе воспользуемся утилитой «adb.exe » из директории «platform-tools »: adb.exe install –r 1cem-arm.apk .

После успешной установки, открываем в эмуляторе список приложений и запускаем мобильную платформу разработчика. В открывшемся окне нажимаем «Add application » и в поле «адрес» указываем URL к нашему web-серверу. У меня это http://192.0.168.106/todo-mobile . Нажимаем «Add » и наша конфигурация успешно перемещается на мобильную платформу. Приложение готово к работе. Протестируйте результат и возвращайтесь в конфигуратор, самое время снабдить приложения «мобильным функционалом».

Отправка SMS/MMS сообщений

Функции для работы с SMS/MMS сообщениями мобильными платформами поддерживаются по-разному. Например, при работе приложения на Android, у разработчика есть возможность оформить подписку на SMS и получать доступ к новым сообщениям сразу после получения. Увы, но на iOS эта же возможность отсутствует, поэтому во время разработки документация должна быть под рукой.

Для отправки SMS сообщений предусмотрен объект SMSСообщение . Рассмотрим пример:

&НаКлиенте Процедура ОтправитьSMSСообщение(Получатель, ТекстСообщения) НовоеСообщение = Новый SMSСообщение(); НовоеСообщение.Текст = ТекстСообщения; НовоеСообщение.Получатели.Добавить(Получатель); СредстваТелефонии.ПослатьSMS(НовоеСообщение); КонецПроцедуры

Код достаточно простой и вряд ли нуждается в комментариях. Теперь посмотрим на оформление подписки на входящие сообщения:

&НаКлиенте Процедура ПодключитьОбработчикПолученияСообщений() ПодпискаНаСообщения = Новый ОписаниеОповещения(«ОбработкаНовыхСообщений», ЭтотОбъект); СредстваТелефонии.ПодключитьОбработчикSMSСообщений(ПодпискаНаСообщения); КонецПроцедуры &НаКлиенте Процедура ОбработкаНовыхСообщений(Сообщение, ДополнительныеПараметры) //Обработка нового сообщения //Сообщение.Отправитель, Сообщение.Текст; КонецПроцедуры

Процедура «ОбработкаНовыхСообщений » будет вызываться каждый раз при получении новой SMS. Через параметр «Сообщение » передаётся объект типа «SMSСообщение » и мы без труда можем получить текст сообщения и информацию об отправителе.

Работа с MMS сообщения выполняется аналогичным образом. Сначала мы создаем SMSСообщение, а потом добавляем к нему вложение (например, изображения). Таким простым действием SMS превращается в MMS:

НовоеСообщение= Новый SMSСообщение(); Вложение = Новый MMSВложение; Вложение.Данные = Картинка; Вложение.ТипСодержимого = "image/jpeg"; MMSСообщение.Вложения.Добавить(Вложение);

Совершаем звонки из мобильного приложения

Программное совершение звонка осуществляется с помощью метода «НабратьНомер» глобального объекта «СредстваТелефонии». Перед вызовом метода крайне желательно проверить возможность совершения звонка:

Если СредстваТелефонии.ПоддерживаетсяНаборНомера() Тогда СредстваТелефонии.НабратьНомер(НомерТелефона, ВызватьСразу); КонецЕсли;

Параметр «ВызватьСразу » влияет на выполнение набора номера. Когда она равен «Истина », набор номера выполняется автоматически через стандартное приложение совершения звонков. При значении «Ложь» пользователь также увидит стандартный интерфейс приложения набора номера, но для совершения вызова потребуется нажать кнопку «Вызвать ».

Журнал звонков

Мобильная платформа позволяет разработчику взаимодействовать с журналом звонков. Например, вы без особого труда можете получить список исходящих, пропущенных или входящих звонков. Функция поддерживается только на Android:

ЖурналЗвонков = СредстваТелефонии.ПолучитьЖурналЗвонков(); Отбор = Новый ОтборКомпоновкиДанных; ЭлементОтбора = Отбор.Элементы.Добавить(Тип(«ЭлементОтбораКомпоновкиДанных»)); ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(«ТипЗвонка»); ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанныз.Равно; ЭлементОтбора.ПравоеЗначение = ТипЗвонкаЖурналаЗвонков.Пропущенный; ЭлементОтбора.Использование = Истина; СписокЗаписейЖурналаЗвонков = ЖурналЗвонков.НайтиЗаписи(Отбор); //В СписокЗаписейЖурналаЗвонков будет коллекция записей

Геопозиционирование

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

//Предоставим выбор провайдера платформе ИдеальныйПровайдер = СредстваГеопозиционирования.ПолучитьСамогоТочногоПровайдера(); Координаты = СредстваГеопозиционирования.ПолучитьПоследнееМестоположение(ИдеальныйПровайдер); //Если координаты получали давно, то обновляем Если Координаты = Неопределено ИЛИ ТекущаяДата() – Координаты.Дата > 3600 Тогда СредстваГеопозиционирования.ОбновитьМестоположение(ИдеальныйПровайдер, 60); Координаты = СредстваГеопозиционирования.ПолучитьПоследнееМестоположение(ИдеальныйПровайдер); КонецЕсли;

Работа с мультимедийными функциями

Разработчику доступна возможность делать снимки, видеозаписи, аудиозаписи средствами встроенного языка: СделатьФотоснимок (), СделатьВидеозапись (), СделатьАудиозапись ().

Под какую мобильную ОС лучше разрабатывать на 1С?

Несмотря на мою любовь к технике Apple, создавать мобильные приложения средствами платформы 1С лучше всего под Android. Причин тут несколько, но самая главная из них – поддерживаемые функции. К сожалению, под iOS многие нужные вещи не поддерживаются. Например, отсутствие возможности ставить программную подписку на SMS сообщения или взаимодействовать с журналом звонков – могут сделать невозможным реализацию некоторых идей. Android в этом плане более дружелюбен. Не стоит также забывать о стоимости самих устройств. Не каждая компания будет готова разориться на приобретение мобильных устройств от Apple.

Вместо завершения

Платформа «1С:Предприятие 8 » на практике доказала о своей готовности стать простым инструментом для разработки корп. Приложений под мобильные платформы. Рассмотренные в статье примеры – лишние тому подтверждение. Вовсе необязательно тратить ресурсы на изучение нативных инструментов, если функционал приложения укладывается в возможности мобильной платформы и в компании доминируют продукты фирмы «1С».