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

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

Разработка - Мобильная разработка

ODa OData Android client

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

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

Про особенности работы с протоколом OData на платформе 1С можно ознакомиться -> v8.1c.ru или более подробно -> its.1c.ru, но для работы с приложением ODa нет особой необходимости постигать глубин использования протокола, приложение и платформа 1С сами обо всем позаботятся.

 

Основные функциональные возможности 

  • Поддержка протокола Odata version 3.0 
  • Универсальный клиент. Возможность осуществлять подключение к любой конфигурации 1С 
  • На текущий момент поддержка объектов метаданных: "Справочники" , "Документы", "Перечисления"  
  • Поиск, сортировка, фильтрация элементов в списках объектов
  • Операции над объектами: "Создание", "Просмотр", "Редактирование", "Запись", "Проведение", "Отмена проведения", "Пометка на удаление"
  • Управление по представлению реквизитов объектов в списке и карточке объекта
  • Тонко настроить интерфейс для каждого объекта метаданных
  • Возможность поделиться ссылкой на подключение
  • Поддержка ориентации экрана
  • Локализация: Русский, English
  • У подключения может быть назначен администратор, с функцией публикации общих настроек

 

Режимы работы приложения ODa 

  • Клиентский -  для использоваться обычными пользователями
  • Администрирования - назначается администратор(владелец), для управления подключением
  • Разработки  - возможность тонкой  настройки подключения с возможностью публикации их в режиме online

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

После публикации базы, через стандартный интерфейс Odata разработчиком 1С, рекомендуется назначить себя владельцем данного подключения (подробно описано ниже). Для "Режима Администрирования" всегда доступны функции: назначить наименование подключения, временно заблокировать подключение, удалить подключение. 

Далее по необходимости администратор подключения может активировать по подписке "Режим разработки", который позволит тонко настроить интерфейс текущего подключения и опубликовать эти настройки на сервере по обмену настроек. Например: назначим картинки для каждого объекта метаданных и опубликуем текущие изменения настроек, послед чего у всех пользователей, у которых прописано это подключение, будет применена новая настройка (все это происходит режиме online).  

Ниже представлены пример экрана метаданных по умолчанию и после применения настроек

---->

 

Необходимы настройки для подключения приложением ODa  к  базе 1С 

- Установить веб-сервер (Apache, IIS, ...)

- Установить галочку "Публиковать стандартный интерфейс OData"

 

- Определить состав объектов метаданных, доступных через стандартный сервис OData. Подробнее можно почитать например тут-> infostart.ru/public/811834/

После предыдущих настроек на выходе должна получиться работающая ссылка вида : http://192.168.1.100/sample1/odata/standard.odata

 

Как подключиться к опубликованной базе

Итак у нас есть ссылка на опубликованную базу через интерфейс OData: http://192.168.1.100/sample1/odata/standard.odata. Используем ее при создании нового подключения в приложении, авторизуемся при необходимости (пользователь ИБ) и если подключение еще не имеет владельца, то необходимо указать наименование.

---->---->

 

Список подключений

ODa позволяет работать одновременно с неограниченным числом подключений к различным базам. Каждое подключение представлено  в боковом меню как drawer-account. Такое представление весьма типично и знакомо пользователем мобильных платформ для быстрого переключения между аккаунтами (подключениями). Существует отдельный фрагмент "Список подключений", на котором представлена подробная информация о каждом подключении. Над объектом подключения доступны следующие операции:

  • Сделать активным 
  • Удалить подключение
  • Написать администратору
  • Обновить настройки из файла
  • Поделиться ссылкой на подключение
  • Скопировать URL в буфер обмена
  • Войти в режим администрирования

 

             

 

 

Справочники - список элементов

Рассмотрим возможности работы со списками на примере справочника "Номенклатура" из типовой конфигурации. Администратор подключения может дополнить представление списка дополнительными реквизитами этого объекта (фрагмент правее)

            

 

