Мобильный клиент: установка, отладка, сборка под Android". Пример разработки мобильного приложения с помощью "Сборщика мобильных приложений" Пример разработки мобильного приложения для курьера интернет-магазина с помощью "Сборщика мобильных приложений"

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С под IOS, пользуясь при этом бесплатным аккаунтом разработчика Apple.

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

Согласно лицензионному соглашению на внутреннее (бесплатное) использование продуктов разработки IOS, приложение нельзя распространять, продавать и т.д. (Лицензионное соглашение с Программой разработчиков Apple). Можно лишь тестировать разработанное ПО на зарегистрированных устройствах Apple (то есть на ваших личных IPhone, IPad). Отсюда вытекает вывод - разработчик (с бесплатным аккаунтом) может тестировать свое приложения только на личных устройствах, распространять приложение в сети не получится.

Готовое приложение IOS представлено в виде файла с расширением *ipa. В нашем случае, разработчик сможет только загрузить его на свое устройство, подключенное к компьютеру с Mac OS. В таком исполнении приложение не вечно, оно ограничено во времени (у меня приложение работало не более 7-ми дней, потом просто не запускалось).

Итак, что нам потребуется для сборки мобильного приложения 1С под IOS:

1. Программное обеспечение:

  • Основная ОС для подготовки приложения 1С - это Windows 7. В целом можно использовать виртуальную машину.
  • Программа для создания виртуальной машины. Я использовал VMware 12.5.7
  • Образ Mac OS. Лучше использовать версию ОС как можно новее. В моем случае это "Mac OS Sierra 10.12.6". Кстати можно скачать готовый образ под VMware, в интернете ссылок море.
  • Для компиляции приложения на Mac OS необходимо скачать Xcode (скачать его можно прямо из виртуальной машины, ну или отдельно (так будет быстрее)). Здесь также лучше всего использовать версию поновее. В моем примере это версия 9.0.1.
  • Конфигурацию для сборки мобильных приложений 1С. Обычно она идет вместе с дистрибутивом 1С.

2. Тестовая конфигурация 1С:

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

2.2. Выполним сохранение разработанной конфигурации с помощью команды "Конфигурация" -> "Мобильное приложение" -> "Записать в файл". На выходе мы должны получить файл формата *xml , в котором будет сохранена структура нашей конфигурации.

3. Настройка сборщика мобильных приложений

Подробно рассказывать не буду, так как это не один раз публиковали на инфостарте. Напомню лишь важные моменты:

  • Необходимо правильно ввести данные для подключения к компьютеру с ОС iOS

Проверить доступность в сети можно через командную строку с помощью команды: Ping + «Имя компьютера в сети». Например « ping mac - admin »

А также проверить правильность указанного логина и пароля (с помощью утилиты Putty). Выполнить это можно с помощью команды: " E :\ Program Files \ PyTTY \ plink . exe " - ssh - l admin - pw 123 mac - admin

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

4. Перенос приложения на мобильное устройство.

Для этого необходимо:

Скопировать архив с проектом мобильного приложения на Mac и распаковать его

Открыть проект в Xcode

В левом верхнем углу открывшегося проекта выбрать устройство с ОС iOS (в моем случае это Iphone)

Начать компиляцию приложения. при этом приложение автоматически перенесется на подключенное устройство

Внимание! Подключайте устройство к тому порту USB, которое выбрано в настройках виртуальной машины. Если в настройках указан порт USB 2.0, то подключайте устройство в порт USB 2.0.

После чего можно открыть свое устройство и посмотреть что получилось.

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

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

Впервые фирма «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С».

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

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

Я предполагаю, что Вы знакомы с установкой мобильного приложения и сборщиком мобильных приложений, а также, что у Вас уже установлен Android SDK, Apache Ant и прочее. Статей на эту тему уже полно.

Возьмем для наших экспериментов демонстрационную конфигурацию «Управляемое приложение» и, для начала, попробуем подключить ее в готовый мобильный клиент. В моем случае, дистрибутив клиента - это файл «1cem-client-arm.apk». Предварительно на смартфоне должна быть включена возможность установки приложений из неизвестных источников. У меня это выглядит так:

