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




















































В платформе 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 

11 Comments

  1. imh9305

    а я так понимаю приложение андроид — это уже тема закрытая и платная?)

    Reply
  2. Kosigo

    Приложение свободно для установки с Google Play Oda

    Клиентский и режим администрирования бесплатно. Режим разработки активизируется по подписке

    Reply
  3. minimajack

    (0) Выглядит очень достойно.

    Приправить дополнительным функционалом — и будет вообще огонь!

    Reply
  4. xan333

    Какие преимущества по сравнению с использованием мобильного клиента 1С ? https://wonderland.v8.1c.ru/blog/mobilnyy-klient/

    Reply
  5. Kosigo

    (5)Думаю не совсем уместно сравнивать с мобильной платформой 1С. Но если провести частичное сравнение с точки зрения работы пользователя — то это выигрыш по скорости работы с UI-объектами + приближенный дизайн к google material design.

    Reply
  6. xan333

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

    Reply
  7. ТочкаScarab

    Конфигурация УППдляУкраины 1.3.63.1, ODATA опубликована, доступ по протоколу ODATA к необходимым объектам метаданных настроен. В вашей проге пишет «Нет объектов метаданных в составе интерфейса ODATA». А по ссылке вида https://сервер/база/odata/standard.odata и т.п. — прекрасно всё получает. В чём может быть проблема?

    Reply
  8. Kosigo

    (7) Возможно, не совсем понял суть вопроса. Опишу один из возможных сценариев использования ODa: предположим стоит задача организовать возможность заказа товара клиентами через смартфон… что нужно сделать:

    1. Опубликовать Odata интерфейс учетной базы

    2. Через обработку настройки состава интерфейса Odata ставим галочки напротив справочника Номенклатуры и документа Заказ покупателя

    3. В приложении ODa подключиться к базе, назначить себя администратором

    4. Поделится ссылкой на созданное подключение (из самой программы) с клиентом

    5. Клиент переходит по ссылке, у него устанавливается приложение Oda и предлагается ввести логин пароль от базы (естественно заранее клиента нужно завести как пользователя ИБ с нужными правами)

    6. Готово, клиент видит справочник товары и список своих заказов, создает новые.

    Reply
  9. xan333

    Отличный кейс, спасибо! Чтобы сделать такое через мобильный клиент, вероятно придется сделать отдельную настройку прав для конкретной роли. Ваш вариант выглядит интереснее.

    Reply
  10. Kosigo

    (8) Попробуйте в интерфейсе OData оставить только один из справочников и снова обновите в приложении. Результат напишите в личку или на почту.

    Reply
  11. ТочкаScarab

    (11)Спасибо — открыл только одних Контрагентов — получилось. (а вот в личку или на почту написать не смог). Видно первоначальный файл по standard.odata — слишком большой был и памяти мобилы не хватало.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *