<< Нажмите для отображения Оглавления >>

Навигация:  Для разработчиков >

Внешняя компонента PocketServer.dll

 

Обмен данными между учетной системой и КПК выполняется через внешнюю компоненту PocketServer.dll (начиная с версии 4.9 в имя компоненты добавлена цифра номера версии  PocketServer49.dll). После  получения запроса от КПК, данные запроса передаются во внешний отчет который в зависимости от типа запроса либо принимает данные в учетной системе либо подготавливает данные для выгрузки в КПК. Инициатором обмена всегда выступает КПК. Все запросы и ответы представляют собой текстовые строки, разделяемые символами CR/LF. Весь поток данных от сервера к КПК сжимается по алгоритму ZIP. Вся работа по сжатию выполняется PocketServer.dll.

 

Описание функций внешней компоненты PocketServer.dll

 

Инициализация(<?>);

Синтаксис:

Инициализация(<Порт>)

Назначение:

Инициализация внешней компоненты, открытие порта и начало  мониторинга по переданному порту.

Возвращаемое значение:

Число, 1 порт открыт, 0 ошибка инициализации.

Параметры: 

<Порт> - число, порт по которому осуществляется связь.

 

Завершить();

Синтаксис:

Завершить()

Назначение:

Завершить процесс мониторинга порта.

 

ПослатьОтвет(<?>,,);

Синтаксис:

ПослатьОтвет(<Адрес>,<Ответ>,<ПоследняяСтрока>)

Назначение:

Передает строку текста внешней компоненте для последующей отправки на КПК.

Возвращаемое значение:

Число, 1 передано, 0 ошибка передачи.

Параметры: 

<Адрес> - строка, уникальный идентификатор текущей сессии обмена.

<Ответ> - строка, передаваемая в КПК строка.

<ПоследняяСтрока> - число, если 1 то это последняя строка, 0 любая другая.

 

ЗапросОбработан();

Синтаксис:

ЗапросОбработан()

Назначение:

Завершить процесс отправки данных.

 

ПослатьФайл(<?>,);

Синтаксис:

ПослатьФайл(<Адрес>,<ПутьКФайлу>)

Назначение:

Передать указанный в ПутьКФайлу файл на КПК.

Возвращаемое значение:

Число, 1 передано, 0 ошибка передачи.

Параметры: 

<Адрес> - строка, уникальный идентификатор текущей сессии обмена.

<ПутьКФайлу> - строка, полный путь к файлу.

 

ИсходящийТрафик();

Синтаксис:

ИсходящийТрафик()

Назначение:

Возвращает количество переданной информации с момента инициализации до завершения работы внешней компоненты.

Возвращаемое значение:

Число, передано информации в байтах.

 

ВходящийТрафик();

Синтаксис:

ВходящийТрафик()

Назначение:

Возвращает количество полученной информации с момента инициализации до завершения работы внешней компоненты.

Возвращаемое значение:

Число, получено информации в байтах.

 

ACos(<?>);

Синтаксис:

Acos(<Число>)

Назначение:

Рассчитывает арккосинус числа.

Возвращаемое значение:

Арккосинус переданного числа.

Параметры: 

<Число> - число.

 

Sin(<?>);

Синтаксис:

Sin(<Число>)

Назначение:

Рассчитывает синус числа.

Возвращаемое значение:

Синус переданного числа.

Параметры: 

<Число> - число.

 

Cos(<?>);

Синтаксис:

Cos(<Число>)

Назначение:

Рассчитывает косинус числа.

Возвращаемое значение:

Косинус переданного числа.

Параметры: 

<Число> - число.

 

Версия();

Синтаксис:

Версия()

Назначение:

Возвращает текущую версию внешней компоненты.

Возвращаемое значение:

Строка, версия внешней компоненты.

 

ПерезапуститьКомпрессор(<?>);

Синтаксис:

ПерезапуститьКомпрессор(<Адрес>)

Назначение:

Перезапускает компрессор данных при резкой смене поступающих данных.

Возвращаемое значение:

Число, 0 ошибка выполнения.

Параметры:

<Адрес> - строка, уникальный идентификатор текущей сессии обмена. 

 

ConvertUTCtoLocal(<?>);

Синтаксис:

ConvertUTCtoLocal(<ГлобальноеВремя>)

Назначение:

Конвертирует время из (Универсального координированного времени) UTC в локальное время Windows.

Возвращаемое значение:

Строка, локальное время.

Параметры: 

<ГлобальноеВремя> - строка, содержит дату и время в UTC.

 

ЗарегистрироватьКПК(<?>,);

Синтаксис:

ЗарегистрироватьКПК(<КодКПК>,<Ключ>)

Назначение:

Передает во внешнюю компоненту код КПК и лицензионный ключ для регистрации.

Возвращаемое значение:

Строка, тип лицензии передаваемых регистрационных данных.

Параметры: 

<КодКПК> - строка, код мобильного устройства (КПК или коммуникатор).

<Ключ> - строка, лицензионный ключ приобретенный для текущего КПК.

 

ОтправитьEMail(<?>,);

Синтаксис:

ОтправитьEMail(<Тема>,<Сообщение>,<Вложение>)

Назначение:

Отправляет емаил разработчику Моби-С.

Возвращаемое значение:

Число, если 0 письмо не отправлено, если 1 отправка прошла успешно.

Параметры: 

<Тема> - Тема письма.

<Сообщение> - Содержимое письма.

<Вложение> - Список путей к файлам которые необходимо вложить в письмо, отдельные файлы разделены запятыми.

 

ПолучитьСтатусСервера(<?>,);(на данный момент функция устарела и не используется)

Синтаксис:

ПолучитьСтатусСервера()

Назначение:

Возвращает список интерфейсов у которых удалось открыть порт и выводит сообщения(всплывающие) если порт открыть не удалось.

Возвращаемое значение:

Строка, список интерфейсов и результат открытия порта.

Пример возвращаемого значения:

Открыт порт 1234 на интерфейсе с IP-адресом 192.168.50.1

Открыт порт 1234 на интерфейсе с IP-адресом 192.168.0.24

 

ЗадатьПапкуАгента(<?>,);

Синтаксис:

ЗадатьПапкуАгента(<КодАгента>,<ТипФайла>,<ПутьКПапке>)

Назначение:

Выгружает в сервер пути к персональным папкам агента. Сейчас в них выгружаются фото сделанные на КПК.

Возвращаемое значение:

Число, если 0 произошла ошибка, если 1 операция прошла успешно.

Параметры: 

<КодАгента> - Код агента.

<ТипФайла> - Тип файла. Сейчас предопределены с типа. Client - фото клиентов, Good - фото товаров

<ПутьКПапке> - Полный путь к папке.

 

ЗапуститьПриложение(<?>,);

Синтаксис:

ЗапуститьПриложение(<Путь>)

Назначение:

Запускает из Моби-С выбранное приложение.

Возвращаемое значение:

Число, операция выполнена успешно если значение более 0.

Параметры: 

<Путь> - Полный путь к запускаемому приложению с коммандной строкой.

 

МетаданныеФото(<?>,);

Синтаксис:

МетаданныеФото(<ПутьКФото>)

Назначение:

Проверка цифровой подписи и получение дополнительных сведений о фотографии.

Возвращаемое значение:

Строка, если 1 строка то это сообщение об ошибке, если больше то структура с данными.

Содержимое структуры

ТипОбьекта(1 - контрагенты 4 - номенклатура)+Пробел+КодОбьекта\r\n

Дата(yyyy:mm:dd)+Пробел+Время(hh:mm:ss)\r\n

Широта\r\n 

Долгота\r\n

СостояниеЦифровойПодписи\r\n

Комментарий\r\n

Ориентация

Параметры: 

<ПутьКФото> - Полный путь к файлу с фотографией.

 

УстановитьФайлКлючей(<?>);

Синтаксис:

УстановитьФайлКлючей(<ПутьКФайлуКлючей>)