Мобильный клиент - это аналог веб-клиента, поэтому, для доступа к базе, ее необходимо опубликовать на веб-сервере. Здесь все стандартно, я публикую на веб-сервере IIS с именем “demo”. База у меня файловая, так что нужно дать права на каталог пользователю IUSR. Радует, что система сама об этом напомнила.

Подключаем базу в мобильном клиенте:

Сразу в базу войти, конечно же, не удалось J Все дело в том, что у Администратора открывается обработка по работе с электронной почтой и пытается установить значок для панели задач, которой в мобильном клиенте нет. Поскольку данной функциональности также нет и в веб-клиенте, код обрамлен в директивы компиляции «#Если Не ВебКлиент Тогда». Нам просто необходимо найти все места, где используется данная директива и поменять ее на «#Если Не ВебКлиент И Не МобильныйКлиент Тогда». Для начала этого вполне достаточно, и мы можем наконец-то увидеть работу мобильного клиента. Командный интерфейс выглядит следующим образом:

А вот список контрагентов:

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

У меня нашлось 84 ошибки, включая неподдерживаемые объекты метаданных. Плюс те три места в коде, которые я уже ограничил директивами. Так что придется еще поработать над адаптацией, но это конечно не то же самое, что писать мобильное приложение с нуля.

Запуск под другими ролями происходит также, только необходимо установить право запуска мобильного клиента.

Если мы не понимаем в чем же ошибка - нам поможет отладка. Она в мобильном клиенте есть, но используется только отладка по HTTP. У меня база файловая, так что я воспользуюсь локальным сервером отладки («Сервис - Параметры - Отладка») и настрою автоматическое подключение для мобильного клиента («Отладка - Подключение - Автоматическое подключение»):

Указываем параметры и готово:

Настройка для предварительно подготовленного apk клиента от 1С завершена.

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

И так, имеем архив мобильной версии платформы. Загружаем его в справочник «Мобильные версии»:

В настройках сборщика отдельно появился пункт для SDK 26 и выше (кто, как и я, давно не обновлял - запускаем SDK Manager и загружаем новые пакеты):

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

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

Сначала создаем закрытый ключ, прячем его от шпионов и врагов. Далее формируем подпись конфигурации. На будущее, руководство советует зайти в «Главное меню - Конфигурация - Мобильный клиент - Настройка использования мобильного клиента». В диалоге установить флажок «Проверять подпись мобильного клиента при обновлении конфигурации базы данных» и нажать кнопку «ОК». Судя по руководству, подпись будет меняться, если у нас меняется состав или имена объектных типов метаданных, а также имена и/или состав ключей записи регистров. Т.е. изменение форм определенно не влияет на подпись и, судя по описанию, изменение состава реквизитов существующих справочников, документов (но это не точно).

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

Пример разработки мобильного приложения на 1С:Підприємство 8.3 для работы курьера интернет-магазина при доставке товаров клиентам. Для разработки использована конфигурация "Сборщик мобильных приложений"

Пример разработки мобильного приложения для курьера интернет-магазина с помощью "Сборщика мобильных приложений"

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

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

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


Где скачать и как установить Сборщик мобильных приложений

Конфигурация Сборщик мобильных приложений поставляется в составе мобильной платформы. В первой главе книги в разделе «Мобильная платформа 1С:Підприємство» мы распаковывали архив с мобильной платформой на компьютер. В этом каталоге есть папка MobileAppMaker с файлом Setup.exe для установки шаблона конфигурации. Запустим этот файл и установим шаблон конфигурации в каталог шаблонов «1С:Підприємство» (рис. 5.1).

Рис. 5.1. Установка шаблона конфигурации «Сборщик мобильных приложений»

Затем добавим новую информационную базу в список информационных баз «1С:Підприємство» и создадим информационную базу из созданного ранее шаблона (рис. 5.2).

Рис. 5.2. Создание информационной базы «Сборщик мобильных приложений» из шаблона

Затем откроем эту базу в конфигураторе и добавим пользователя Администратор со свойствами Аутентификация 1С:Підприємство, ролями Администратор и Пользователь и языком Русский (рис. 5.3).

Рис. 5.3. Создание пользователя «Администратор»

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

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

Рис. 5.4. Справка по конфигурации «Сборщик мобильных приложений»


Настройка параметров прикладного решения

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

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

Рис. 5.5. Создание записи таблицы «Каталоги компонентов…»

