Расширение для карманных компьютеров
15.07.2009

Вопросы организации мобильных информационных баз

Мобильные информационные базы, с которыми работают пользователи "1С:Предприятие 8. Расширение для карманных компьютеров", имеют ряд особенностей, как  архитектурного, так и технологического характера. Рассмотрим, в чем заключаются эти особенности.

Формирование мобильной информационной базы

При использовании "1С:Предприятия 8. Расширение для карманных компьютеров" каждый пользователь работает с собственным экземпляром информационной базы. Данный подход обеспечивает возможность иметь на мобильном компьютере только необходимую для конкретного пользователя информацию. Это весьма существенный момент, поскольку объем данных, составляющих мобильную информационную базу, является критичным как с точки зрения ресурсов мобильного компьютера, так и по отношению к продолжительности сеансов обмена данными.

Таким образом, состав данных, используемых различными мобильными пользователями, может различаться: например. пользователю Сидорову необходима информация о тех контрагентах, с которыми работает непосредственно он; пользователю Федорову - информация о "своих" контрагентах (см. рис. ниже).

 

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

Начальное формирование мобильной информационной базы происходит при первом сеансе обмена мобильного пользователя с информационной базой "1С:Предприятия". Платформа исполнения мобильных приложений отправляет команду серверу мобильных приложений, который, в свою очередь, обращается к информационной базе "1С:Предприятия" посредством COM-соединения и получает мобильное приложение и необходимые данные (более подробно см. раздел Описание протокола обмена данными).

Для получения данных используется метод ПолучитьДанные(), который должен быть реализован в конфигурации "1С:Предприятия". Одним из параметров данного метода является параметр НачальнаяИнициализацияИБ типа Булево. Если платформа исполнения мобильных приложений при запуске не обнаруживает в каталоге мобильной информационной базы данных, данный параметр принимает значение Истина. В остальных случаях, когда мобильная информационная база уже существует, т. е. имеет место уже не формирование информационной базы, а обмен данными, параметр принимает значение Ложь.

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

Структура информационной базы

Мобильная информационная база представляет собой совокупность файлов данных (таблиц), которые располагаются в каталоге файловой системы мобильного устройства, определенном пользователем для данной информационной базы (см. рисунок ниже). При этом каталог информационной базы может располагаться как в основной памяти устройства, так и на картах памяти.

Мобильная информационная база включает следующие файлы:

1Cv8MApp.bin - файл мобильного приложения.

Index.bin - содержит служебную информацию, а также словарь данных.

Файлы - таблицы, содержащие данные конкретных типов (например, Catalogs.ХХХ.bin  содержит данные справочника).

gen.ini - файл содержит служебную информацию, используемую системой при работе с различными "поколениями данных".

Регистрация изменений в мобильной информационной базе

Платформа исполнения мобильных приложений в процессе работы пользователя с мобильной информационной базой постоянно регистрирует изменения, произведенные в информационной базе (подробнее о регистрации изменений см. раздел Регистрация изменений в мобильной информационной базе). При этом изменения регистрируются по каждому типу объектов мобильного приложения, например, изменения в справочнике Контрагенты записываются в каталоге мобильной информационной базы в виде файла Catalogs.ХХХ.bin.diff. Регистрация изменений производится платформой исполнения мобильных приложений автоматически. 

Поколения данных

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

В процессе работы пользователя между сеансами обмена данными хранится только одно поколение данных.

Обновление мобильной информационной базы при обмене данными

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

Если в пакете обмена данными присутствует секция ClearData, то сначала производится очистка таблиц данных указанного типа (перечисленных в секции ClearData и удовлетворяющих условию очистки, содержащемуся в секции ClearData),затем выполняется запись полученных данных.