Пример с поиском элементов. Поиск осуществляется по наименованию а также по всем видимым значениям реквизитов.

            

 

Пример списка с фильтром

            

 

Документы - список элементов

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

      

 

Форма элемента справочника и документа

Форма для элементов справочников и документов имеют общее представление при просмотре или редактировании объектов.

            

 

 

Режим администрирования

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

  • Прописать наименование подключения.
  • Временно заблокировать работу с данным подключением.
  • Удалить подключение с сервера общих настроек. 
  • Активировать режим разработки

 

Активизация режима администрирования

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

Для активизации выполните следующие действия:

  1. Во фрагменте "Список подключений" необходимо семь раз кликнуть в зону "Администратор подключения"
  2. После успешного выполнения, появиться новый элемент интерфейса "Назначить администратора", выбираем его
  3. Выберите google-аккаунт, который будет установлен в качестве администратора текущего подключения
  4. Готово, теперь можно управлять. При выходе из режима администрирования мы снова попадаем в клиентский

-->-->-->

 

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

 

Область и сценарии применения 

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

 

Режим разработки

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

При активизации режима разработчика в toolbare появиться соответствующая иконка   

 

Обновление метаданных

При изменении конфигурации базы 1С (добавили, удалили, переименовали объект метаданных), необходимо получить эти изменения в приложении путем pull-to-refresh (потянуть сверху вниз) на экране метаданных. Готово, объекты получили, теперь можно настроит их детальнее.

      

 

 

Параметры настройки экрана с метаданными

  • Видимость - устанавливает видимость объекта метаданных на экране. Позволяет показывать только главные-корневые объекты для работы
  • Доступность - позволяет запретить любые операции с объектом (только просмотр)
  • Порядок - определяет очередность объектов на текущем экране 
  • Синоним - устанавливает альтернативное название для объекта
  • Картинка - назначить url картинки, вместо стандартной  
  • Записать - определяет что при создании нового объекта он будет автоматически создан на стороне базы 1С. Это позволит произвести заполнение начальными значениями реквизитов этого объекта. 

      ----->

 

Параметры настройки списка справочников

  • Вид списка - принимает два значения: список и иерархия. 
  • Темы элемента - возможные варианты представление элемента в списке, примеры будут показаны ниже в картинках
  • Доп. поля - дополнительные поля-реквизиты, которые следует показывать
  • Картинка - указать реквизит в котором храниться URL картинки

         

 

 

Параметры настройки списка документов

Для списка документов пока доступна одна настройка: дополнительные поля. Обязательно необходимо обновить список документов (pool to refresh) после изменения состава доп. полей.

--->--->

 

Параметры настройки формы объектов

  • Видимость - показать или скрыть реквизит
  • Основной вид - возможность задать два значения представления данных: виде таблицы или списком. 
  • Тип данных - необходимо уточнить базовый тип. Для примера для реквизита типа дата необходимо установить уточнение (это дана, это время, дата + время) или для реквизита ссылающегося на перечисление - тут также необходимо указать на эту же связку 
  • Синоним - устанавливает альтернативное название для реквизита
  • Доступность -  устанавливает возможность для редактирования пользователем или только просмотр 
  • Записывать - важный параметр,  определяет что при изменение значения реквизита произойдет автоматический запрос в базу 1С для записи текущего объекта. На стороне кода 1С  (перед записью объекта) необходимо реализовать логику на новые данные. Пример реализации будет доступен в restaurant.dt
  • Притяжение - устанавливает притяжение для значения реквизита в ячейке таблицы или поля (вправо, в центре, слева)
  • Требовать - возможность определить обязательные поля для заполнения пользователем
  • Порядок - очередность представления реквизитов на форме списка
  • Ширина - ширина ячейки таблицы - пропорционально по отношению к другим ячейкам
  • Высота - возможно определить отдельно высоту заголовка и строки таблицы
  • Размер - размер размер текста для значения реквизита
  • Ед. изм. - возможность указать единицы измерения для реквизитов типа Int, Double 

         

      

 

