Интеграция c Mobile SMARTS через компоненту доступа
Mobile SMARTS 3.0: Работа с компонентой
Справочник по объектам Mobile SMARTS и компоненте доступа для платформы
Для организации обмена данными между учетной системой пользователя и Mobile SMARTS платформы версии 3.0 применяются две специальные COM-компоненты (одна универсальная, вторая предназначена специально для работы с «1С:Предприятием»). Установка и регистрация компонент выполняется автоматически при установке Mobile SMARTS из дистрибутива.
Компонента Cleverence.Warehouse.StorageConnector (и другие объекты Mobile SMARTS) могут использоваться при разработке решений на платформе .NET Framework.
В этом случае нет необходимости регистрировать COM-объекты и создавать экземпляр компонеты как COM-объект. Вместо этого следует добавить в ссылки проекта в вашей среде разработки библиотеки Cleverence.MobileSMARTS.ComConnector.dll, Cleverence.Infrastructure.dll, Cleverence.DataCollection.dll, Cleverence.Common.dll (библиотеки находятся в <папка установки Mobile SMARTS>\\Connectivity, по умолчанию _C:\Program Files (x86)\Cleverence Soft\Mobile SMARTS\Connectivity)`. В вашем коде объекты Mobile SMARTS создаются с помощью конструкторов по умолчанию (например, new Cleverence.Warehouse.StorageConnector()).
AddIn.Cl.TerminalConnector (файл компоненты Cleverence.Warehouse.TerminalConnector.dll) предназначена специально для работы с «1С:Предприятием» и может быть подключена в 1С как внешняя компонента. Отличие от Cleverence.Warehouse.StorageConnector состоит в том, что функции AddIn.Cl.TerminalConnector «понимают» и принимают объекты 1С (массивы, списки значений, таблицы значений и др.). Благодаря этому написание кода 1С для обмена существенно облегчается.
Файлы, необходимые для работы компонент, находятся после установки по умолчанию в папке C:\Program Files(x86)\Cleverence Soft\Mobile SMARTS\Connectivity.
В этой же папке находится файл « Зарегистрировать COM.bat», запустив который (с правами Администратора) можно зарегистрировать компоненты. Это может потребоваться, если автоматическая регистрация при установке из дистрибутива не выполнилась по каким‑то причинам или регистрация стала недействительной (например, из‑за повреждения реестра Windows).
После установки компоненты становится возможным создание и операции с объектами компоненты непосредственно в процедурах учетной системы.
Операция создания объектов, описанных в COM, специфична для каждой системы:
Псевдокод:
var connector = new Cleverence.Warehouse.StorageConnector();
C# (подключив Cleverence.MobileSMARTS.ComConnector.dll в References):
var connector = new Cleverence.Warehouse.StorageConnector();
«1С:Предприятие 7»:
connector = СоздатьОбъект("Cleverence.Warehouse.StorageConnector");
«1С:Предприятие 8»:
connector = новый COMОбъект("Cleverence.Warehouse.StorageConnector");
Microsoft Dynamics AX (Axapta):
var connector = new COM("Cleverence.Warehouse.StorageConnector");
Если при попытке создания COM-объекта в Вашей учетной системе возникает ошибка, запустите (с правами Администратора) файл «Зарегистрировать COM.bat». Если регистрация выполнилась успешно, Вы увидите надпись в окне командной строки: «Типы зарегистрированы успешно». Если и после этого создание компоненты происходит с ошибкой, проверьте есть ли у кода, выполняющег ося в учетной системе права на работу с COM-объектами.
Ниже указаны наиболее важные средства взаимодействия с сервером Mobile SMARTS и классы бизнес‑сущностей системы.
Обмен с базой данных и инфраструктура
| Класс | Описание |
| StorageConnector [Соединение] | Класс, объекты которого служат для доступа к базе данных Mobile SMARTS. После создания объекта требуется установить соединение с базой данных Mobile SMARTS с помощью функции SelectCurrentApp [УстановитьПодключениеСБазойСМАРТС] после чего будет возмож ен обмен данными (справочниками, документами). |
| AppInstance [БазаСМАРТС] | Объект, содержащий описание базы данных Mobile SMARTS. База данных представляет собой хранилище конфигурации Mobile SMARTS ( Environment [Среда]), текущих данных (справочников, документов, списка пользователей), а также настроек. Данные базы хранятся в папке базы на диске компьютера. Каждая база данных является экземпляром некоторого приложения Mobile SMARTS ( App [ПриложениеСМАРТС]). Данный объект содержит описание базы данных (идентификатор, наименование, способ подключения), позволяет получить доступ к пользовательским настройкам, но не содержит данные базы (конфигурацию, справочники, документы). Для доступа к данным базы используется StorageConnector [Соединение]. |
| App [ПриложениеСМАРТС] | Объект приложения Mobile SMARTS. Содержит описание некоторого приложения (идентификатор, наименование и др.). Приложение представляет собой определенное прикладное решение. Примеры приложений: «Магазин 15», «Учет имущества», «Пустая конфигурация Mobile SMARTS» (используется для разработки с нуля своего решения). |
Главные бизнес‑сущности
| Класс | Описание |
| Product [Товар] | Позиция номенклатуры (товар). |
| Packing [Упа ковка] | Упаковка товара. Каждый товар должен содержать как минимум одну упаковку. |
| Document [Документ] | Документ. Основная единица взаимодействия между учетной системой и пользователем. Содержит описание задания, назначенного к выполнению, и сам результат выполнения задания. |
| DocumentItem [СтрокаДокумента] | Строка в документе, заявленная или фактическая. Содержит информацию о товаре, его количестве и дополнительных полях (сроки годности, серийные номера, дополнительные характеристики и т.п.) |
Работа с приложением и базой
Приложение Mobile SMARTS (см. App [ПриложениеСМАРТС]) представляет собой нек оторое прикладное решение на платформе Mobile SMARTS («Магазин 15», «Учет имущества», и т.д.).
Каждое приложение устанавливается из отдельного дистрибутива (если при этом платформа Mobile SMARTS на компьютере не установлена, сначала будет предложено загрузить и установить платформу).
После установки приложения появляется возможность создавать базы данных на основе шаблона установленного приложения. См. подробнее.
База данных Mobile SMARTS (см. AppInstance [БазаСМАРТС]) — это экземпляр определенного приложения. База данных хранит конфигурацию Mobile SMARTS и текущие данные (справочники, документы, настройки). База данных находится в определенной папке на диске компьютера. В зависимости от того, какой способ обмена данными с терминалами требуется, база данных может работать в следующих режимах: обмен с сервером Mobile SMARTS, прямое подключение терминала к компьютеру через провод, обмен через папку на диске (Режим RDP — общая папка, терминал подключается физически к другому компьютеру, обмен непосредственно с терминалом выполняет специальная утилита, установленная на компьютере, к которому подключается терминал).
После установки Mobile SMARTS пользователь имеет возможность работать с базами данных (добавлять базы в список зарегистрированных баз, удалять, изменять настройки) с помощью менеджера баз. Обмен данными возможен только с базами, зарегистрированными в списке баз на данном компьютере.
Удаленная база. Существует возможность добавить в список (зарегистрировать) не только базу, находящуюся на данном компьютере, но и работающую на сервере Mobile SMARTS, расположенном на другом компьютере в сети. В менеджере баз такая база будет находится в разделе Удаленное подключение:
На локальном компьютере удаленная база также, как и локальная, будет находится в заданной при добавлении базы папке, но в этой папке будут содержаться только настройки соединения с удаленным сервером Mobile SMARTS и пользовательские настройки, все данные (справочники, документы) при обмене будут загружаться (и выгружаться) с удаленного сервера. Сервер Mobile SMARTS представляет собой web-сервис, при обмене данными компонента вызывает функции web-сервиса, данные передаются по протоколу http. Организовывать общий доступ к папке базы на удаленном компьютере не нужно.
Объектам, служащим описанием удаленной базы, является также AppInstance [БазаСМАРТС] и для доступа к данным используется StorageConnector [Соединение]. При использовании функций обмена нет никакой разницы, удаленная база или локальная.
Создание и настройка новой базы данных
Для созданной базы данных пользователь указывает нужный режим работы (прямое подключение к устройству, прямая работа с папкой (RDP режим), подключение к серверу). См. Настройка базы данных Mobile SMARTS.
Подключение к базе данных из учетной системы
Для того, чтобы была возможность производить обмен данными с базой Mobile SMARTS, необходимо сначала выполнить подключение к базе. Нам потребуется создать экземпляр COM-объекта Cleverence.Warehouse.StorageConnector и вызвать функцию SelectCurrentApp
[УстановитьПодключениеСБазойСМАРТС], передав в качестве аргумента Идентификатор (Код) базы или Строку подключения к базе.
Идентификатор и код в менеджере баз:
C#:
var connector = new Cleverence.Warehouse.StorageConnector(); // Создаем экземпляр объекта try
{
// Выполняем подключение
connector.SelectCurrentApp("михаил-пк:10501/d7c15f54-fd05-4811-8f6d-c7c7003887c5");
}
catch
{
// При подключении возникла ошибка, обрабатываем исключение
}
«1С:Предприятие 8»:
connector = новый COMОбъект("Cleverence.Warehouse.StorageConnector"); // Создаем экзе мпляр объекта Попытка
connector.УстановитьПодключениеСБазойСМАРТС("михаил-пк:10501/d7c15f54-fd05-4811-8f6d-c7c7003887c5");
//Выполняем подключение Исключение
// При подключении возникла ошибка, обрабатываем исключение КонецПопытки;
Получение списка баз, зарегистрированных на П К
Получить список баз может быть нужно, например, для того, чтобы дать пользователю учетной системы возможность выбирать базу, с которой будет выполняться обмен, из списка баз и хранить это как настройку в учетной системе, вместо того, чтобы жестко прописывать в коде строку подключения.
Воспользуемся для этого функцией GetAppsList [ПолучитьСписокБаз]. Перед вызовом этой функции выполнять подключение к какой‑либо базе не нужно. Функция возвращает как локальные, так и удаленные базы, зарегистрированные на данном компьютере.
C#:
var connector = new Cleverence.Warehouse.StorageConnector(); // Создаем экземпляр объекта
try
{
var appInstanceList = connector.GetAppsList(""); //Получаем список баз - объект AppInstanceCollection for(int i=0; i<appInstanceList.Count; i++) // Обходим в цикле полученный список
{
var appInstance = appInstanceList[i]; //Получаем элемент списка - объект AppInstance var id = appInstance.Id; //Идентификатор базы
var connectionString = appInstance.ConnectionString; //Строка подключения var name = appInstance.Name; //Имя базы
// Обрабатываем полученнные значения
}
}
catch
{
// Обработка исключения
}