По своей субъективной оценке, возникает ощущение, что 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 в интерфейсе не доступна возможность авторизоваться для администратора, чтобы исключить избыточные попытки обычных пользователей авторизоваться.
Для активизации выполните следующие действия:
- Во фрагменте "Список подключений" необходимо семь раз кликнуть в зону "Администратор подключения"
- После успешного выполнения, появиться новый элемент интерфейса "Назначить администратора", выбираем его
- Выберите google-аккаунт, который будет установлен в качестве администратора текущего подключения
- Готово, теперь можно управлять. При выходе из режима администрирования мы снова попадаем в клиентский
-->-->-->
Во всей этой истории с назначением администратора происходит важный момент - это создание учетной записи данного подключения на сервере общих настроек, и самое важное - ключом уникальности является 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, буду этому рад.
Спасибо за внимание!