Публикация общих настроек 

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

 

Демонстрационная база

К этот статье прилагается архив с демонстрационной базой resrtaurant.dt  и файл с настройками для Oda.

Логин/пароль от базы: admin admin

Для загрузки настроек в списке подключений кликните на "Общие настройки" затем "Обновить из файла"

 

Заключение

Надеюсь мне удалось еще раз обратить внимание сообщество на интерфейс OData, и если его использование будет полезно в Ваших проектах в связке с приложением ODa, буду этому рад.

Спасибо за внимание!

Ссылка на google play для установки Oda 

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

Наименование Файл Версия Размер
Демонстрационная база restaurant.dt и файл с настройками подключения

.7z 142,55Kb
28.11.19
8
.7z 1 142,55Kb 8 Скачать

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. imh9305 17 22.10.19 14:15 Сейчас в теме
а я так понимаю приложение андроид - это уже тема закрытая и платная?)
2. Kosigo 125 22.10.19 14:23 Сейчас в теме
Приложение свободно для установки с Google Play Oda
Клиентский и режим администрирования бесплатно. Режим разработки активизируется по подписке
4. minimajack 63 23.10.19 08:56 Сейчас в теме
(0) Выглядит очень достойно.
Приправить дополнительным функционалом - и будет вообще огонь!
5. xan333 48 23.10.19 09:48 Сейчас в теме
Какие преимущества по сравнению с использованием мобильного клиента 1С ? https://wonderland.v8.1c.ru/blog/mobilnyy-klient/
memb3r; sasha777666; +2 Ответить
6. Kosigo 125 23.10.19 10:53 Сейчас в теме
(5)Думаю не совсем уместно сравнивать с мобильной платформой 1С. Но если провести частичное сравнение с точки зрения работы пользователя - то это выигрыш по скорости работы с UI-объектами + приближенный дизайн к google material design.
starik-2005; +1 Ответить
7. xan333 48 23.10.19 11:02 Сейчас в теме
Есть мобильная платформа и есть мобильный клиент, это несколько разные сущности. Мобильный клиент берет функциональность от конфигурации к которой он подключается, т.е. постоянно его пересобирать нет необходимости при изменении функционала конфигурации. Для типовых конфигураций в поставке идет вроде бы apk мобильного клиента.
9. Kosigo 125 23.10.19 11:35 Сейчас в теме
(7) Возможно, не совсем понял суть вопроса. Опишу один из возможных сценариев использования ODa: предположим стоит задача организовать возможность заказа товара клиентами через смартфон... что нужно сделать:
1. Опубликовать Odata интерфейс учетной базы
2. Через обработку настройки состава интерфейса Odata ставим галочки напротив справочника Номенклатуры и документа Заказ покупателя
3. В приложении ODa подключиться к базе, назначить себя администратором
4. Поделится ссылкой на созданное подключение (из самой программы) с клиентом
5. Клиент переходит по ссылке, у него устанавливается приложение Oda и предлагается ввести логин пароль от базы (естественно заранее клиента нужно завести как пользователя ИБ с нужными правами)
6. Готово, клиент видит справочник товары и список своих заказов, создает новые.
8. ТочкаScarab 23.10.19 11:29 Сейчас в теме
Конфигурация УППдляУкраины 1.3.63.1, ODATA опубликована, доступ по протоколу ODATA к необходимым объектам метаданных настроен. В вашей проге пишет "Нет объектов метаданных в составе интерфейса ODATA". А по ссылке вида https://сервер/база/odata/standard.odata и т.п. - прекрасно всё получает. В чём может быть проблема?
11. Kosigo 125 24.10.19 08:53 Сейчас в теме
(8) Попробуйте в интерфейсе OData оставить только один из справочников и снова обновите в приложении. Результат напишите в личку или на почту.
12. ТочкаScarab 24.10.19 12:19 Сейчас в теме
(11)Спасибо - открыл только одних Контрагентов - получилось. (а вот в личку или на почту написать не смог). Видно первоначальный файл по standard.odata - слишком большой был и памяти мобилы не хватало.
10. xan333 48 23.10.19 11:50 Сейчас в теме
Отличный кейс, спасибо! Чтобы сделать такое через мобильный клиент, вероятно придется сделать отдельную настройку прав для конкретной роли. Ваш вариант выглядит интереснее.
Оставьте свое сообщение

