POS Mail

Обмен данными между учетными системами Форинт Трейд и 1С



Документ «POS Mail. Обмен данными между учетными системами Форинт Трейд и 1С» (далее – документ) является предметом авторских прав компании «ERP Service» и защищается российским и международным законодательством об авторских правах.

Запрещается изменение и распространение в измененном виде данного документа без письменного согласия и от имени «ERP Service».

Компания «ERP Service» оставляет за собой право вносить изменения и дополнения, как в документацию, так и в работу программного обеспечения без уведомления пользователей.

Использованные в тексте товарные знаки и зарегистрированные торговые марки являются собственностью своих законных владельцев.

Документ является справочным руководством по настройке обмена данными между учетными системами Форинт Трейд и 1С через почтовый сервер POS Mail и предназначается для следующих категорий читателей:

    специалистов по внедрению систем автоматизации; разработчиков систем автоматизации для торгово-сервисных предприятий.

Фрагменты текста руководства, подсвеченные серым фоном и отмеченные знаком «~», требуют особого внимания со стороны читателя, например:

~

Информация для системных администраторов

Текст документа соответствует версии POS Mail 1.1.0.40801

Дистрибутивы и обновления данного программного продукта доступны через систему контроля версий «Subversion». Для загрузки дистрибутива необходимо перейти по ссылке:

http://www. *****/svn/release/СервисноеПО/1C2ForintExchanger/trunk

Контактная информация компании «ERP Service»:

Адрес: Россия, Ростов-на-Дону, /13.