Назначение:

Выгружает в сервер путь к файлу с лицензионными ключами

Возвращаемое значение:

Строка, если 1 строка то это сообщение об ошибке, если больше то структура с данными.

Параметры: 

<ПутьКФайлуКлючей> - Полный путь к файлу (lickeys.txt) с онлайн ключами.

 

УстановитьФайлЧерногоСписка(<?>);

Синтаксис:

УстановитьФайлЧерногоСписка(<ПутьКЧерномуСписку>)

Назначение:

Выгружает в сервер путь к файлу с черным списком лицензионных ключей.

Возвращаемое значение:

Строка, если пустая строка значит возникли проблемы с загрузкой и проверкой черного списка.

Параметры: 

<ПутьКЧерномуСписку> - Полный путь к файлу (blacklist.bin). Файл содержит данные по заблокированным ключам.

 

Пауза(<?>);

Синтаксис:

БазаДанныхОткрыть(<Пауза>)

Назначение:

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

Возвращаемое значение:

 

Параметры: 

<Пауза> - Время задержки. 1 сек = 1000.

 

БазаДанныхОткрыть(<?>);

Синтаксис:

БазаДанныхОткрыть(<ПутьКБД>)

Назначение:

Открывает базу данных sqlite.

Возвращаемое значение:

Число, если 0 произошла ошибка, если 1 операция прошла успешно.

Параметры: 

<ПутьКБД> - Полный путь к файлу базы данных sqlite.

 

БазаДанныхЗакрыть(<?>);

Синтаксис:

БазаДанныхОткрыть(<ПутьКБД>)

Назначение:

Закрывает открытую базу данных sqlite.

Возвращаемое значение:

Число, если 0 произошла ошибка, если 1 операция прошла успешно.

Параметры: 

<ПутьКБД> - Полный путь к файлу базы данных sqlite.

 

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

БазаДанныхПодготовитьЗапрос(Соединение, ТекстЗапроса)

БазаДанныхСледующаяЗапись(ПодгЗапрос)

БазаДанныхЗакрытьПодготовленныйЗапрос(ПодгЗапрос)

БазаДанныхСбросПодготовленногоЗапроса(ПодгЗапрос)

БазаДанныхЗначениеВКолонке(ПодгЗапрос, ИндексКолонки)

БазаДанныхУстановитьПараметр(ПодгЗапрос, НомерПараметра, _Значение)

 

Обновление PocketServer.dll

 

Серверная компонента "PocketServer55.dll" необходима для нормальной работы модуля интеграции Моби-С. Компонента интегрирована в модуль интеграции Моби-С и устанавливается на компьютер при запуске модуля. Может возникнуть ситуация, когда в необходимо обновить в текущем модуле интеграции серверную компоненту, а обработку оставить старой.

 

На вкладке "Сервер обмена" отображается дата сборки текущей подключенной библиотеки "PocketServer55.dll", актуальную дату сборки можно посмотреть тут.

 

Библиотека "PocketServer55.dll" поставляется в 2х версиях, для 32 и 64 битной платформы 1С:Предприятие 8.

 

Обновление PocketServer.dll в обработке 1С для старых версий Windows v6.0 и ниже

 

Список версий ОС Windows.

 

1.Для регистрации библиотеки потребуются права Администратора.

2.Скачайте фалы библиотеки PocketServer55_32.dll и PocketServer55_64.dll

3.Положите файлы в каталог bin установленной платформы 1С:Предприятие 8.

4.Закройте все открытые 1С.

5.Зарегистрируйте оба файла используя команду "regsvr32". Если вы знаете какой разрядности у вас используется платформа 1С:Предприятие 8, то можете регистрировать только нужную библиотеку PocketServer.dll.

6.В результате должно появится сообщение об удачной регистрации библиотеки.

7.Запустите 1С и откройте изменённую обработку. Проверьте, что дата сборки PocketServer изменилась на новую.

 

Обновление PocketServer.dll в обработке 1С для Windows 7.0 и выше

 