См. также

daСклонение: склонение ФИО, должностей, чисел, прилагательных, существительных на языке 1С + ТестЦентр Промо

Универсальные функции v8 1cv8.cf Абонемент ($m)

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

1 стартмани

14.02.2015    101851    97    daMaster    90    

Сравнение реального дохода со средним доходом из API.HH.RU

Зарплата Управленческие v8 v8::СПР ЗУП3.x УУ Абонемент ($m)

Внешняя обработка на управляемой форме для 1С:Предприятие 8.3 по интеграции с HH.RU используя HH REST API. Ключевые функции: получение списка вакансий по должностям (Ключ для работы не нужен); расчет среднего дохода; Тестирование проводилось на платформе 1С:Предприятие 8.3 (8.3.13.1513) Зарплата и управление персоналом, редакция 3.1 (3.1.11.68) совместно с API.HH.RU.

1 стартмани

11.11.2019    3921    4    solaru    2    

Конфигурация для рекламного агентства

Управление услугами и сервисом Управление взаимоотношениями с клиентами (СRM) Производство готовой продукции (работ, услуг) Управление взаимоотношениями с клиентами (СRM) Производство готовой продукции (работ, услуг) v8 Реклама, PR и маркетинг УУ Абонемент ($m)

Данная конфигурация выполнена для решения тестового задания: Цель задания: 1) Понять, на каком из клиентов сколько мы заработали;  2) Понять, по какому виду СМИ сколько мы заработали;  3) Проследить по каждой услуге: у кого за сколько купили и кому за сколько продали, с возможностью перейти в соответствующий документ. Реализовано с помощью: 1. Справочники - контрагенты, номенклатура 2. Документы - Поступление услуг, реализация услуг 3. Отчеты - отчет по контрагентам, номенклатуре и движений.

1 стартмани

21.05.2019    4550    0    solaru    0    

Загрузка номенклатуры в УТ 10.3 из Excel файла с генерацией штрихкодов

Загрузка и выгрузка в Excel Обработка справочников Оптовая торговля Розничная торговля Учет ТМЦ Оптовая торговля Розничная торговля Учет ТМЦ v8 УТ10 Россия Абонемент ($m)

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

1 стартмани

24.03.2017    7801    7    solaru    0    

Под капотом управляемых форм

Практика программирования v8 1cv8.cf Бесплатно (free)

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

26.08.2013    265167    Evil Beaver    266    

[NotaBene] Универсальный отчет по таблице значений

Практика программирования v7.7 1cv7.md Россия Абонемент ($m)

1C v.7.7 Готовое решение. Не требует настройки. Не требует допрограммирования. Данная обработка решает часто встречающуюся задачу вывода в "красивом" виде таблицы значений (полученной, например, из запроса). Поддерживается произвольное группирование данных, отключение/включение группировок, в т.ч и создание "шахматок" (типа "продажи понедельно"). Обработка может использоваться как и в отладочных целях (для нормального просмотра ТЗ), так и в составе вполне рабочих отчетов. По крайней мере, я неоднократно клиентам данную обработку ставил вместо того, чтобы каждый раз писать замороченные выводы данных. И клиенты довольны, и мне - проще...

2 стартмани

07.05.2007    28733    3    CheBurator    63