Описание приложения. Настройка механизма синхронизации
Мобильное приложение 1С:Управление нашей фирмой для мобильной работы может использоваться совместно с настольной (ПРОФ или Базовой) или облачной версией приложения 1С:Управление нашей фирмой 8.
Для того чтобы была возможность синхронизировать мобильное приложение с настольной версией необходимо в настольной версии выполнить ряд действий.
Ниже показаны эти действия. Их нужно выполнить на локальном компьютере. В примере рассматривается компьютер, работающий под управлением операционной системы Windows:
- Необходимо убедиться, что на компьютере установлен и работает веб-сервер Apache или IIS, а Firewall не блокирует входящие подключения на используемый веб-сервером порт (обычно это 80 или 8080). Подробнее о настройке веб-серверов можно ознакомиться в поставляемой к ним документации.
Необходимо развернуть настольное приложение 1С:Управление нашей фирмой 8 на вашем компьютере. Рекомендуется использовать последнюю версию настольного приложения. Подойдет Базовая или ПРОФ версия.
Синхронизация с мобильным приложением будет осуществляться от имени пользователя, у которого имеется доступ к настольному приложению.
По умолчанию в настольном приложении уже присутствует пользователь Администратор, можно использовать его или завести нового (раздел Администрирование – Настройки пользователей и прав – Пользователи), установив минимально необходимые для синхронизации права – Продажи, Закупки и Деньги.
- Необходимо опубликовать веб-сервис MobileService для обмена данными с мобильным приложением. Эта операция выполняется в конфигураторе настольного приложения 1С:Управление нашей фирмой 8. Для этого необходимо воспользоваться пунктом Публикация на веб-сервере… из меню Администрирование.
В появившемся окне необходимо задать имя публикации, выбрать используемый веб-сервис, задать каталог публикации и убедиться, что установлены флажки Публиковать Web-сервисы и MobileService.
После этого необходимо нажать кнопку Опубликовать и согласиться с перезапуском веб-сервера.
Для проверки корректности публикации можно в интернет браузере компьютера перейти по ссылке вида http://localhost/[ИмяПубликации]/ws/MobileService
После ввода имени пользователя и пароля в браузере должна появиться ссылка на WSDL схему.
В мобильном приложении необходимо ввести адрес, по которому был опубликован веб-сервис, а также имя пользователя и пароль. Адрес должен быть следующего вида http://[IPАдресКомпьютера]/[ИмяПубликации]. Если локальный компьютер и мобильное устройство подключены к одной сети, то в качестве IP адреса компьютера используется его локальный IP адрес.
Если мобильное устройство подключается к центральной информационной базе из другой сети через интернет, то необходимо использовать внешний статический IP адрес компьютера. Данную услугу может предоставить интернет-провайдер. Если по каким-то причинам внешний статический IP адрес использовать нельзя, то можно воспользоваться сервисом 1С:Линк (за исключением пользователей базовых версий, для которых сервис не доступен).
После выполнения вышеприведенных действий настройка синхронизации мобильного приложения с настольной версией приложения 1С:Управление нашей фирмой 8 будет завершена.
источник
Планы обмена для мобильного приложения 1С
Мобильная платформа нацелена на ускорение операций, и переносить каждый раз десятки мегабайт информации при обмене с мобильным устройством задача нелегкая. Целесообразно выгружать только новую или изменившуюся информацию используя планы обмена.
Давайте рассмотрим на примере создание двустороннего обмена мобильного устройства и базы. Для начала создадим новую базу, назовем ее «Центральная база», назначение использования как на скриншоте:
Теперь создадим объекты метаданных для ввода данных и тестирования обмена данными. Создадим справочник, документ и регистр сведений:
1) Справочник «Номенклатура»:
2) Создадим документ «Установка цен номенклатуры»: реквизиты
Номенклатура — тип «СправочникСсылка. Номенклатура»
3) Создадим регистр сведений «Цены номенклатуры»:
Периодичность: в пределах дня
Режим записи: в пределах дня
Добавляем измерение: Номенклатура — тип «СправочникСсылка. Номенклатура»;
Ресурс: Количество — тип Число.
Для документа «Установка цен номенклатуры» напишем процедуру проведения.
Создадим план обмена, установим ему имя «МобильныйОбмен». В состав плана обмена включим созданные метаданные (справочник, документ и регистр сведений). Для всех выбранных объектов разрешим авторегистрацию.
Теперь создадим общую команду «ВыполнитьСинхронизациюСБД», которая будет синхронизировать данные мобильного приложения и базы, причем в обмене будут участвовать только измененные и вновь созданные объекты.
Добавим команду в панель навигации: Важное.
Пришло время добавить обработку команды:
Для обмена данными нам будет необходим веб-сервис. Давайте создадим его и присвоим ему имя «WebОбмен». Предлагаю использовать для обмена данными хранилище значения, т. к. хранилище значения сжимает данные и это очень важно для мобильного трафика, и хранилище значения может быть сериализовано в/из XDTO.
Заполним URI пространства имен: Data,
Пакеты XDTO: http://v8.1c.ru/8.1/data/core,
Имя файла публикации: WebОбмен.1cws.
Добавим операцию: Синхронизация,
Тип возвращаемого значения: ValueStorage ).
Добавляем параметр «Данные» и установим ему тип значения: ValueStorage ).
Для операции Синхронизация добавим процедуру Синхронизация:
Необходимо опубликовать мобильное приложение:
а потом переходим в Администрирование -> Публикация на веб-сервере и публикуем базу на веб-сервере:
Теперь добавляем базу на мобильном устройстве включаем перезапуск из конфигуратора и разрешаем отладку. Также необходимо прописать адрес сервера отладки.
Настраиваем планы обмена в базе и на мобильном приложении следующим образом:
Теперь создаем в мобильном приложении номенклатуры и документ и записываем:
В базе создаем номенклатуру:
Теперь в мобильном приложении нажимаем кнопку «Выполнить синхронизацию с БД»:
И видим результат, номенклатура созданная в базе появилась на мобильном устройстве, а в базе появилась номенклатура созданная в мобильном приложении:
Планы обмена значительно уменьшают трафик, а в сочетании с мобильным приложением позволяют работать в удаленных местах, где нет высокоскоростного интернета, например, в удаленных складах.
источник
Практика разработки мобильного приложения 1С 8.3 (часть 1)
Практика разработки мобильного приложения 1С 8.3 (часть 1)
В данной статье речь пойдет о том, что довелось перепробовать и на какие грабли наступить, прежде чем удалось сделать более-менее нормальное приложение для планшетников. Приложение изначально затачивалось только под Андроид, за основу взята конфигурация 1С: Заказы, и мобильное приложение для разработки.
Изначально был выбран «неправильный» подход с компилированием приложения и закидыванием его на планшетник вручную. Напомню, что для сборки мобильных приложений используется «Помощник создания мобильного приложения» ( MobileAppWizzard ). Затем на одном из форумов было найдено красивое решение с использованием мобильного приложения для разработки. Это приложение входит в комплект установки мобильной платформы. На момент разработки использовалась платформа версии 8.3.3.24. В папке « Android » можно найти файл 1cem.apk. Это и есть мобильное приложение для разработки. Его огромнейший плюс, сэкономивший нам уйму времени — в том, что можно опубликовать мобильное приложение на веб-сервере, а на планшетнике указать путь вида http://[ Адрес веб-сервера ]/[ Имя мобильного приложения ].
На планшетном ПК, в настройках добавленного приложения можно отметить флажок «Обновлять из конфигуратора», и при каждом запуске приложение будет пытаться подключиться к веб-серверу и проверять обновления.
После того, как мобильное приложение было развернуто, начался процесс его доработки.
1. Настроить обмен между центральной базой и мобильным устройством.
2. Организовать асимметричную синхронизацию: из центральной базы выгружать данные о номенклатуре, контрагентах, остатках товаров на складе и взаиморасчетах, а из мобильного приложения загружать только заказы покупателей.
3. Реализовать простой интерфейс для менеджеров, где они смогут быстро просмотреть остатки, цены и взаиморасчеты.
На этапе тестирования использовалась промежуточная база «Управляемое приложение», ввиду того что демо-приложение 1С:Заказы изначально заточено на обмен именно с Управляемым приложением.
Первый блин вышел комом. В прямом смысле. Для обмена с центральной базой был использован v82.ComConnector. Не буду вдаваться в подробности его настройки, об этом есть куча отдельных материалов. Пройдусь только по тем трудностям, с которыми столкнулся.
1. Использование com- объектов на 64-битной серверной ОС. Для решения проблемы была использована обертка COM+ Applications, которая настраивается в Component Services.
2. Удаленный вызов Com с другого сервера. Вызываемый сервер должен иметь роль Application Server, и у него должно быть настроено COM+ Network Access. Кроме того, сервер Apache должен иметь соответствующие права (т. е. запускаться как сервис от имени авторизованного пользователя)
Намучившись с Ком-соединениями, решили переводить рабочую базу на web- сервисы.
О публикации веб-сервисов также написано очень много, но там написано о том, как работает. Как НЕ работает, поделюсь ниже.
Рабочая база развернута на платформе 8.2, мобильное приложение, соответственно, на 8.3.
При публикации вначале приложения 8.3, а затем 8.2. периодически выхватывали глюк «Ошибка формата потока» в веб-клиенте 8.3, либо сообщение об ошибке «различаются версии платформы клиента и сервера». Перепубликация не помогает, равно как и перезапуск Apache. А вот отключение публикации и подключение заново — помогает.
Далее, поймал забавную ошибку при авторизации пользователя (при создании ws Определения). При тестировании на компьютере, авторизация с длинным ФИО проходит легко. При попытке авторизации этого же пользователя с планшетника под управлением Android, авторизация заканчивалась, не начавшись. Экспериментальным путем удалось вычислить, что кириллицей длина логина ограничена 22 символами. При этом сочетание кириллических символов и цифр дало авторизоваться с логином длиной 27 символов. Есть подозрение, что это связано с преобразованием кириллических символов. Так, например, в браузере Firefox строка из Википедии « http://ru.wikipedia.org/wiki/П иво» преобразуется в « http://ru.wikipedia.org/wiki/%D0%9F%D0%B8%D0%B2%D0%BE ».
Технологически, мобильная платформа 8.3.3 на текущий момент имеет ряд ограничений. Самое ожидаемое, на мой взгляд, нововведение — это поддержка запросов. Но, поскольку произвольные запросы в динамических списках мобильная платформа пока не поддерживает, пришлось «пойти другим путем».
Для решения задачи отображения справочника номенклатуры с ценами и остатками был использован следующий подход:
1. В форме справочника номенклатуры созданы две таблицы. Первая — динамический список, собственно сам справочник. Фильтр динамического списка настроен так, чтобы выводились только группы. Вторая таблица — собственно остатки и цены. При активизации строки динамического списка, на сервере происходит заполнение таблицы значений, которая затем и выводится во вторую таблицу. При получении цен и остатков использовалась объектная модель. Все эти танцы с бубном были исполнены только потому, что привычного по толстому клиенту метода «при выводе строки» или «при получении данных» нет, и динамически нарисовать цифры в колонке нельзя.
Аналогичный подход использовался и в форме подбора
2. Для вывода строки с текущими ценами отлично подошла ФорматированнаяСтрока.
3. Для загрузки справочников, остатков и цен в мобильное приложение был использован веб-сервис, который на входе получает структуру параметров, а на выходе возвращает хранилище значения. Еще одним неприятным открытием стал вылет обмена при слишком длительной обработке на стороне сервера. Сложилось впечатление, что имеется какой-то таймаут, после которого приложение «считает», что связь прервана (хотя на самом деле все еще идет обработка данных в рабочей базе через ws -соединение), и прекращает обмен с ошибкой.
Чтобы этого избежать, было принято решение дробить полный обмен на порции с возвратом фокуса обратно в мобильное приложение. Т.е. вначале синхронизировать номенклатуру, затем контрагентов, затем остатки, и т. п.
4. Для получения отчетов оставлен тот же подход, что и в конфигурации 1С: Заказы. Вызывается веб-сервис с параметрами, на стороне сервера рабочей базы формируется табличный документ, и затем уже готовый табличный документ возвращается в мобильное приложение.
источник