Откроется форма Пути к компонентам. Вызвав справку из этой формы, можно увидеть ссылки для получения программных компонентов и их описание (рис. 5.6).

Рис. 5.6. Справка, описывающая пути к компонентам

Сначала нужно установить Java SDK и в поле JDK указать каталог, в который этот компонент установлен. Java SDK можно получить по адресу: http://www.oracle.com/technetwork/java/javase/downloads/index.html . Рекомендуется скачивать пакет Java Platform (JDK).

На открывшейся странице вверху нужно нажать на кнопку Download (рис. 5.7).

Рис. 5.7. Получение Java SDK

На следующей странице нужно принять лицензионное соглашение (установить отметку Accept License Agreement) и нажать на ссылку с нужным дистрибутивом в колонке Download (для 64-битной Windows – это пакет jdk-8u60-windows-x64.exe), рис. 5.8.

Рис. 5.8. Получение Java SDK

Полученный инсталлятор нужно запустить и установить Java SDK, например, в каталог: C:\Program Files\Java\jdk1.8.0_60 (рис. 5.9).

Рис. 5.9. Установка Java SDK

Затем этот путь нужно указать в поле JDK формы настройки путей к компонентам приложения Сборщик мобильных приложений (рис. 5.10).

Рис. 5.10. Настройка путей к компонентам приложения «Сборщик мобильных приложений»

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

Рис. 5.11. Настройка путей к компонентам приложения «Сборщик мобильных приложений»

В поле Android SDK укажем путь к каталогу, в котором находится SDK Manager. Android SDK мы устанавливали в главе 1, в разделе «Android SDK» (рис. 5.12).

Рис. 5.12. Настройка путей к компонентам приложения «Сборщик мобильных приложений»

Затем нужно установить Apache ANT и в поле Apache ANT указать каталог, в который этот компонент установлен. Apache ANT необходим для выполнения сборки мобильного приложения для ОС Android. Apache Ant можно получить .

С этой страницы нам нужно скачать архив apache-ant-1.9.6-bin.zip (рис. 5.13).

Рис. 5.13. Получение Apache ANT

Разархивируем этот файл на компьютер и укажем путь к нему в форме настроек путей к компонентам (рис. 5.14).

Рис. 5.14. Настройка путей к компонентам приложения «Сборщик мобильных приложений»

Затем нужно установить систему PuTTY и в поле PuTTY указать каталог, в который этот компонент установлен. PuTTY можно получить .

PuTTY используется в том случае, если выполняется сборка мобильного приложения для Apple. Для сборки мобильных приложений требуются утилиты pscp.exe и plink.exe. На всякий случай скачаем весь установочный пакет putty-0.65-installer.exe (рис. 5.15).

Рис. 5.15. Получение PuTTY

Полученный инсталлятор нужно запустить и установить PuTTY, например, в каталог: C:\Program Files (x86)\PuTTY (рис. 5.16).

Рис. 5.16. Установка PuTTY

Затем укажем путь, полученный при установке PuTTY, в форме настройки путей к компонентам (рис. 5.17).

Рис. 5.17. Настройка путей к компонентам приложения «Сборщик мобильных приложений»

На этом настройка путей к компонентам завершена. Нажмем Записать и закрыть.


Настройка параметров поставщика

Теперь нам нужно настроить параметры поставщика. Для этого вызовем из меню Сервис пункт Редактировать параметры поставщика.

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

Затем нужно отметить, для каких операционных систем выполняется сборка мобильного приложения. В нашем случае установим флажок Для ОС Android.

Для работы с push-уведомлениями через вспомогательный сервис «1С:Підприємство» укажем параметры доступа к сервису. Для этого нажмем кнопку Добавить над таблицей внизу формы поставщика. В открывшемся окне Параметры доступа к вспомогательному сервису «1С:Підприємство» отметим опцию Регистрировать для – выбранного пользователя, выберем пользователя сборщика – Администратор и укажем электронный адрес и пароль, под которым мы ранее регистрировались на сервисе при тестировании работы с push-уведомлениями. Нажмем кнопку Сохранить и закрыть. Кроме того, можно зарегистрироваться на сервисе «1С:Підприємство» непосредственно из этой формы с помощью кнопки Зарегистрироваться в сервисе «1С:Підприємство», если этого еще не было сделано (рис. 5.18).