В более новых ОС Windows библиотека находится в самой обработке Моби-С и устанавливается и регистрируется при её запуске. Поэтому необходимо открыть вашу обработку в конфигураторе и заменить библиотеки на новые.

 

Замена библиотек для конфигурации Управление Торговлей 10.3 и аналогичных

 

1.Скачайте фалы библиотеки PocketServer55_32.dll и PocketServer55_64.dll

2.Запустите конфигуратор 1С и откройте в нём модуль интеграции Моби-С.

3.В разделе "Макеты" двойной клик мышью на элементе "PocketServer".

4.В открывшемся диалоге "Двоичные данные" нажмите кнопку "Загрузить из файла".

5.Выберите скачанный файл "PocketServer55_32.dll".

6.В открывшемся "Двоичные данные" нажмите кнопку "ОК".

7.В разделе "Макеты" двойной клик мышью на PocketServer64.

8.В открывшемся диалоге "Двоичные данные" нажмите кнопку "Загрузить из файла".

9.Выберите скачанный файл "PocketServer55_64.dll".

10. В открывшемся "Двоичные данные" нажмите кнопку "ОК".

11. В верхнем меню конфигуратора выберите пункт "Файл > Сохранить".

12. Закройте конфигуратор и все 1С.

13. Запустите 1С и откройте изменённую обработку. Проверьте, что дата сборки PocketServer изменилась на новую.

 

Замена библиотек для конфигурации Управление Торговлей 11 и аналогичных (на управляемых формах)

 

1.Скачайте фалы библиотеки PocketServer55.zip

2.Запустите конфигуратор 1С и откройте в нём модуль интеграции Моби-С.

3.В разделе "Макеты" двойной клик мышью на элементе "PocketServer".

4.В открывшемся диалоге "Двоичные данные" нажмите кнопку "Загрузить из файла".

5.Выберите скачанный файл "PocketServer55.zip".

6.В открывшемся "Двоичные данные" нажмите кнопку "ОК".

7.В верхнем меню конфигуратора выберите пункт "Файл > Сохранить".

8.Закройте конфигуратор и все 1С.

9.Запустите 1С и откройте изменённую обработку. Вы получите сообщение "Внешняя компонента успешно установлена".

10.Проверьте, что дата сборки PocketServer изменилась на новую.

 

Внимание! Если дата сборки библиотеки осталась старая, проверьте и повторите все действия. Войдите в Windows под пользователем с правами Администратора и запустите 1С и обработку. Запустить 1С:Предприятие под Администратором можно выбрав в контекстном меню ярлыка 1С пункт "Запуск от имени администратора".

 

Доработка старых обработок для работы с новой PocketServer

 

Доработка метода "Сервер.СоединениеСОблаком"

 

В Моби-С начиная до даты релиза 03.03.2020 добавился новый способ работы с облачным сервером - были адреса sky1.mobi-c.ru и sky2.mobi-c.ru, стал адрес sky.mobi-c.net.

 

1.Найти поиском в модуле Основной формы все места с методом "Сервер.СоединениеСОблаком".

2.Для всех методов "Сервер.СоединениеСОблаком" добавьте четвертый параметр "WebSocket".
было Сервер.СоединениеСОблаком(Параметр.КодУчетнойСистемы, Параметр.ПарольУчетнойСистемы, ИмяКомпьютера()+"-"+ИмяПользователя());
стало Сервер.СоединениеСОблаком(Параметр.КодУчетнойСистемы, Параметр.ПарольУчетнойСистемы, ИмяКомпьютера()+"-"+ИмяПользователя(), "WebSocket");

3.Сохраните обработку.

4.Перезапустите 1С с новой обработкой.

5.Обновите мобильного клиента Моби-С до актуальной версии.

6.Пробуйте обмен. На КПК в логе обмена должна выводиться строка: Соединение с сервером sky.mobi-c.ru

 

Доработка поддержки новых файлов ключей

 

В Моби-С начиная до даты релиза 2016.04.18 используется файл ключей "lickeys.txt" в кодировке Win-1251