Телефон/факс: +7 (8, , .

Web-сайт: http://www. *****

Техническая поддержка: *****@***ru

FTP-сервер: ftp://ftp. *****


1. Принципы работы.. 4

НЕ нашли? Не то? Что вы ищете?

1.1. Общая схема взаимодействия. 4

1.2. Структура взаимодействия. 4

1.2.1. Последовательность действий при экспорте данных в Форинт Трейд. 5

1.2.2. Последовательность действий при запросе данных из Форинт Трейд. 5

1.3. Типы сообщений. 5

2. Установка и настройка. 6

2.1. Список файлов. 6

2.2. Настройка на стороне 1С. 6

2.3. Настройка на стороне Форинт Трейд. 7

3. Использование в коде 1С. 8

3.1. Использование внешней компоненты. 8

3.1.1. Синтаксис процедуры отправки объектов учетной системы: 8

3.1.2. Синтаксис процедуры отправки запросов. 9

3.1.3. Примеры использования. 9

3.2. Прием данных. 9

4. Формат передаваемых данных. 10

4.1. Объекты учетной системы. 10

4.2. Запросы. 11

4.3. Типы данных. 13

1. Принципы работы

1.1. Общая схема взаимодействия

В процессе обмена данными между учетными системами передаются запросы и объекты учетной системы (элементы справочников и документы). В качестве транспортной подсистемы используется почтовый сервер POS Mail. Объекты учетной системы и запросы передаются в содержимом сообщений POS Mail в виде XML-докуметов, формат которых описан в разделе «Формат передаваемых данных».

Упрощенная схема взаимодействия между учетными системами представлена на рисунке:

 

Активной стороной в процессе обмена является учетная система 1С. Со стороны 1С могут инициироваться два вида взаимодействия:

·  Экспорт данных в Форинт Трейд – передача объектов учетной системы (справочников и документов) из 1С в учетную систему Форинт Трейд. Пример – экспорт в Форинт Трейд справочника контрагентов;

·  Запрос данных из Форинт Трейд – отправка запроса по объектам учетной системы Форинт Трейд и получение запрошенных данных. Пример – запрос документов «Приходная накладная» за интервал времени.

1.2. Структура взаимодействия

На структурной схеме взаимодействия показаны компоненты, участвующие в процессе обмена данными:

·  Внешняя компонента – OLE-объект, предоставляющий программистам 1С программный интерфейс для отправку данных или запросов из 1С в Форинт Трейд через POS Mail.

·  Обработчик запросов (на стороне Форинт Трейд) – обработчик клиента POS Mail, подключающийся к УС Форинт Трейд. Обрабатывает сообщения запроса данных учетной системы Форинт Трейд со стороны 1С и отправляет в ответном сообщении найденные по запросу данные.

·  Обработчик приема данных (на стороне Форинт Трейд) – обработчик клиента POS Mail, подключающийся к УС Форинт Трейд. Обрабатывает сообщения с данными учетной системы со стороны 1С: создает элементы справочников, проводит документы и т. п.

·  Обработчик приема данных (на стороне 1С) – обработчик клиента POS Mail, подключающийся к учетной системе 1С. При получении сообщения, содержащего ответ на запрос данных вызывает процедуру приема данных в 1С, передавая ей имя отправителя и содержимое полученного сообщения.

·  Процедура приема данных (в конфигурации 1С) – содержит реализацию обработки принятых данных. Разрабатывается программистами 1С cамостоятельно.

 

1.2.1. Последовательность действий при экспорте данных в Форинт Трейд.

Объект конфигурации 1С формирует XML-документ с данными учетной системы и, используя внешнюю компоненту POS Mail, отправляет их в теле сообщения на сторону Форинт Трейд. На стороне форинт Трейд обработчик приема данных, получив сообщение, обновляет объекты учетной системы Форинт Трейд.

1.2.2. Последовательность действий при запросе данных из Форинт Трейд.

Объект конфигурации 1С формирует XML-документ с запросом к учетной системе и, используя внешнюю компоненту POS Mail, отправляет его на сторону Форинт Трейд. На стороне Форинт Трейд обработчик запросов, получив сообщение, выполняет запрос к по объектам учетной системы. Полученная выборка отправляется в ответном сообщении на сторону 1С. Обработчик приема данных на стороне 1С, получив сообщение, вызывает процедуру приема данных, передавая ей полученный XML-документ в виде строки.

1.3. Типы сообщений

В процессе обмена используются следующие типы сообщений POS Mail:

·  ASX_QUERY – содержит запрос по объектам учетной системы. Сообщения этого типа отправляется со стороны учетной системы 1С и автоматически обрабатываются на стороне Форинт Трейд;

·  ASX_RESPONSE – ответ на сообщнение типа ASX_QUERY, содержит объекты учетной системы. Сообщения этого типа отправляются обработчиком POS Mail на стороне учетной системы Форинт Трейд и обрабатываются на стороне 1С;

·  ASX_DATA – данные учетной системы. Сообщения этого типа отправляются со стороны клиента учетной системы 1С и обрабатываются на стороне Форинт Трейд.

2. Установка и настройка

2.1. Список файлов

Таблица 1

Заголовок шапки 1

Заголовок шапки 2Заголовок шапки 3

ERPService. ASExchange.1C. dll

Подключаемый модуль для клиента POS Mail на стороне учетной системы 1С

ERPService. ASExchange. Forint. dll

Подключаемый модуль для клиента POS Mail на стороне учетной системы Форинт Трейд

ERPService. ASExchange. OLE. dll

Внешняя компонента 1С для отправки данных через почтовый клиент POS Mail

ERPService. ASExchange. OLE. dll. config

Файл конфигурации внешней компоненты

ERPService. ASExchange. OLE. Reg. cmd

Командный файл для регистрации внешней комопоненты 1С

ERPService. ASExchange. OLE. Unreg. cmd

Командный файл для удаления регистрационной информации внешней комопоненты 1С

2.2. Настройка на стороне 1С

На стороне учетной системы 1С должен быть предварительно установлен и настроен почтовый клиент POS Mail. Перед запуском службы почтового клиента необходимо скопировать файл ERPService. ASExchange.1C. dll в каталог Plugins почтового клиента.

Для подключения модулей для обмена нужно запустить конфигуратор почтового клиента, выбрать пункт меню «Действия -> Подключить модуль» и в диалоге выбора файла указать файл «Plugins\ERPService. ASExchange.1C. dll».

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

·  Максимальный размер данных – максимально допустимый размер сообщения, которое можно передать в 1С. Все сообщения с размером выше этого значения не будут обрабатываться;

·  Версия 1С 8.* - признак использования семейства версий 1С 8.* Для версий 7.* должено быть выбрано значение «Нет»;

·  ProgID приложения 1С – имя COM сервера используемой версии платформы 1С. Для различных версий платформы 1С имя сервера будет разным. Например для 7.7 это будет V77.Application, а для 8.2 это будет V82.Application или V82.COMConnector (если хотим подключаться через внешнее соединение). Если используется какая-то другая версия 1С, то точное имя можно посмотреть в справке в разделе «Встроенный Язык -> Средства интеграции и администрирования -> Automation сервер» или «Менеджер COM-соединений -> Внешнее соединение»;

·  Параметры приложения 1С – строка параметров запуска клиента 1С. Тут указывается имя БД, пользователь, пароль, прочие необходимые параметры. Формат строки можно посмотреть в справке на платформу в разделе «Запуск 1С:Предприятие 8 и параметры запуска -> Общие параметры запуска»;

·  Имя обработки – имя обработки, в которой будет вызвана процедура. Имеет смысл только для 1С версий 8.*;

·  Имя процедуры – имя процедуры с сигнатурой (строка, строка, строка), которая будет вызвана. Для 1С 8.* это экспортируемая процедура в обработке. Для 1С 7.* это процедура глобального модуля.

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

2.3. Настройка на стороне Форинт Трейд

На стороне учетной системы Форинт Трейд должен быть предварительно установлен и настроен почтовый клиент POS Mail. Перед запуском службы почтового клиента необходимо скопировать файл ERPService. ASExchange. Forint. dll в каталог Plugins почтового клиента.

Для подключения модулей для обмена нужно запустить конфигуратор почтового клиента, выбрать пункт меню «Действия -> Подключить модуль» и в диалоге выбора файла указать файл «Plugins\ERPService. ASExchange. Forint. dll». Файл содержит два обработчика, оба которых нужно подключить в конфигурацию почтового клиента, как показано на рисунке:

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

Параметры обработчиков «Прием данных учетной системы» и «Обработка запросов к УС» полностью идентичны и должны быть настроены одинаково:

Список параметров:

·  Таймаут обработки – максимальное время обработки одного сообщения. Следует учитывать, что подключение к учетной системе Форинт Трейд (при первом запуске обработчика) а также обработка больших объемов данных могут занимать продолжительное время. Поэтому рекомендуется установить достаточно большое значение максимального времени обработки: 5 – 10 минут;

·  Каталог конфигурации – путь к каталогу с файлом конфигурации учетной системы Форинт Трейд (config. xml);

·  Пользователь – имя пользователя учетной системы Форинт Трейд

·  Пароль – пароль пользователя учетной системы Форинт Трейд;

·  Строка подключения – параметры подключения к базе данных учетной системы. При нажатии на кнопку редактирования параметра выводится диалог настройки подключения:

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

3. Использование в коде 1С

3.1. Использование внешней компоненты

Для отправки данных и запросов через POS Mail в пакет поставки включена внешняя OLE-компонента для 1С в составе следующих файлов:

·  ERPService. ASExchange. OLE. dll – сама компонента;

·  ERPService. ASExchange. OLE. dll. config – файл её кофигурации;

Для подключния внешней компоненты указанные файлы необходимо поместить в каталог BIN платформы 1C. Кроме того, в каталог компоненты также нужно скопировать следующие библиотеки из каталога почтового клиента POS Mail:

·  ERPService. POSMail. ClientCore. dll

·  ERPService. POSMail. Core. dll

·  ERPService. SharedLibs. Eventlog. dll

·  ERPService. SharedLibs. Remoting. dll

После копирования всех файлов нужно зарегистрировать компоненту с помощью командного файла ERPService. ASExchange. OLE. Reg. cmd. Следует проверить в этом файле путь к утилите RegAsm. exe. При необходимости внешнюю компоненту можно удалить, используя командный файл ERPService. ASExchange. OLE. Unreg. cmd.

В файле конфигурации ERPService. ASExchange. OLE. dll. config указаны параметры подключения к клиенту POSMail. Обычно параметры по умолчанию менять не требуется.

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

3.1.1. Синтаксис процедуры отправки объектов учетной системы:

ОтправитьДанные(Получатель, Заголовок, Данные)

Английский вариант имени процедуры SendData. Значения аргументов:

·  Получатель –имя учетной записи получателя в сервере POS Mail, строка;

·  Заголовок – произвольный текстовый комментарий, передаваемый в теме сообщения, строка;

·  Данные – строка, содержащая XML-документ с объектами учетной системы в описанном формате.

3.1.2. Синтаксис процедуры отправки запросов

ОтправитьЗапрос(Получатель, Заголовок, Данные)

Английский вариант имени процедуры SendQuery. Значения аргументов:

·  Получатель –имя учетной записи получателя в сервере POS Mail, строка;

·  Заголовок – произвольный текстовый комментарий, передаваемый в теме сообщения, строка;

·  Данные – строка, содержащая XML-документ с запросами к учетной системы в описанном формате.

3.1.3. Примеры использования

Пример использования в 1С версии 7.7

Попытка

Если ПодключитьВнешнююКомпоненту("AddIn. ERPServiceASExchangerOLE") = 1 Тогда

Сообщить("Component AddIn. ERPServiceASExchangerOLE successfuly loaded");

Иначе

Сообщить("Error while loading AddIn. ERPServiceASExchangerOLE");

КонецЕсли;

Исключение

Сообщить("Error while loading AddIn. ERPServiceASExchangerOLE");

КонецПопытки;

компонент=СоздатьОбъект("AddIn. ERPServiceASExchangerOLE");

компонент. ОтправитьЗапрос("Учетка Форинт", "Тестовой сообщение",”Какой-то XML”);

Пример использования в 1С версии 8.2.

Попытка

Если ПодключитьВнешнююКомпоненту("AddIn. ERPServiceASExchangerOLE") = 1 Тогда

Сообщить("Component AddIn. ERPServiceASExchangerOLE successfuly loaded");

Иначе

Сообщить("Error while loading AddIn. ERPServiceASExchangerOLE");

КонецЕсли;

Исключение

Сообщить("Error while loading AddIn. ERPServiceASExchangerOLE");

КонецПопытки;

компонент = Новый ("AddIn. ERPServiceASExchangerOLE");

компонент. ОтправитьЗапрос("Учетка Форинт", "Тестовой сообщение","Какой-то XML");

3.2. Прием данных

При получении сообщения с объектами учетной системы обработчик «Ответ из Форинт в 1С на запрос данных» передает принятые данные в виде строки в процедуру, указанную в параметрах обработчика. Процедура приема данных реализовывается разработчиком 1С самостоятельно. Сигнатура процедуры:

Имя_Процедуры(отправитель, тема, данные)

где:

·  отправитель – имя учетной записи отправителя данных в сервере POS Mail, строка;

·  тема – тема или комментарий принятого сообщения, строка;

·  данные – строка, содержащая объекты учетной системы в виде XML-документа описанного формата.

Имя процедуры приема данных должно быть указано в параметре обработчика «Ответ из Форинт в 1С на запрос данных».

Пример кода процедуры приема данных в 1С:

Процедура ОбработатьДанныеФоринт(отправитель, тема, данные) Экспорт

//

//обработка принятых данных

//

КонецПроцедуры

4. Формат передаваемых данных

Данные передаются в виде XML-документов. В обмене используются два вида XML-документов:

·  Запрос к учетной системе – набор запросов по документам и справочникам учетной системы, сохраненные в виде XML-документа описанного формата. XML-документы запросов формируются на стороне 1С и отправляются на сторону Форинт Трейд;

·  Объекты учетной системы – содержимое справочников и документов учетной системы Форинт Трейд, сохраненное в виде XML-документа описанного формата. XML-документы такого вида формируются на стороне Форинт Трейд и отправляются на сторону 1С в ответ на принятые запросы. На стороне 1С также может формироваться документ с объктами Форинт Трейд.

4.1. Объекты учетной системы

Документ описывает объекты учетной системы «Форинт Трейд» (не 1С). При получении такого документа на стороне УС Форинт Трейд создаются или модифицируются объекты учетной системы – справочники и документы. Содержимое справочников передается в тегах DataDirectory. Содержимое документов передается в тегах Document. Строки таблиц документов передаются в тегах table, содержащих номер таблицы.

Формат документа с объектами учетной системы:

<?xml version="1.0" encoding="utf-8" ?>

<ASExchangeData>

<Document name ="Имя документа">

<field name ="Имя реквизита">Значение</field>

<field name ="Имя реквизита">Значение</field>

...

<field name ="Имя реквизита">Значение</field>

<table number ="номер таблицы">

<field name ="Имя реквизита">Значение</field>

<field name ="Имя реквизита">Значение</field>

...

<field name ="Имя реквизита">Значение</field>

</table>

...

<table number ="номер таблицы">

<field name ="Имя реквизита">Значение</field>

<field name ="Имя реквизита">Значение</field>

...

<field name ="Имя реквизита">Значение</field>

</table>

</Document>

<DataDirectory name ="Имя справочника">

<field name ="Имя реквизита">Значение</field>

<field name ="Имя реквизита">Значение</field>

...

<field name ="Имя реквизита">Значение</field>

</DataDirectory>

</ASExchangeData>

где:

·  Имя документа / Имя справочника - имя выгружаемого документа или справочника;

·  Имя реквизита - имя реквизита документа, справочника или таблицы документа;

·  Значение – строковое значение реквизита;

·  номер таблицы – целочисленное значение, номер таблицы документа, начиная с 0;

Пример документа с объектами учетной системы:

<?xml version="1.0" encoding="utf-8" ?>

<ASExchangeData>

<Document name ="Пересчет товаров">

<field name ="ТСД">2</field>

<field name ="Оператор ТСД">78</field>

<table number ="0">

<field name ="Товар">51236</field>

<field name ="Единица">14</field>

<field name ="Коэффициент">1.000</field>

<field name ="Кол-во единиц">2.000</field>

<field name ="Количество">2.000</field>

</table>

<table number ="0">

<field name ="Товар">30473</field>

<field name ="Единица">14</field>

<field name ="Коэффициент">1.000</field>

<field name ="Кол-во единиц">3.000</field>

<field name ="Количество">3.000</field>

</table>

</Document>

<DataDirectory name ="ТСД">

<field name ="Код">601</field>

<field name ="Наименование">ТСД 1</field>

<field name ="Сетевое имя">mobile1</field>

<field name ="Группа операторов">1</field>

<field name ="Родитель1">600</field>

</DataDirectory>

</ASExchangeData>

4.2. Запросы

Документ может содержать сразу несколько запросов к разным объектам учетной системы. Запросы к справочникам описываются в тегах DataDirectory. Запросы к документам описываются в тегах Document. Каждый запрос может содержать несколько условий, перечисленных в тегах Condition. Текст условия представляет собой строку запроса с SQL-подобным синтаксисом (см. пример). Запрос содержать значения в тексте, либо быть параметризованным. Для параметризованого запроса список параметров должен быть описан в тегах parameter.

Формат документа с запросами к учетной системе:

<?xml version="1.0" encoding="utf-8" ?>

<ASExchangeQuery>

<DataDirectory name ="Имя справочника" sortBy="Реквизит для сортировки" parent="Родительская группа" withGroupings ="Флаг группировки">

<Condition>

<text>Текст запроса</text>

<parameter name = "Имя параметра" type = "Тип">Значение</parameter>

<parameter name = "Имя параметра" type = "Тип">Значение</parameter>

...

<parameter name = "Имя параметра" type = "Тип">Значение</parameter>

</Condition>

</DataDirectory>

...

<Document name ="Имя документа">

<Condition>

<text>Текст запроса</text>

<parameter name = "Имя параметра" type = "Тип">Значение</parameter>

<parameter name = "Имя параметра" type = "Тип">Значение</parameter>

...

<parameter name = "Имя параметра" type = "Тип">Значение</parameter>

</Condition>

</Document>

...

</ASExchangeQuery>

, где

·  Имя справочника / Имя документа - наименование справочника или документа, по которому выполняется запрос, например, «Номенклатура»;

·  Реквизит для сортировки – имя реквизита для сортировки найденных элементов, например, «Наименование». Атрибут может применяться только при запросе по справочникам (в теге DataDirectory). Атрибут может отстутствовать, по умолчанию сортировка выполняется по коду элемента;

·  Родительская группа – целочисленное значение, содержащее код группы элементов справочника, в пределах которой выполняется поиск. Атрибут может применяться только при запросе по справочникам (в теге DataDirectory). Атрибут может отстутствовать;

·  Флаг группировки – может принимать значения «true» или «false». При использовании значения «true» результаты запроса будут сгруппированы по группам. Атрибут может применяться только при запросе по справочникам (в теге DataDirectory). Атрибут может отстутствовать, по умолчанию полученные данные не группируются;

·  Текст запроса – строка, содержащая условие запроса в формате SQL. Имена реквизитов в запросе должны быть заключены в квадратные скобки. В условиях запроса могут использоваться параметры. Имя параметра должно начинаться с символа @. Если в условиях запроса используются параметры, они должны быть перечислены в тегах parameter;

·  Имя параметра – строка, содержащая имя параметра, использованного в условии запроса, например, «@Дата»;

·  Тип– строка, содержащая тип параметра. Может принимать значения «string», «int», «decimal» и «date_time». Атрибут не является обязательным, по умолчанию считается, что параметр имеет тип «string»;

·  Значение– строка, содержащая значение параметра в формате, соответствующем типу параметра. Формат значения для типа «date_time» - «ДД. ММ. ГГГГ чч:мм:сс» либо «ДД. ММ. ГГГГ»

Пример докумета с запросами к учетной системе:

<?xml version="1.0" encoding="utf-8" ?>

<ASExchangeQuery>

<DataDirectory name ="Номенклатура">

<Condition>

<text>[Фирма владелец] = 1 and [Минимальный остаток] > @Остаток</text>

<parameter name = "@Остаток" type = "decimal">20.000</parameter>

</Condition>

</DataDirectory>

<DataDirectory name ="Контрагенты">

<Condition>

<text>[Наименование] = 'Наша фирма'</text>

</Condition>

</DataDirectory>

<Document name ="Имя документа">

<Condition>

<text>[Дата] >= @ДатаМин and [Дата] < @ДатаМакс</text>

<parameter name = "@ДатаМин" type = "date_time">11.03.2010</parameter>

<parameter name = "@ДатаМакс" type = "date_time">15.03.2010</parameter>

</Condition>

</Document>

</ASExchangeQuery>

4.3. Типы данных

Типы данных, используемых в документах запросов и объектов УС:

Строка – строковое представление, без дополнительных кавычек. Пример:

<tag>Текст запроса</tag>

Целое число – строковое представление, например:

<tag>123</tag>

Десятичное число – строковое представление с разделителем «точка» . Пример:

<tag>100.50</tag>

Дата-время – строковое представление в формате «ДД. ММ. ГГГГ чч:мм:сс» либо «ДД. ММ. ГГГГ». Пример:

<tag>10.02.2010 11:30:00</tag>

<tag>11.03.2010</tag>