Рис. 5.18. Настройка параметров поставщика приложения «Сборщик мобильных приложений»

Кроме того, вызвать окно настройки параметров доступа к сервису «1С:Підприємство» можно из меню Сервис, пункт Параметры доступа к сервису «1С:Підприємство».

После этого необходимо на закладке Параметры для ОС Android заполнить группу полей Ключ разработчика. Для этого сначала создадим ключ разработчика, нажав на ссылку Создать ключ разработчика. В открывшейся форме Создание ключа разработчика произвольно заполним поля (для поля Страна нужно указать код России в стандарте ISO – ru) и нажмем кнопку Сформировать ключ (рис. 5.19).

Рис. 5.19. Настройка параметров поставщика приложения «Сборщик мобильных приложений»

После этого поля-параметры ключа разработчика заполнятся автоматически (рис. 5.20).

Рис. 5.20. Настройка параметров поставщика приложения «Сборщик мобильных приложений»

Значение в поле Хеш SHA1 ключа разработчика будет использоваться в дальнейшем для получения ключа работы с картами Google. Это значение необходимо в том случае, если мобильное приложение будет использовать средства геопозиционирования на платформе Android.

На этом настройка параметров поставщика завершена. Нажмем Записать и закрыть.


Загрузка мобильной платформы

Теперь нам нужно загрузить мобильную платформу «1С:Підприємство», под управлением которой будет работать собранное мобильное приложение. Версий мобильной платформы может быть несколько, но они должны быть не ниже версии 8.3.4.

Для загрузки и хранения различных версий мобильной платформы предназначен справочник Мобильные платформы. Для каждой версии платформы в этом справочнике должна быть создана отдельная запись.

Из командной панели приложения откроем справочник Мобильные платформы и нажмем кнопку Создать. После этого появится диалог выбора файла, в котором нужно выбрать файл с архивом мобильной платформы mobile.zip, который мы сохраняли на компьютере при получении мобильной платформы в первой главе книги, в разделе «Мобильная платформа 1С:Підприємство». Выберем его и нажмем кнопку Открыть.

В случае успешной загрузки платформы откроется форма создания элемента справочника Мобильные платформы, в которой поля Версия мобильной платформы и Наименование заполнятся автоматически, и появится флажок Файлы мобильной платформы загружены (рис. 5.21).

Нажмем Записать и закрыть.


Загрузка мобильной конфигурации

еперь нам нужно загрузить разработанную нами мобильную конфигурацию КурьерИнтернетМагазина. Откроем эту конфигурацию в конфигураторе. В палитре свойств конфигурации зададим свойства Поставщик – myfirm и Версия – 1.0.0 (рис. 5.22).

Рис. 5.22. Свойства мобильной конфигурации «КурьерИнтернетМагазина»

Затем выгрузим эту конфигурацию в файл, выполнив команду конфигуратора Конфигурация > Мобильное приложение > Записать в файл...

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

Из командной панели приложения откроем справочник Мобильные конфигурации и нажмем кнопку Создать группу с наименованием нашей конфигурации Курьер Интернет-магазина (рис. 5.23).

Рис. 5.23. Создание группы справочника «Мобильные конфигурации»

Затем в этой группе создадим новый элемент справочника.

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

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


Нажмем Записать и закрыть.


Описание параметров мобильного приложения

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

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

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

Поставщик у нас один – Моя фирма. Он заполнится автоматически. А также установится флажок Для ОС Android. Поле Мобильная платформа оставим пустым – при сборке автоматически будет использована самая «свежая» версия платформы.

В поле Идентификатор решения укажем произвольную строку на латинице. Следующее за ним поле заполнится автоматически (рис. 5.25).

Рис. 5.25. Создание группы справочника «Мобильные приложения»

После этого автоматически заполнится поле Параметр получения ключа для работы с картами Google (в это поле подставляется значение параметра Хеш SHA1 ключа разработчика поставщика Моя фирма из формы настройки параметров поставщика, см. рис. 5.20 + строка идентификатора решения) – это нам понадобится для получения ключа для работы с картами Google. Для этого мы должны обратиться к сервису Google и после получения ключа записать его в поле Ключ для работы с картами Google.