В Моби-С начиная с даты релиза 2016.04.19 используется файл ключей "lickeys_utf8.txt" в кодировке UTF-8

 

1. МодульОбъекта, метод ОткрытьФайлOnLineКлючей

 

было

   ПутьКФайлуКлючей=КаталогЛогФайлов+"\lickeys.txt";

стало

   ПутьКФайлуКлючей=КаталогЛогФайлов+"\lickeys_utf8.txt";

 

было

       ФайлКлючей.Прочитать(ПутьКФайлуКлючей);  

стало

       ФайлКлючей.Прочитать(ПутьКФайлуКлючей, КодировкаТекста.UTF8);  

 

2. Форма Ключи

2.1 удалить метод ОткрытьФайлOnLineКлючей, будет использоваться метод МодульОбъекта.ОткрытьФайлOnLineКлючей

2.2 метод СохранитьOnLineКлючи

новая версия библиотеки работает с файлом ключей в кодировке UTF-8, старая версия обработки работала в Win-1251

 

было

   ПутьКФайлуКлючей=КаталогЛогФайлов+"\lickeys.txt";

   зт = новый ЗаписьТекста(ПутьКФайлуКлючей, "windows-1251");

стало

   ПутьКФайлуКлючей=КаталогЛогФайлов+"\lickeys_utf8.txt";

   зт = новый ЗаписьТекста(ПутьКФайлуКлючей, КодировкаТекста.UTF8);

 

3 форма ФормаОсновная

3.1 метод ПерезапускСервера

 

было

       ПутьКФайлуКлючей=КаталогЛогФайлов+"\lickeys.txt";

       Ф=Новый Файл(ПутьКФайлуКлючей);

стало

       ПутьКФайлуКлючей=КаталогЛогФайлов+"\lickeys_utf8.txt";

       Ф=Новый Файл(ПутьКФайлуКлючей);

       Если не ф.Существует() Тогда

           зт = новый ЗаписьТекста(ПутьКФайлуКлючей, КодировкаТекста.UTF8);

           зт.Записать("# Редактирование этого файла вручную запрещено." + Символы.ПС);

           зт.Закрыть();

       КонецЕсли;

 

3.2 метод ПриОткрытии

добавляем автоматическое преобразование файла ключей lickeys >> lickeys_utf8 при первом запуске

 

было

   Если НЕ РежимРабочееМесто Тогда

       Если НЕ АвтономныйРежим Тогда

стало

   ПутьКФайлуКлючей = КаталогЛогФайлов + "\lickeys.txt";

   ПутьКФайлуКлючейUTF8 = КаталогЛогФайлов + "\lickeys_utf8.txt";

   Ф = Новый Файл(ПутьКФайлуКлючей);

   фUTF = Новый Файл(ПутьКФайлуКлючейUTF8);

   Если фUTF.Существует() Тогда

   //ничего не делаем, ключи не объединяем

   Иначе              

       Если ф.Существует() Тогда

       //преобразуем в utf-8  

           файлКлючей = Новый ТекстовыйДокумент();

           файлКлючей.Прочитать(ПутьКФайлуКлючей);

           ФайлКлючей.Записать(ПутьКФайлуКлючейUTF8, КодировкаТекста.UTF8);  

       Иначе                  

           ФайлКлючей = Новый ТекстовыйДокумент();

           ФайлКлючей.УстановитьТекст("# Редактирование этого файла вручную запрещено.");

           ФайлКлючей.Записать(ПутьКФайлуКлючейUTF8, КодировкаТекста.UTF8);

       КонецЕсли;  

   КонецЕсли;

   Если НЕ РежимРабочееМесто Тогда

       Если НЕ АвтономныйРежим Тогда

 

было ПутьКФайлуКлючей=КаталогЛогФайлов+"\lickeys.txt";

стало  ПутьКФайлуКлючей=КаталогЛогФайлов+"\lickeys_utf8.txt"

 

 


Последнее изменение 14.10.2020